👌

作業負担を減らすChatGPT活用術【コピペで使えるプロンプト付き】

2024/06/29に公開

はじめに

なかなか欲しい情報に辿り着けないこと、ありませんか。
パート2ということで、ChatGPT編です。
有料版を使い始めたのですが、ChatGPT-4oの回答速度に驚いてます。めちゃくちゃ早いですね。
サクサク情報収集できると作業が捗るので、最大限に活用していこうと思っています。
これは使える!と思ったプロンプトが出てきたら、今後もアップデートしていく予定です。

こんな人におすすめ

  • 自分の欲しい情報を効率よく見つけたい
  • ChatGPTのプロンプト生成を楽にしたい
  • とりあえずコピペで使えるベースが欲しい

ChatGPTの仕組みをざっくりおさらい

1. 具体的な質問や追加指示を行うことが大事
ChatGPTは会話を通じて新たに学習するわけではなく、既存の知識と文脈に基づいて回答を生成します。具体的な質問や追加指示を与えることで、より正確な情報を引き出すことが重要です。

2. ChatGPTのチャットセクションは1つの問題に対して1つ用意する
ChatGPTは、対話の文脈や内容を保持しながら応答する特性があります。そのため、解決したい1つの問題に対しては、1つのチャットセッションを使用することが推奨されます。これにより、同じ文脈を共有しながら会話を続けることができ、効率的に問題解決に向かうことが可能となります。

3. 伝えた制約や条件を明確化して整理をする
ただし、追加の指示を与えすぎてしまうと、ChatGPTがどのような制約の下で回答しているかが曖昧になることがあります。このような場合には、現在の制約を確認するためにChatGPTに質問し、必要に応じて不要な制約を削除するよう指示する必要があります。これにより、チャットの流れを整理し、よりスムーズに会話を進めることができます。

現在、あなたが回答する際の制約や条件は何ですか?箇条書きで書き出してください。

プロンプトの公式を理解する

ベースとなる構文

# 質問概要
回答して欲しい内容を簡潔に記述

# 入力データ
ソースコードや参考情報があれば記述

# 背景情報
 質問の背景を記述

# 制約条件
 出力内容に対して、条件の指定がある場合に記述

# 出力形式
 回答の出力雛形を指定する場合に記述

回答精度を上げるワード集

カテゴリ 表現
わかりやすさ わかりやすく、思考過程と処理順序がわかるように
知識レベル 初級者、中級者、上級者、専門家
検討 メリット・デメリットを含めて、比較して
サンプル 具体的な例を挙げて、活用例を交えて

プロントプト集【コピペ用】

ソースコード生成

# 質問概要
{どのようなソースコードを生成してほしいか簡潔に記載}

# 使用言語
{プログラミング言語}

# 要求機能
{達成するべき機能やタスク}

# 制約条件
・{指定したい制約条件}
・公式ドキュメントの書き方を参照してください。
・本番仕様での利用ができるようにセキュリティを考慮したコードにしてください。

他に必要な情報があれば、質問してください。
利用例

# 質問概要
ウェブサイトから指定したキーワードに関連するニュース記事のタイトルを抽出し、CSVファイルに保存するPythonスクリプトを作成したい。

# 使用言語
Python

# 要求機能
指定されたウェブサイトにアクセスする。
キーワードに関連するニュース記事のタイトルを抽出する。
抽出したタイトルをCSVファイルに保存する。

# 制約条件
・BeautifulSoupライブラリを使用してください。
・公式ドキュメントの書き方を参照してください。
・本番仕様での利用ができるようにセキュリティを考慮したコードにしてください。

他に必要な情報があれば、質問してください。

結果

以下は、BeautifulSoupを使用して、指定されたキーワードに関連するニュース記事のタイトルを抽出し、CSVファイルに保存するPythonスクリプトのサンプルです。スクリプトにはセキュリティ考慮点も含めました。

まず、必要なライブラリをインストールします:

pip install requests beautifulsoup4 pandas

次に、Pythonスクリプトを作成します:

import requests
from bs4 import BeautifulSoup
import pandas as pd
import csv

def fetch_article_titles(url, keyword):
    try:
        # ウェブサイトにアクセス
        response = requests.get(url, timeout=10)
        response.raise_for_status()  # ステータスコードが200でない場合は例外を発生させる
    except requests.exceptions.RequestException as e:
        print(f"Error fetching the URL: {e}")
        return []

    # BeautifulSoupを使用してHTMLコンテンツを解析
    soup = BeautifulSoup(response.content, 'html.parser')
    
    # キーワードに関連する記事のタイトルを抽出
    articles = soup.find_all('a', string=lambda text: text and keyword.lower() in text.lower())
    titles = [article.get_text() for article in articles]

    return titles

def save_titles_to_csv(titles, filename):
    try:
        # pandasを使用してタイトルをDataFrameに変換し、CSVファイルに保存
        df = pd.DataFrame(titles, columns=["Title"])
        df.to_csv(filename, index=False, encoding='utf-8')
        print(f"Titles successfully saved to {filename}")
    except Exception as e:
        print(f"Error saving to CSV: {e}")

if __name__ == "__main__":
    url = "https://example.com/news"  # ここに対象ウェブサイトのURLを入力
    keyword = "technology"  # ここに検索したいキーワードを入力

    # 記事のタイトルを取得
    titles = fetch_article_titles(url, keyword)

    # タイトルをCSVファイルに保存
    if titles:
        save_titles_to_csv(titles, "article_titles.csv")
    else:
        print("No titles found or an error occurred.")

コードの説明

  1. requestsライブラリを使用して、指定されたURLからHTMLコンテンツを取得します。タイムアウトと例外処理を追加して、セキュリティと安定性を向上させています。
  2. BeautifulSoupを使用してHTMLコンテンツを解析し、キーワードに関連する記事のタイトルを抽出します。
  3. pandasを使用して、抽出したタイトルをCSVファイルに保存します。

セキュリティの考慮

  • タイムアウトを設定して、応答が遅いウェブサイトへの無限待機を防ぎます。
  • ステータスコードが200でない場合は例外を発生させ、エラーメッセージを表示します。
  • データ保存時の例外処理を追加して、ファイルの書き込みエラーに対応します。

特定のウェブサイトに依存する部分(例えば、ニュース記事のタイトルがどのHTMLタグに含まれているか)は、対象ウェブサイトに応じて適宜調整してください。他に必要な情報があれば、お知らせください。

ソースコード解説

# 質問概要
次のプログラムがどのような処理をしているか、わかりやすく解説してください。

# ソースコード
{解説してほしいソースコード}

# 依頼者プロファイル
{依頼者の技術レベル}

# 出力形式
・思考過程と処理順序がわかるように段階的に記述してください。
利用例

# 質問概要
次のプログラムがどのような処理をしているか、わかりやすく解説してください。

# ソースコード
@GetMapping("/{id}/editForm")
public String showEditForm(@PathVariable("id") long id, Model model) {
model.addAttribute("mode", "EDIT");
TaskForm form = taskService.findById(id)
.map(TaskForm::fromEntity)
.orElseThrow(TaskNotFoundException::new);
model.addAttribute("taskForm", form);
return "tasks/form";

# 依頼者プロファイル
IT業界未経験で、独学で学習している初心者。

# 出力形式
・思考過程と処理順序がわかるように段階的に記述してください。

結果

このプログラムは、Spring Frameworkを使用して、特定のIDを持つタスクを編集するためのフォームを表示する機能を持っています。以下はこのプログラムがどのように動作するか、段階的に説明します。

ソースコードの説明

@GetMapping("/{id}/editForm")
public String showEditForm(@PathVariable("id") long id, Model model) {
    model.addAttribute("mode", "EDIT");
    TaskForm form = taskService.findById(id)
            .map(TaskForm::fromEntity)
            .orElseThrow(TaskNotFoundException::new);
    model.addAttribute("taskForm", form);
    return "tasks/form";
}

1. メソッドの宣言

@GetMapping("/{id}/editForm")
public String showEditForm(@PathVariable("id") long id, Model model)
  • @GetMapping("/{id}/editForm"):

    • このアノテーションは、このメソッドがHTTP GETリクエストを処理することを示しています。
    • URLパスの中に{id}というプレースホルダがあり、この部分はタスクのIDを表しています。
  • public String showEditForm(@PathVariable("id") long id, Model model):

    • showEditFormはこのメソッドの名前です。
    • @PathVariable("id") long id: URLからタスクのIDを取り出し、このIDをidという変数に格納します。
    • Model model: Spring MVCのModelオブジェクトで、ビューにデータを渡すために使用します。

2. モードの設定

model.addAttribute("mode", "EDIT");
  • model.addAttribute("mode", "EDIT"):
    • modelオブジェクトに"mode"という属性を追加し、その値を"EDIT"に設定します。
    • これにより、ビュー側でこのモードが"EDIT"であることを認識できます。

3. タスクの取得と変換

TaskForm form = taskService.findById(id)
        .map(TaskForm::fromEntity)
        .orElseThrow(TaskNotFoundException::new);
  • taskService.findById(id):

    • taskServiceというサービスクラスを使って、指定されたIDのタスクをデータベースから取得します。
    • 返り値はOptional<Task>です。
  • .map(TaskForm::fromEntity):

    • 取得したタスクをTaskFormオブジェクトに変換します。
    • TaskForm::fromEntityは、タスクエンティティをTaskFormに変換するメソッドです。
  • .orElseThrow(TaskNotFoundException::new):

    • タスクが見つからなかった場合、TaskNotFoundExceptionという例外をスローします。

4. タスクフォームの設定

model.addAttribute("taskForm", form);
  • model.addAttribute("taskForm", form):
    • modelオブジェクトにtaskFormという属性を追加し、その値を先ほど変換したTaskFormオブジェクトに設定します。
    • これにより、ビュー側でこのタスクフォームのデータにアクセスできます。

5. ビューの指定

return "tasks/form";
  • return "tasks/form":
    • "tasks/form"という名前のビュー(HTMLテンプレート)を返します。
    • Spring MVCはこの名前を使って対応するテンプレートファイルを探し、レンダリングします。

まとめ

このメソッドの全体的な流れをまとめると、次のようになります:

  1. HTTP GETリクエストを受け取る(URLにIDが含まれている)。
  2. モードを"EDIT"として設定する。
  3. サービスクラスを使って指定されたIDのタスクを取得し、フォームオブジェクトに変換する。
  4. 取得したフォームオブジェクトをモデルに追加する。
  5. "tasks/form"という名前のビューを返す。

この処理により、ユーザーは特定のタスクを編集するためのフォームを表示することができます。

バグの原因特定と解消方法

# 質問概要
以下の情報を参考にエラーの原因を特定し、エラーの解消方法を教えてください。

# 開発環境
・{プログラミング言語}
・{使用しているフレームワーク}
・{OS}
・{IDE}

# ソースコード
{バグの原因特定をしたいソースコード}

# ソースコードの説明
・{何をするためのものであるか}
・{解決しようとしている問題は何か}

# エラーメッセージ
{実行時に出力されたエラーメッセージ}

# 試したこと
・{問題解決のために試したことや、調査したこと}

# 具体的な質問
・{具体的に質問したい内容}

他に必要な情報があれば、質問してください。
利用例

# 質問概要
以下の情報を参考にエラーの原因を特定し、エラーの解消方法を教えてください。

# 開発環境
・Java 17
・Spring Framework 6.0.2
・macOS Catalina
・IntelliJ IDEA 2024.1

# ソースコード
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class ExceptionHandlingExample {
public static void main(String[] args) {
// バグの原因特定をしたいソースコード
String filename = "nonexistent-file.txt";
try {
List<String> lines = Files.readAllLines(Paths.get(filename));
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

# ソースコードの説明
・ファイルの読み込みをします。

# エラーメッセージ
java.nio.file.NoSuchFileException: nonexistent-file.txt
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)
at java.base/java.nio.file.Files.newByteChannel(Files.java:375)
at java.base/java.nio.file.Files.newByteChannel(Files.java:426)
at java.base/java.nio.file.Files.readAllBytes(Files.java:3334)
at java.base/java.nio.file.Files.readAllLines(Files.java:3495)
at ExceptionHandlingExample.main(ExceptionHandlingExample.java:12)

# 試したこと
・特になし

# 具体的な質問
・エラーの原因と解消方法を思考過程と処理順序がわかるように段階的に記述してください。

他に必要な情報があれば、質問してください。

結果

このエラーは、指定されたファイルが存在しない場合に発生します。ここでは、特定のファイル("nonexistent-file.txt")を読み取ろうとしているため、そのファイルが存在しないというエラーがスローされています。

エラーの原因と解消方法

  1. 原因の特定: Files.readAllLines(Paths.get(filename)); の行でエラーが発生しています。これは、nonexistent-file.txt というファイルが存在しないため、NoSuchFileException がスローされています。

  2. 解消方法の考え方:

    • ファイルの存在確認: 読み取り対象のファイルが存在するかどうかを事前に確認する必要があります。
    • 例外処理の改善: NoSuchFileException をキャッチして、適切なエラーメッセージをユーザーに表示するか、他の処理を行うようにします。

処理順序の考え方

  1. ファイルの存在確認:

    Path path = Paths.get(filename);
    if (Files.exists(path)) {
        // ファイルが存在する場合の処理
        try {
            List<String> lines = Files.readAllLines(path);
            for (String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        System.err.println("指定されたファイルは存在しません: " + filename);
    }
    
  2. 例外処理の改善:

    • NoSuchFileExceptionIOException のサブクラスなので、IOException でキャッチすることができます。
    • ファイルが存在しない場合に特定の処理を行いたい場合は、catch ブロック内で適切な処理を記述します。

このようにすることで、ファイルが存在しない場合のエラーを適切にハンドリングすることができます。

正規表現の作成

# 質問概要
以下の情報を参考に、正規表現を作成してください。

# 動作環境
{言語やツール名}

# 条件:
・{作成して欲しい正規表現の条件}

# 出力形式
【正規表現】
【正規表現の詳細な解説】
【マッチする例】
【マッチしない例】
【正規表現を使用するソースコードの例】
利用例

# 質問概要
以下の情報を参考に、正規表現を作成してください。

# 動作環境
Java

# 条件
・半角英数字を表す

# 出力形式
【正規表現】
【正規表現の詳細な解説】
【マッチする例】
【マッチしない例】
【正規表現を使用するソースコードの例】

結果

動作環境

Java

条件

・半角英数字を表す

出力

【正規表現】

"^[a-zA-Z0-9]+$"

【正規表現の詳細な解説】

  • ^:文字列の先頭を表します。
  • [a-zA-Z0-9]:小文字のアルファベット (a から z)、大文字のアルファベット (A から Z)、および数字 (0 から 9) のいずれか1文字を表します。
  • +:直前の要素が1回以上繰り返されることを表します。
  • $:文字列の終わりを表します。

この正規表現は、文字列全体が半角英数字のみで構成されている場合にマッチします。

【マッチする例】

  • "abc123"
  • "ABC123"
  • "a1b2c3"
  • "XYZ789"

【マッチしない例】

  • "abc 123" (スペースが含まれている)
  • "abc-123" (ハイフンが含まれている)
  • "abc123!" (感嘆符が含まれている)
  • "" (空文字列)

【正規表現を使用するソースコードの例】

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        String[] testStrings = {"abc123", "ABC123", "a1b2c3", "XYZ789", "abc 123", "abc-123", "abc123!", ""};
        String regex = "^[a-zA-Z0-9]+$";
        
        Pattern pattern = Pattern.compile(regex);
        
        for (String input : testStrings) {
            Matcher matcher = pattern.matcher(input);
            if (matcher.matches()) {
                System.out.println("\"" + input + "\" は半角英数字のみで構成されています。");
            } else {
                System.out.println("\"" + input + "\" には半角英数字以外の文字が含まれています。");
            }
        }
    }
}

このコードは、配列 testStrings に含まれる各文字列が半角英数字のみで構成されているかどうかをチェックします。 matcher.matches()true を返す場合、文字列は条件を満たしており、 false を返す場合、満たしていません。

コマンドの確認

# 質問概要
以下の動作を行う{OS}コマンドを教えてください。

# 動作
{動作}

# 出力形式
【コマンド】
【利用できるオプション】
【使用例と出力結果】
利用例

# 質問概要
以下の動作を行うLinuxコマンドを教えてください。

# 動作
ファイルの行数や文字数をカウントして表示する

# 出力形式
【コマンド】
【利用できるオプション】
【使用例と出力結果】

結果

ファイルの行数や文字数をカウントして表示するためには、wc (word count) コマンドを使用します。以下に詳細を示します。

【コマンド】

wc

【利用できるオプション】

  • -l: 行数を表示
  • -w: 単語数を表示
  • -c: バイト数を表示(ファイルのサイズ)
  • -m: 文字数を表示(マルチバイト文字を含む場合はこちらを使用)

【使用例と出力結果】

例1: ファイルの行数をカウント

wc -l filename.txt

出力例:

5 filename.txt

これは、filename.txt が5行あることを示します。

例2: ファイルの単語数をカウント

wc -w filename.txt

出力例:

30 filename.txt

これは、filename.txt に30個の単語があることを示します。

例3: ファイルのバイト数をカウント

wc -c filename.txt

出力例:

120 filename.txt

これは、filename.txt が120バイトのサイズであることを示します。

例4: ファイルの文字数をカウント

wc -m filename.txt

出力例:

115 filename.txt

これは、filename.txt に115文字が含まれていることを示します。

例5: 全ての情報を表示

wc filename.txt

出力例:

5 30 120 filename.txt

これは、それぞれの値が行数、単語数、バイト数を表しています。

複数のファイルを指定した場合、各ファイルについての情報が表示され、最後に合計が表示されます。

サンプルデータ作成

# 質問概要
{作成したいサンプルデータについて簡潔に記載}

# DB
{DB}

# テーブル構造
{テーブル構造}

# サンプルデータの量
・{XXテーブル:XXレコード}

# 条件
・実際に使用されるようなデータを作成してください。
・データは日本語で作成してください。
・# サンプルデータの量 に記載した全量のサンプルデータを挿入するためのINSERT文を作成してください。

他に必要な情報があれば、質問してください。
利用例

# 質問概要
Eコマースのサンプルデータ用INSERT文を作成してください。

# DB
PostgreSQL

# テーブル構造

  1. Users テーブル:
    • user_id (integer, PK)
    • username (varchar(30))
    • email (varchar(254))
    • password (varchar(20))
    • created_at (timestamp without time zone)
    • updated_at (timestamp without time zone)
  2. Products テーブル:
    • product_id (integer, PK)
    • name (varchar(50))
    • description (varchar(200))
    • price (integer)
    • created_at (timestamp without time zone)
    • updated_at (timestamp without time zone)
  3. Orders テーブル:
    • order_id (integer, PK)
    • user_id (integer,FK)
    • total_amount (integer)
    • created_at (timestamp without time zone)
    • updated_at (timestamp without time zone)
  4. OrderItems テーブル:
    • order_item_id (integer, PK)
    • order_id (integer, FK)
    • product_id (integer, FK)
    • quantity (integer)
    • price (integer)
    • created_at (timestamp without time zone)
    • updated_at (timestamp without time zone)

# サンプルデータの量
* Users テーブル:30レコード
* Products テーブル:15レコード
* Orders テーブル:30レコード
* OrderItems テーブル:45レコード

# 条件
・日本語で回答してください。
・実際に使用されるようなデータを作成してください。
・データは日本語で作成してください。
・# サンプルデータの量 に記載した全量のサンプルデータを挿入するためのINSERT文を作成してください。

他に必要な情報があれば、質問してください。

結果

以下は、要求されたテーブル構造に基づくPostgreSQL用のサンプルデータのINSERT文です。各テーブルに対して指定された数のサンプルデータを挿入するためのSQL文を作成しました。データは実際に使用される可能性のあるものを考慮して作成しています。

Users テーブルのINSERT文 (30レコード):

INSERT INTO Users (user_id, username, email, password, created_at, updated_at)
VALUES
    (1, '田中太郎', 'tanaka.taro@example.com', 'password1', now(), now()),
    (2, '山田花子', 'yamada.hanako@example.com', 'password2', now(), now()),
    (3, '鈴木一郎', 'suzuki.ichiro@example.com', 'password3', now(), now()),
    (4, '佐藤美和', 'sato.miwa@example.com', 'password4', now(), now()),
    (5, '伊藤健太', 'ito.kenta@example.com', 'password5', now(), now()),
    (6, '渡辺さやか', 'watanabe.sayaka@example.com', 'password6', now(), now()),
    (7, '中村裕子', 'nakamura.yuko@example.com', 'password7', now(), now()),
    (8, '加藤隆', 'kato.taka@example.com', 'password8', now(), now()),
    (9, '吉田真理', 'yoshida.mari@example.com', 'password9', now(), now()),
    (10, '山本悠太', 'yamamoto.yuta@example.com', 'password10', now(), now()),
    (11, '林さくら', 'hayashi.sakura@example.com', 'password11', now(), now()),
    (12, '斉藤大輔', 'saito.daisuke@example.com', 'password12', now(), now()),
    (13, '岡田直子', 'okada.naoko@example.com', 'password13', now(), now()),
    (14, '松本和彦', 'matsumoto.kazuhiko@example.com', 'password14', now(), now()),
    (15, '小川美穂', 'ogawa.miho@example.com', 'password15', now(), now()),
    (16, '野口拓郎', 'noguchi.takuro@example.com', 'password16', now(), now()),
    (17, '高橋瞳', 'takahashi.hitomi@example.com', 'password17', now(), now()),
    (18, '吉岡健二', 'yoshioka.kenji@example.com', 'password18', now(), now()),
    (19, '井上由香', 'inoue.yuka@example.com', 'password19', now(), now()),
    (20, '酒井雄一', 'sakai.yuichi@example.com', 'password20', now(), now()),
    (21, '西村真紀子', 'nishimura.makiko@example.com', 'password21', now(), now()),
    (22, '堀内隆', 'horiuchi.taka@example.com', 'password22', now(), now()),
    (23, '杉本奈美', 'sugimoto.nami@example.com', 'password23', now(), now()),
    (24, '大塚英樹', 'otsuka.hideki@example.com', 'password24', now(), now()),
    (25, '阿部葵', 'abe.aoi@example.com', 'password25', now(), now()),
    (26, '三浦直樹', 'miura.naoki@example.com', 'password26', now(), now()),
    (27, '岩田理恵', 'iwata.rie@example.com', 'password27', now(), now()),
    (28, '中島拓海', 'nakajima.takumi@example.com', 'password28', now(), now()),
    (29, '原田麻衣', 'harada.mai@example.com', 'password29', now(), now()),
    (30, '林悠香', 'hayashi.yuka@example.com', 'password30', now(), now());

Products テーブルのINSERT文 (15レコード):

INSERT INTO Products (product_id, name, description, price, created_at, updated_at)
VALUES
    (1, 'ノートパソコン', '高性能なノートパソコンです。', 120000, now(), now()),
    (2, 'スマートフォン', '最新のスマートフォンです。', 80000, now(), now()),
    (3, 'タブレット', 'コンパクトで使いやすいタブレットです。', 50000, now(), now()),
    (4, 'デスクトップPC', 'オフィスでの作業に最適なデスクトップPCです。', 150000, now(), now()),
    (5, 'ワイヤレスイヤホン', '便利なワイヤレスイヤホンです。', 10000, now(), now()),
    (6, '外付けHDD', '大容量の外付けハードディスクです。', 20000, now(), now()),
    (7, 'Bluetoothスピーカー', 'ワイヤレスで接続可能なBluetoothスピーカーです。', 15000, now(), now()),
    (8, 'ゲーミングマウス', 'ゲームに特化した性能を持つゲーミングマウスです。', 8000, now(), now()),
    (9, 'ノートブックケース', 'スタイリッシュなノートブックケースです。', 5000, now(), now()),
    (10, '折りたたみ傘', 'コンパクトに持ち運べる折りたたみ傘です。', 3000, now(), now()),
    (11, '防水バッグ', '水に強い防水バッグです。', 7000, now(), now()),
    (12, 'スポーツウェア', '快適なフィット感のスポーツウェアです。', 12000, now(), now()),
    (13, 'デジタル一眼カメラ', '高画質な写真が撮影できるデジタル一眼カメラです。', 80000, now(), now()),
    (14, 'ホームシアターシステム', '迫力あるサウンドを提供するホームシアターシステムです。', 50000, now(), now()),
    (15, 'スマートウォッチ', '便利な機能が満載のスマートウォッチです。', 30000, now(), now());

Orders テーブルのINSERT文 (30レコード):

INSERT INTO Orders (order_id, user_id, total_amount, created_at, updated_at)
VALUES
    (1, 5, 150000, now(), now()),
    (2, 12, 100000, now(), now()),
    (3, 8, 45000, now(), now()),
    (4, 3, 200000, now(), now()),
    (5, 20, 50000, now(), now()),
    (6, 15, 80000, now(), now()),
    (7, 1, 30000, now(), now()),
    (8, 18, 60000, now(), now()),
    (9, 7, 120000, now(), now()),
    (10, 25, 40000, now(), now()),
    (11, 10, 70000, now(), now()),
    (12, 29, 90000, now(), now()),
    (13, 14, 150000, now(), now()),
    (14, 11, 180000, now(), now()),
    (15, 2, 30000, now(), now()),
    (16, 21, 50000, now(), now()),
    (17, 17, 60000, now(), now()),
    (18, 24, 120000, now(), now()),
    (19, 9, 80000, now(), now()),
    (20, 27, 100000, now(), now()),
    (21, 6, 130000, now(), now()),
    (22, 23, 70000, now(), now()),
    (23, 16, 40000, now(), now()),
    (24, 30, 60000, now(), now()),
    (25, 4, 90000, now(), now()),
    (26, 19, 50000, now(), now()),
    (27, 22, 30000, now(), now()),
    (28, 13, 70000, now(), now()),
    (29, 26, 80000, now(), now()),
    (30, 28, 100000, now(), now());

OrderItems テーブルのINSERT文 (45レコード):

INSERT INTO OrderItems (order_item_id, order_id, product_id, quantity, price, created_at, updated_at)
VALUES
    (1, 1, 2, 1, 80000, now(), now()),
    (2, 1, 5, 2, 20000, now(), now()),
    (3, 2, 8, 1, 8000, now(), now()),
    (4, 2, 10, 2, 6000, now(), now()),
    (5, 2, 12, 1, 12000, now(), now()),
    (6, 3, 3, 1, 50000, now(), now()),
    (7, 3, 6, 1, 20000, now(), now()),
    (8, 4, 1, 1, 120000, now(), now()),
    (9, 4, 4, 1, 150000, now(), now()),
    (10, 4, 14, 2, 100000, now(), now()),
    (11, 5, 9, 1, 5000, now(), now()),
    (12, 5, 11, 1, 7000, now(), now()),
    (13, 6, 13, 1, 80000, now(), now()),
    (14, 7, 7, 1, 15000, now(), now()),
    (15, 7, 15, 1, 30000, now(), now()),
    (16, 7, 10, 2, 6000, now(), now()),
    (17, 8, 3, 2, 100000, now(), now()),
    (18, 8, 5, 1, 10000, now(), now()),
    (19, 9, 8, 2, 16000, now(), now()),
    (20, 10, 12, 1, 12000, now(), now()),
    (21, 10, 15, 1, 30000, now(), now()),
    (22, 11, 6, 2, 40000, now(), now()),
    (23, 11, 9, 1, 5000, now(), now()),
    (24, 11, 11, 1, 7000, now(), now()),
    (25, 12, 2, 1, 80000, now(), now()),
    (26, 12, 7, 1, 15000, now(), now()),
    (27, 13, 13, 1, 80000, now(), now()),
    (28, 13, 14, 1, 50000, now(), now()),
    (29, 14, 1, 1, 120000, now(), now()),
    (30, 14, 3, 1, 50000, now(), now()),
    (31, 14, 5, 1, 10000, now(), now()),
    (32, 15, 6, 1, 20000, now(), now()),
    (33, 16, 8, 1, 8000, now(), now()),
    (34, 16, 10, 1, 3000, now(), now()),
    (35, 17, 12, 1, 12000, now(), now()),
    (36, 17, 13, 1, 80000, now(), now()),
    (37, 18, 2, 1, 80000, now(), now()),
    (38, 18, 3, 1, 50000, now(), now()),
    (39, 18, 4, 1, 150000, now(), now()),
    (40, 19, 5, 1, 10000, now(), now()),
    (41, 19, 9, 1, 5000, now(), now()),
    (42, 20, 11, 1, 7000, now(), now()),
    (43, 20, 15, 1, 30000, now(), now()),
    (44, 21, 1, 1, 120000, now(), now()),
    (45, 21, 7, 1, 15000, now(), now());

これらのSQL文を使用して、各テーブルに対して要求されたサンプルデータを挿入できます。必要に応じてデータベースの設定や具体的な値の調整を行ってください。

最後に

ChatGPTについてざっくりまとめとコピペ用のベースを作成してみました。
ひとつの記事にまとめておくと、ちゃちゃっと使えて便利かと思いますので、ご活用くださいませ。

Discussion