生成AIで架空のポケモンを作るためのデータベースを作る過程で必要になったSQLについて学んでいます。今回はSELECT文から。ChatGPTに作らせた問題を解いています。
入力:SELECT文の練習問題を問題1~5以外の構文をテーマにもう5問作ってください
出力:
もちろんです。以下に新しい構文をテーマにしたSQLのSELECT文の練習問題を5問作成しました。
新しい練習問題
問題6: DISTINCT句の使用
以下のemployees
テーブルから、重複のない部門名を選択するSQL文を書いてください。
employeesテーブル
employee_id | first_name | last_name | department | salary |
---|---|---|---|---|
1 | John | Doe | HR | 50000 |
2 | Jane | Smith | IT | 60000 |
3 | Michael | Brown | Finance | 55000 |
4 | Emily | Davis | IT | 62000 |
5 | Lisa | Johnson | Marketing | 52000 |
質問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_id | department_name | location |
---|---|---|
1 | HR | New York |
2 | IT | San Francisco |
3 | Finance | Chicago |
4 | Marketing | Los Angeles |
employeesテーブル
employee_id | first_name | last_name | department_id | salary |
---|---|---|---|---|
1 | John | Doe | 1 | 50000 |
2 | Jane | Smith | 2 | 60000 |
3 | Michael | Brown | 3 | 55000 |
4 | Emily | Davis | 2 | 62000 |
5 | Lisa | Johnson | 4 | 52000 |
質問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を複数人が使う場合の話なので、今は一読して「そういう概念もあるのか」程度で良いでしょう。
次回に続く