ほぼテク7月17日海の日にちなんで?多様化するDBの波を乗り越えられるかをChatGPTで試してみました。

ほぼテク読者の皆様、いつも大変ありがとうございます!
我妻裕太です。

本日もよろしくお願いいたします。
GPTに関する連続投稿約82日目です!

仙台は今日も猛暑です!みなさんの地域は大丈夫でしょうか。

本日は海開きなので、たくさんの方が海水浴に行かれるかと思いますが、安全にご留意ください!
テクノロジーの海も、次世代の技術、人工知能やブロックチェーン、クラウドコンピューティングなどの浸透とともに、テクノロジーの海はさらに広がりを見せています。

新たな波に乗るためには、進行方向を知り、波に乗るタイミングを計るスキルが求められます。
テクノロジーの海でも、適切な準備と理解があれば安全に楽しむことができます。みなさんも一緒にこの波を乗り越えてみましょう!

っということで大分暑いせいか、変な長い入りになってしまいましたが、楽しんでいただけましたでしょうか(笑)
本日もよろしくお願いいたします!

本日は少し技術的なテーマで行きたいと思います。
そう、データベース問題です!

データベースの多様性とChatGPTで開発を効率化?

近年の技術的進歩によってデータベース技術も多様化してきました。
それは、SQLデータベースからNoSQLデータベース、In-memoryデータベース、グラフデータベース、タイムシリーズデータベースなど、多種多様な選択肢を提供し、それぞれが特定のユースケースに対して優れた性能を発揮します。

これにより、企業は自身の特定のニーズに最適なデータベースを選び、それに合わせて自分たちのシステムを構築することが可能になりました。
素晴らしいですね。

しかし良いことばかりではありません、一方で、SQLを書く機会はORマッパー(オブジェクトリレーショナルマッピングツール)の登場によって減少したとは言え、それでもSQLを書く必要性は依然として存在します。
特に複雑なデータ分析やパフォーマンスのチューニングなどには、SQLの直接的な書き方が依然として必要不可欠です。

ただ、異なるタイプのデータベースに対応するためには、そのDBMS固有のSQL方言を理解し、適切に書く必要があります。
これがとても大変で学習コストと時間を増加させる要因になりえます。

さらに既存のSQLコードを新しいデータベースに移行する際の課題も依然として存在します。

そんな時は大好きChatGPTで解決!

ここで、いよいよ大好きChatGPTが登場します!

ChatGPTは様々なデータベースのSQL方言を理解し、それらを適切に使用するための助けとなります。
また、既存のSQLコードを新しいデータベース環境に適応させる際のコンバート作業の支援も行ってくれます!

ChatGPTを使えば、データベースの方言に悩むことなく、どのデータベース環境でも効率的に作業することが可能となります。
学習コストや移行の困難さを大幅に軽減し、開発者がより高品質なコードを書くことに集中できます!

では早速ためしてみよう!
今回の実験ルールは以下の通りです。

  • サンプルの従業員の勤務条件と制約条件をもとにシフト作成をします。

  • GPT-3.5で実験する。

  • プロンプトは以下で実行します。

—————————————————————————————————————————

【プロンプト】
あなたは弊社の優秀なデータベースエンジニアです。
以下はPostgreSQLのSQL文です。
ターゲットDB箇所に記載しているDBで実行できるSQL文に修正してください。
表形式で記載してください。

## SQL文

【SQL1】SELECT文: データベースからデータを取得するための基本的な命令です。
SELECT column_name FROM table_name;

【SQL2】INSERT文: データをテーブルに挿入するための命令です。
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);

【SQL3】UPDATE文: 既存のデータを更新するための命令です。
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;

【SQL4】DELETE文: データを削除するための命令です。
DELETE FROM table_name WHERE condition;

【SQL5】CREATE TABLE文: 新しいテーブルを作成するための命令です。
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
...
);

【SQL6】ALTER TABLE文: 既存のテーブルを変更するための命令です。
ALTER TABLE table_name
ADD column_name datatype;

【SQL7】DROP TABLE文: テーブルを削除するための命令です。
DROP TABLE table_name;

【SQL8】JOIN文: 二つ以上のテーブルからデータを結合して取得するための命令です。
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;

【SQL9】文字列の連結
SELECT 'Hello ' || 'World';

【SQL10】現在の日時を取得
SELECT CURRENT_TIMESTAMP;

【SQL11】Auto Increment(自動インクリメント)
CREATE TABLE test (id SERIAL PRIMARY KEY, name VARCHAR(255));

【SQL12】日付の操作(現在の日付から30日後を取得)
SELECT CURRENT_DATE + INTERVAL '30 days';

## ターゲットDB
・Oracle Database
・MongoDB
・Microsoft Access
・Microsoft SQL Server
・FileMaker
・MySQL
・SQLite
・IndexedDB
・Web SQL

—————————————————————————————————————————

おぉーーーー、早い!毎日見ても早いと思ってしまうほど早い!


最初は表形式でなかったのですが、各DBごとに書いてくれています。
念のため2回目を打ったら今度は表形式にしてさらに見やすくなりました。

コンバート結果の詳細確認は必要ですが、文字列連結のところはひっかけだったのですが、MySQLの方言を理解して以下のように正しく書き換えてくれていました。
素晴らしいです。

例)MySQL
【SQL9】文字列の連結:
SELECT CONCAT('Hello ', 'World');

その他にもSQLiteではALTER TABLE文が使えないのですが、その点も丁寧に説明してくれています。
いいですね~。

例)SQLite
【SQL6】ALTER TABLE文:(SQLiteではALTER TABLE文を使用して列を追加することはできません)
SQLiteでは既存のテーブルに列を追加する構文は提供されていません。

まとめ

っということでいかがでしたでしょうか。

本日は海の日にちなんで?多様化するDBの波を乗り越えられるかをChatGPTで試してみました。
結果は乗り越えられそうです!

今までは一個一個個別に調べて書く必要がありましたが、一瞬でSQL文を生成してくれるのは魅力でしかありません!
仮に実行して駄目な場合はデバッグするだけですので、以前よりも開発がスムーズになるような気がします。

人手不足の世の中でいかに効率化して開発や仕事をするかが企業には求められていると思いますので、みなさんもぜひ、ChatGPTを活用してみてはいかがでしょうか。

今回の記事がみなさまの何かの参考になりましたら幸いです。
今回も最後までお読みいただきありがとうございました。

また次回お会いしましょう。

原稿執筆
株式会社GROWTH JAPAN TECHNOLOGIES  我妻裕太

バックナンバー

ほぼテク7月16日GPT-3.5、GoogleBardでシフト管理を考えてみました!

ほぼテク7月15日GPT-4 Code InterpreterでG20の人口成長率を分析してみたら新しい気づきをくれました!

ほぼテク7月12日最新情報アップデート!GPT-4一般公開されたけど、APIで支払い履歴がないと使えないことが分かりましたの件(涙)

ほぼテク7月9日最新機能ChatGPTの「Code Interpreter(コードインタープリター)」を使ってみました!

ほぼテク7月7日SaaSサービスの利用規約のひな型をGPT、Bardで作ってみました!

ほぼテク7月5日BingのGPTの画像認識を解剖?ChatGPTとの違いと画像解析の可能性を探る!

ほぼテク7月2日ChatGPT・GoogleBardを活用したコンテンツモデレーション(投稿監視)!コミュニティの健全性と品質をChatGPT、GoogleBardで保てるか?

ほぼテク7月1日ChatGPTを活用してオンラインショッピングサイトのカスタマーサポートを効率化しよう?

ほぼテク6月28日AIと一緒にダイエット?ChatGPT、GoogleBardに体重データを分析してもらった!なかなか面白いよ(笑)

ほぼテク6月25日GPTの最新機能!「Azure OpenAI Service on your data」を試してみました!

ほぼテク6月24日GPTの活用事例!チャットボット用のQAデータをGPTで作成してみた!

ほぼテク6月21日GPT4の活用事例!生成AI達でAIの教師データを生成してみよう。

ほぼテク6月17日ChatGPTの活用ガイド!AIをあなたのプロジェクトに取り入れる方法徹底解説?

ほぼテク6月14日!ChatGPTを活用するために重要な留意事項13選! AIとのスムーズな対話を実現!

ほぼテク6月11日!ChatGPTでSNSマーケティングを攻略しよう!

ほぼテク6月10日!ChatGPTで情報の抽出をマスターしよう!

ほぼテク6月7日!ChatGPTを使って業務効率化! - データ解析とレポート作成の新たな方法?

ほぼテク6月4日!ChatGPTでマスタ情報を活用した間違い探し!

ほぼテク6月3日!ChatGPTで文法・スペルチェック!

ほぼテク5月31日!ChatGPTでファンタジーは創造できるか?

ほぼテク5月28日!ChatGPTで地元仙台市を分析してみました!

ほぼテク5月27日!ChatGPTでWebサイトから重要な情報を取得できるか試してみました!

ほぼテク5月24日!ChatGPTプラグイン実践編!画像生成のためのプロンプト生成プラグイン!

ほぼテク5月21日!ChatGPTプラグイン実践編!食べログプラグイン!

ほぼテク5月20日!とても面白いChatGPTのプラグイン使ってみました!

ほぼテク5月17日!GPTとの冒険!ファインチューニングで試行錯誤、そして成功へ!

ほぼテク5月14日!ChatGPT Webブラウジング機能がリリースされました!

ほぼテク5月13日!ChatGPTを活用した創作活動の一例!物語のプロットを創ってみた。

ほぼテク5月12日!Bard – Googleの新しい会話型AIが世界デビュー!

ほぼテク5月10日!今、私たちは新たなフロンティア、つまり宇宙へと視野を広げています!

ほぼテク5月7日!Chat GPTの正しい使い方基本プロンプトで会話してみました④

ほぼテク5月6日!Chat GPTの正しい使い方基本プロンプトで会話してみました

ほぼテク5月5日!Chat GPTの正しい使い方基本プロンプトで会話してみました②

ほぼテク5月4日!Chat GPTの正しい使い方基本プロンプトで会話してみました①

ほぼテク5月3日ImageCreatorで生成した画像で展示会?

今更聞ける!ほぼ毎日テック日報(おとなの週末) 4月30日(マイクロソフト画像生成AI「Bing Image Crator」とは?) – テクノロジーが日常にもたらすイノベーション?

今更聞ける!ほぼ毎日テック日報(おとなの週末) 4月29日(完全自動実行AI AutoGPTとは?) – テクノロジーが日常にもたらすイノベーション?

新企画!?「今更聞ける!ほぼ毎日テック日報 - テクノロジーが日常にもたらすイノベーション?」

前へ
前へ

ほぼテク7月19日GPTのライバルになるか?満を持して登場のMetaのLlama2が先ほど公開されました!

次へ
次へ

ほぼテク7月16日GPT-3.5、GoogleBardでシフト管理を考えてみました!