CONTENTS コンテンツ

SQLを学ぼう!(4)

学習編-SQL

2024.06.20

 生成AIで架空のポケモンを作るためのデータベースを作る過程で必要になったSQLについて学んでいます。今回はSELECT文から。ChatGPTに作らせた問題を解いています。

入力:SELECT文の練習問題を問題1~5以外の構文をテーマにもう5問作ってください

出力:

もちろんです。以下に新しい構文をテーマにしたSQLのSELECT文の練習問題を5問作成しました。

新しい練習問題

問題6: DISTINCT句の使用

以下のemployeesテーブルから、重複のない部門名を選択するSQL文を書いてください。

employeesテーブル

employee_idfirst_namelast_namedepartmentsalary
1JohnDoeHR50000
2JaneSmithIT60000
3MichaelBrownFinance55000
4EmilyDavisIT62000
5LisaJohnsonMarketing52000

質問6.1: 重複のない部門名を選択するSQL文を作成してください。

問題7: IN句の使用

以下のemployeesテーブルから、部門がHRまたはFinanceの従業員を選択するSQL文を書いてください。

質問7.1: 部門がHRまたはFinanceの従業員を選択するSQL文を作成してください。

問題8: LIKE句の使用

以下のemployeesテーブルから、名前に「J」を含む従業員を選択するSQL文を書いてください。

質問8.1: 名前に「J」を含む従業員を選択するSQL文を作成してください。

問題9: BETWEEN句の使用

以下のemployeesテーブルから、給与が55000以上60000以下の従業員を選択するSQL文を書いてください。

質問9.1: 給与が55000以上60000以下の従業員を選択するSQL文を作成してください。

問題10: JOIN句の使用

以下のemployeesテーブルとdepartmentsテーブルを結合して、各従業員の名前とその所属部門の詳細を選択するSQL文を書いてください。

departmentsテーブル

department_iddepartment_namelocation
1HRNew York
2ITSan Francisco
3FinanceChicago
4MarketingLos Angeles

employeesテーブル

employee_idfirst_namelast_namedepartment_idsalary
1JohnDoe150000
2JaneSmith260000
3MichaelBrown355000
4EmilyDavis262000
5LisaJohnson452000

質問10.1: employeesテーブルとdepartmentsテーブルを結合して、各従業員の名前とその所属部門の詳細を選択するSQL文を作成してください。

回答例

回答6.1:

SELECT DISTINCT department FROM employees;

回答7.1:

SELECT employee_id, first_name, last_name, department, salary FROM employees WHERE department IN ('HR', 'Finance');

回答8.1:

SELECT employee_id, first_name, last_name, department, salary FROM employees WHERE first_name LIKE '%J%';

回答9.1:

SELECT employee_id, first_name, last_name, department, salary FROM employees WHERE salary BETWEEN 55000 AND 60000;

回答10.1:

SELECT e.first_name, e.last_name, d.department_name, d.location FROM employees e JOIN departments d ON e.department_id = d.department_id;

これらの練習問題を通じて、DISTINCT句、IN句、LIKE句、BETWEEN句、JOIN句の使い方を学ぶことができます。

 教材にない問題が出てきた。「人間と生成AIで違う事例が出てきたということは、メジャーどころとして共通認識な部分はカバーしただろう」ということで先に進もう。次はトランザクション。この項目は同じDBを複数人が使う場合の話なので、今は一読して「そういう概念もあるのか」程度で良いでしょう。

次回に続く

この記事をシェアする