diff --git a/【練習問題】 SQL/Question2/Q2回答.txt b/【練習問題】 SQL/Question2/Q2回答.txt new file mode 100644 index 0000000..92b2eee --- /dev/null +++ b/【練習問題】 SQL/Question2/Q2回答.txt @@ -0,0 +1,174 @@ +mysql> CREATE TABLE item_category ( + -> category_id INT, + -> category_name VARCHAR(256) + -> ); +Query OK, 0 rows affected (0.02 sec) + +mysql> INSERT INTO item_category VALUES (1, '家具'); +Query OK, 1 row affected (0.00 sec) + +mysql> INSERT INTO item_category VALUES (2, '飲料'); +Query OK, 1 row affected (0.00 sec) + +mysql> INSERT INTO item_category VALUES (3, '食品'); +Query OK, 1 row affected (0.01 sec) + +mysql> SELECT * FROM item_category; ++-------------+---------------+ +| category_id | category_name | ++-------------+---------------+ +| 1 | 家具 | +| 2 | 飲料 | +| 3 | 食品 | ++-------------+---------------+ +3 rows in set (0.00 sec) + +mysql> CREATE TABLE items ( + -> item_id INT, + -> name VARCHAR(256), + -> price INT, + -> category_id INT + -> ); +Query OK, 0 rows affected (0.02 sec) + +mysql> INSERT INTO items VALUES (1, 'ローマのテーブル', 150000, 1); +Query OK, 1 row affected (0.01 sec) + +mysql> INSERT INTO items VALUES (2, 'げーたるーど2000 500ml', 370, 2); +Query OK, 1 row affected (0.01 sec) + +mysql> INSERT INTO items VALUES (3, '原始肉', 2500, 3);l +Query OK, 1 row affected (0.01 sec) + + -> INSERT INTO items VALUES (4, '魅惑の椅子', 100000, 1); +ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'l +INSERT INTO items VALUES (4, '魅惑の椅子', 100000, 1)' at line 1 +mysql> INSERT INTO items VALUES (3, '原始肉', 2500, 3); +Query OK, 1 row affected (0.00 sec) + +mysql> INSERT INTO items VALUES (4, '魅惑の椅子', 100000, 1); +Query OK, 1 row affected (0.01 sec) + +mysql> SELECT * FROM items; ++---------+------------------------+--------+-------------+ +| item_id | name | price | category_id | ++---------+------------------------+--------+-------------+ +| 1 | ローマのテーブル | 150000 | 1 | +| 2 | げーたるーど2000 500ml | 370 | 2 | +| 3 | 原始肉 | 2500 | 3 | +| 3 | 原始肉 | 2500 | 3 | +| 4 | 魅惑の椅子 | 100000 | 1 | ++---------+------------------------+--------+-------------+ +5 rows in set (0.00 sec) + +mysql> DELETE FROM items WHERE item_id = 3; +Query OK, 2 rows affected (0.00 sec) + +mysql> SELECT * FROM items; ++---------+------------------------+--------+-------------+ +| item_id | name | price | category_id | ++---------+------------------------+--------+-------------+ +| 1 | ローマのテーブル | 150000 | 1 | +| 2 | げーたるーど2000 500ml | 370 | 2 | +| 4 | 魅惑の椅子 | 100000 | 1 | ++---------+------------------------+--------+-------------+ +3 rows in set (0.00 sec) + +mysql> INSERT INTO items VALUES (3, '原始肉', 2500, 3); +Query OK, 1 row affected (0.01 sec) + +mysql> SELECT * FROM items; ++---------+------------------------+--------+-------------+ +| item_id | name | price | category_id | ++---------+------------------------+--------+-------------+ +| 1 | ローマのテーブル | 150000 | 1 | +| 2 | げーたるーど2000 500ml | 370 | 2 | +| 4 | 魅惑の椅子 | 100000 | 1 | +| 3 | 原始肉 | 2500 | 3 | ++---------+------------------------+--------+-------------+ +4 rows in set (0.00 sec) + +mysql> DELETE FROM items WHERE item_id = 4; +Query OK, 1 row affected (0.01 sec) + +mysql> INSERT INTO items VALUES (4, '魅惑の椅子', 100000, 1); +Query OK, 1 row affected (0.01 sec) + +mysql> SELECT * FROM items; ++---------+------------------------+--------+-------------+ +| item_id | name | price | category_id | ++---------+------------------------+--------+-------------+ +| 1 | ローマのテーブル | 150000 | 1 | +| 2 | げーたるーど2000 500ml | 370 | 2 | +| 3 | 原始肉 | 2500 | 3 | +| 4 | 魅惑の椅子 | 100000 | 1 | ++---------+------------------------+--------+-------------+ +4 rows in set (0.00 sec) + +mysql> SELECT items.category_id, items.item_id, items.name, items.price, item_category.category_name FROM items INNER JOIN item_category ON items.category_id = item_category.category_id; ++-------------+---------+------------------------+--------+---------------+ +| category_id | item_id | name | price | category_name | ++-------------+---------+------------------------+--------+---------------+ +| 1 | 1 | ローマのテーブル | 150000 | 家具 | +| 2 | 2 | げーたるーど2000 500ml | 370 | 飲料 | +| 3 | 3 | 原始肉 | 2500 | 食品 | +| 1 | 4 | 魅惑の椅子 | 100000 | 家具 | ++-------------+---------+------------------------+--------+---------------+ +4 rows in set (0.00 sec) + +mysql> SELECT items.category_id, items.item_id, items.name, items.price, item_category.category_name FROM items INNER JOIN item_category ON items.category_id = item_category.category_id ORDER BY price ASC; ++-------------+---------+------------------------+--------+---------------+ +| category_id | item_id | name | price | category_name | ++-------------+---------+------------------------+--------+---------------+ +| 2 | 2 | げーたるーど2000 500ml | 370 | 飲料 | +| 3 | 3 | 原始肉 | 2500 | 食品 | +| 1 | 4 | 魅惑の椅子 | 100000 | 家具 | +| 1 | 1 | ローマのテーブル | 150000 | 家具 | ++-------------+---------+------------------------+--------+---------------+ +4 rows in set (0.00 sec) + +mysql> SELECT items.category_id, items.item_id, items.name, items.price, item_category.category_name FROM items INNER JOIN item_category ON items.category_id = item_category.category_id AND items.category_id = 1; ++-------------+---------+------------------+--------+---------------+ +| category_id | item_id | name | price | category_name | ++-------------+---------+------------------+--------+---------------+ +| 1 | 1 | ローマのテーブル | 150000 | 家具 | +| 1 | 4 | 魅惑の椅子 | 100000 | 家具 | ++-------------+---------+------------------+--------+---------------+ +2 rows in set (0.00 sec) + +mysql> SELECT items.category_id, items.item_id, items.name, items.price, item_category.category_name FROM items INNER JOIN item_category ON items.category_id = item_category.category_id AND 1000 <= items.price AND items.price <= 50000; ++-------------+---------+--------+-------+---------------+ +| category_id | item_id | name | price | category_name | ++-------------+---------+--------+-------+---------------+ +| 3 | 3 | 原始肉 | 2500 | 食品 | ++-------------+---------+--------+-------+---------------+ +1 row in set (0.00 sec) + +mysql> SELECT COUNT(*) AS data_count FROM items; ++------------+ +| data_count | ++------------+ +| 4 | ++------------+ +1 row in set (0.00 sec) + +mysql> CREATE TABLE items_category AS SELECT items.category_id, items.item_id, items.name, items.price, item_category.category_name FROM items INNER JOIN item_category ON items.category_id = item_category.category_id ORDER BY price ASC; +Query OK, 4 rows affected (0.03 sec) +Records: 4 Duplicates: 0 Warnings: 0 + +mysql> SELECT * FROM items_category WHERE price = (SELECT MAX(price) FROM items_category); ++-------------+---------+------------------+--------+---------------+ +| category_id | item_id | name | price | category_name | ++-------------+---------+------------------+--------+---------------+ +| 1 | 1 | ローマのテーブル | 150000 | 家具 | ++-------------+---------+------------------+--------+---------------+ +1 row in set (0.00 sec) + +mysql> SELECT * FROM items_category WHERE name LIKE '%の%'; ++-------------+---------+------------------+--------+---------------+ +| category_id | item_id | name | price | category_name | ++-------------+---------+------------------+--------+---------------+ +| 1 | 4 | 魅惑の椅子 | 100000 | 家具 | +| 1 | 1 | ローマのテーブル | 150000 | 家具 | ++-------------+---------+------------------+--------+---------------+ +2 rows in set (0.00 sec) \ No newline at end of file