ほぼテク7月26日ソフトウェア開発におけるSQL作成の課題をChatGPTが解決!?人間とAIで開発する次世代のソフトウェア開発!?

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

本日もよろしくお願いいたします。GPTに関する連続投稿約92日目です!
本日もChatGPTの有効活用方法の検討です!

今回のテーマはソフトウェア開発時に困るSQL作成です!
何かの参考になれば幸いです。

SQL開発のよくある課題

ソフトウェア開発者として、日々の業務の中でSQLを利用する場面はとても多いかと思います。
しかし、データベース設計の内容の理解、クエリ最適化、文法の複雑さなど、SQL開発は一筋縄ではいかない課題を含んでいます。

特に新人時代などはもう意味不明な呪文のようでかなり困っていたのを思い出します(笑)

SQLの難しいところの一つ目の課題は、データベース設計の理解です。
新しいプロジェクトに参加したとき、複雑なテーブル構造とリレーションシップを理解するのは時間と労力が必要です。かなり・・・
また、特定のデータを取得するための適切なクエリを書くためには、場合によっては職人のようなスキーマの詳細に精通していなければなりません。

二つ目の課題は、クエリの最適化です。適切なインデックスを使用したり、不要な結合を避けたり、サブクエリをうまく活用したりすることでパフォーマンスを向上させることが可能ですが、これらのテクニックを理解し適用するのは容易ではありません。
サクサク開発していたけど、大量のデータをいれた瞬間に・・・あれ((+_+))のようなこともあるのではないでしょうか(笑)

最後の課題は、SQLの文法の複雑さです。
SQLは機能が豊富で柔軟な言語ですが、そのために文法が複雑で、さまざまなシチュエーションで適切な構文を思い出すのは難しい場合があります。
とにかくSQLは難しい印象を持たれている方は多いのではないでしょうか。

私は今でもあまり難しいSQLは考えたくはないです・・・

大好きChatGPTの登場

助けて?ChatGPT!

そこで登場するのが、大好きChatGPT です!

ChatGPTは、自然言語処理の能力を活用して、複雑なクエリの作成や理解、最適化に役立つツールとして開発者の手元に提供されています。
ChatGPTは、開発者が高度なクエリを手早く作成できるよう支援し、SQL開発の効率を大幅に向上させることができます。

ChatGPTで効率化するSQL開発

では、具体的にChatGPTがどのようにSQL開発を効率化するか見ていきましょう。
特に注目すべきは、ChatGPTが自然言語の指示に基づいてSQLクエリを生成する能力です。

これにより、開発者は複雑なクエリを自力で書く代わりに、ChatGPTに指示を与えるだけで適切なクエリを得ることができます。
これはSQLの経験が少ない開発者や、短時間で複雑なクエリを生成しなければならないシチュエーションに特に役立ちます。

SQL生成のイメージ

それでは、具体的なデモを通じてChatGPTがどのようにSQLクエリを生成するのか見てみましょう。
まず、以下のスキーマ情報を持つデータベースを考えてみます。

customersテーブル:

 id (整数、主キー)

 name (文字列)

 email (文字列)

ordersテーブル:

 id (整数、主キー)

 customer_id (整数、customersテーブルへの外部キー)

 product (文字列)

 quantity (整数)

次に、このデータベースに対して、「顧客の名前とそれぞれの注文の総数を取得するクエリを生成してください」というプロンプトをChatGPTに投げてみます。
恐らくChatGPTの生成するSQLクエリは次のようになります!

SELECT customers.name, COUNT(orders.id)

FROM customers

LEFT JOIN orders ON customers.id = orders.customer_id

GROUP BY customers.name;

このようにChatGPTがSQL開発者の負担を軽減し、生産性を向上させるための具体的な方法を示してくれます。
複雑なデータベースでも、具体的なクエリのニーズに応じて、ChatGPTが短時間で適切なクエリを生成することが可能です。
これにより、開発者はより重要な業務に集中し、全体的なプロジェクトの進行をスムーズにすることができます。

素晴らしいです。

それでは早速ChatGPTでSQLを生成してみよう!

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

【実験ルール】
GPT-3.5で実験する。
プロンプトは以下で実行します。

【プロンプト】
あなたは弊社の優秀なデータベーススペシャリストです。
顧客の名前とそれぞれの注文の総数を取得するクエリを生成してください
スキーマ情報は以下の通りです。

## スキーマ

customersテーブル:
id (整数、主キー)
name (文字列)
email (文字列)

ordersテーブル:
id (整数、主キー)
customer_id (整数、customersテーブルへの外部キー)
product (文字列)
quantity (整数)

よろしくお願いいたします!顧客の名前とそれぞれの注文の総数を取得するためのSQLクエリを以下に示します。

SELECT customers.name AS customer_name, COUNT(orders.id) AS total_orders

FROM customers

LEFT JOIN orders ON customers.id = orders.customer_id

GROUP BY customers.id, customers.name;

このクエリは、customersテーブルとordersテーブルをcustomer_idを使用して左外部結合しています。これにより、すべての顧客情報が含まれる結果セットを得ることができます。そして、COUNT関数を使って各顧客の注文総数を計算し、GROUP BY句で顧客ごとにグループ化しています。

このクエリをデータベースに実行すると、各顧客の名前とその顧客の総注文数が取得されるはずです。

以下は英語版です↓


はや・・・

すご!とても早いです。
そんなに難易度は高くないかもしれませんが、それでもこのスピードで生成するのは異次元ですね!

これがあればSQLで悩むことも減るかもしれませんね。

まとめ

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

本日はChatGPTでSQLを生成してみました。
日々時代の進化するスピードが速くなる中で、時代についていくためには私たち自身がさらにスピード感をもって日々を過ごしていく必要があると思います。

その中でソフトウェア開発も同じで少しでも創意工夫をして新しい価値をできるだけ早く生み出して世の中に提供していくことが大事だと思います。
その時に私たちの大好きなChatGPTがきっと活躍してくれるはずです。

人間とAIの新しいソフトウェア開発の姿、とても面白い世界ですね。
テクノロジーを有効活用して新しい時代の波に乗り遅れないように頑張りたいものです!

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

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

原稿執筆

株式会社GROWTH JAPAN TECHNOLOGIES  我妻裕太

バックナンバー

ほぼテク7月23日ChatGPTが変える業務効率化!ChatGPTを使った次世代のタスク管理!?

ほぼテク7月22日ChatGPTをあなた専用のAIにカスタマイズ!新機能「Custom Instructions」の紹介です!

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

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

ほぼテク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月29日GPT-4のCode Interpreterで身体を引き締める?ChatGPTをパーソナルトレーナーにする方法!?

次へ
次へ

ほぼテク7月23日ChatGPTが変える業務効率化!ChatGPTを使った次世代のタスク管理!?