Files
db-lesson/【練習問題】 SQL/Question2/Question2.sql
2026-09-28 14:44:54 +09:00

122 lines
6.1 KiB
SQL

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.05 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.00 sec)
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.05 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.05 sec)
mysql> SELECT * FROM item_category LEFT JOIN items USING(category_id);
+-------------+---------------+---------+------------------------+--------+
| category_id | category_name | item_id | name | price |
+-------------+---------------+---------+------------------------+--------+
| 1 | 家具 | 4 | 魅惑の椅子 | 100000 |
| 1 | 家具 | 1 | ローマのテーブル | 150000 |
| 2 | 飲料 | 2 | げーたるーど2000 500ml | 370 |
| 3 | 食品 | 3 | 原始肉 | 2500 |
+-------------+---------------+---------+------------------------+--------+
4 rows in set (0.00 sec)
mysql> SELECT * FROM item_category RIGHT JOIN items USING(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 * FROM item_category RIGHT JOIN items USING(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 * FROM item_category RIGHT JOIN items USING(category_id) where 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 * FROM item_category RIGHT JOIN items USING(category_id) where price > 1000 AND 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.01 sec)
mysql> SELECT * FROM item_category RIGHT JOIN items USING(category_id) WHERE 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 * FROM item_category RIGHT JOIN items USING(category_id) WHERE name LIKE '%の%';
+-------------+---------+------------------+--------+---------------+
| category_id | item_id | name | price | category_name |
+-------------+---------+------------------+--------+---------------+
| 1 | 1 | ローマのテーブル | 150000 | 家具 |
| 1 | 4 | 魅惑の椅子 | 100000 | 家具 |
+-------------+---------+------------------+--------+---------------+
2 rows in set (0.00 sec)