diff --git a/【練習問題】 SQL/Question2/item_category_清水.sql b/【練習問題】 SQL/Question2/item_category_清水.sql new file mode 100644 index 0000000..a0bcf54 --- /dev/null +++ b/【練習問題】 SQL/Question2/item_category_清水.sql @@ -0,0 +1,173 @@ +mysql> CREATE TABLE item_category( category_id. INT PRIMARY KEY AUTO_INCREMENT, category_name VARCHAR(256) NOT NULL); +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 '. INT PRIMARY KEY AUTO_INCREMENT, category_name VARCHAR(256) NOT NULL)' at line 1 +mysql> CREATE TABLE item_category ( category_id, INT PRIMARY KEY AUTO_INCREMENT, category_name VARCHAR(256) NOT NULL); +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 ', INT PRIMARY KEY AUTO_INCREMENT, category_name VARCHAR(256) NOT NULL)' at line 1 +mysql> CREATE TABLE item_category ( category_id INT PRIMARY KEY AUTO_INCREMENT, category_name VARCHAR(256) NOT NULL); +Query OK, 0 rows affected (0.03 sec) + +mysql> DESC item_category; ++---------------+--------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++---------------+--------------+------+-----+---------+----------------+ +| category_id | int | NO | PRI | NULL | auto_increment | +| category_name | varchar(256) | NO | | NULL | | ++---------------+--------------+------+-----+---------+----------------+ +2 rows in set (0.02 sec) + +mysql> SELECT * FROM item_category; +Empty set (0.00 sec) + +mysql> INSERT INTO item_category ( category_name ) VALUES ('家具'),('飲料'),('食品'); +Query OK, 3 rows affected (0.01 sec) +Records: 3 Duplicates: 0 Warnings: 0 + +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 PRIMARY KEY AUTO_INCREMENT, name VARCHAR(256) NOT NULL, + -> price INT NOT NULL, category_id INT, FOREIGN KEY ( categry_id) REFERENCES item_category(category_id)); +ERROR 1072 (42000): Key column 'categry_id' doesn't exist in table +mysql> CREATE TABLE items ( item_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(256) NOT NULL, + -> price INT NOT NULL, category_id INT, FOREIGN KEY ( categry_id ) REFERENCES item_category( category_id )); +ERROR 1072 (42000): Key column 'categry_id' doesn't exist in table +mysql> CREATE TABLE items ( item_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(256) NOT NULL, + -> price INT NOT NULL, category_id INT, FOREIGN KEY ( category_id ) REFERENCES item_category( category_id )); +Query OK, 0 rows affected (0.06 sec) + +mysql> DESC items; ++-------------+--------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++-------------+--------------+------+-----+---------+----------------+ +| item_id | int | NO | PRI | NULL | auto_increment | +| name | varchar(256) | NO | | NULL | | +| price | int | NO | | NULL | | +| category_id | int | YES | MUL | NULL | | ++-------------+--------------+------+-----+---------+----------------+ +4 rows in set (0.00 sec) + +mysql> INSERT INTO items ( name, price, category_id ) + -> VALUES ('ローマのテーブル', 150000, 1),('げーたるーど2000 500ml', 370, 2),('原始肉', 2500, 3),('魅惑の椅子', 100000, 1); +Query OK, 4 rows affected (0.01 sec) +Records: 4 Duplicates: 0 Warnings: 0 + +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 JOIN item_category ON items.category_id = item_category.category_id; ++-------------+---------+------------------------+--------+---------------+ +| category_id | item_id | name | price | category_name | ++-------------+---------+------------------------+--------+---------------+ +| 1 | 1 | ローマのテーブル | 150000 | 家具 | +| 1 | 4 | 魅惑の椅子 | 100000 | 家具 | +| 2 | 2 | げーたるーど2000 500ml | 370 | 飲料 | +| 3 | 3 | 原始肉 | 2500 | 食品 | ++-------------+---------+------------------------+--------+---------------+ +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 JOIN item_category ON items.category_id = item_category.category_id + -> ORDER BY items.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 JOIN item_category ON items.category_id = item_category.category_id; ++-------------+---------+------------------------+--------+---------------+ +| category_id | item_id | name | price | category_name | ++-------------+---------+------------------------+--------+---------------+ +| 1 | 1 | ローマのテーブル | 150000 | 家具 | +| 1 | 4 | 魅惑の椅子 | 100000 | 家具 | +| 2 | 2 | げーたるーど2000 500ml | 370 | 飲料 | +| 3 | 3 | 原始肉 | 2500 | 食品 | ++-------------+---------+------------------------+--------+---------------+ +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 JOIN item_category ON items.category_id = item_category.category_id + -> ORDER BY items.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 JOIN item_category ON items.category_id = item_category.category_id + -> WHERE item_category.category_name = '家具'; ++-------------+---------+------------------+--------+---------------+ +| 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 JOIN item_category ON items.category_id = item_category.category_id + -> WHERE items.price BETWEEN 1000 AND 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; +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 '*) AS data_count FROM items' at line 1 +mysql> SELECT COUNT(*) AS data_count FROM items; ++------------+ +| data_count | ++------------+ +| 4 | ++------------+ +1 row in set (0.01 sec) + +mysql> SELECT items.category_id, items.item_id, items.name, items.price, item_category.category_name + -> FROM items JOIN item_category ON items.category_id = item_category.category_id + -> WHERE items.price = ( SELECT MAX(price) FROM items ); ++-------------+---------+------------------+--------+---------------+ +| category_id | item_id | name | price | category_name | ++-------------+---------+------------------+--------+---------------+ +| 1 | 1 | ローマのテーブル | 150000 | 家具 | ++-------------+---------+------------------+--------+---------------+ +1 row in set (0.00 sec) + +mysql> SELECT items.category_id, items.item_id, items.name, items.price, item_category.category_name + -> FROM items JOIN item_category ON items.category_id = item_category.category_id + -> WHERE items.name LIKE '%の%'; ++-------------+---------+------------------+--------+---------------+ +| category_id | item_id | name | price | category_name | ++-------------+---------+------------------+--------+---------------+ +| 1 | 1 | ローマのテーブル | 150000 | 家具 | +| 1 | 4 | 魅惑の椅子 | 100000 | 家具 | ++-------------+---------+------------------+--------+---------------+ +2 rows in set (0.00 sec) + +mysql> \ No newline at end of file