概要
paiza.ioでmysqlやってみた。
練習問題やってみた。
練習問題
JOINを使え。
サンプルコード
CREATE TABLE `purchase` (
`date` DATE NOT NULL,
`product` VARCHAR(255) NOT NULL,
`price` INT NOT NULL,
`cs_id` VARCHAR(10) NOT NULL
);
CREATE TABLE `customer` (
`id` VARCHAR(10) PRIMARY KEY,
`name` VARCHAR(50) NOT NULL,
`age` INT NOT NULL,
`sex` VARCHAR(10) NOT NULL
);
INSERT INTO purchase (`date`, `product`, `price`, `cs_id`) VALUES
('2024-04-01', '雑誌', 100, 'c0001'),
('2024-04-01', '文庫本', 200, 'c0001'),
('2024-04-02', '雑誌', 100, 'c0002'),
('2024-04-03', 'マンガ', 300, 'c0002'),
('2024-04-03', '文庫本', 200, 'c0003');
INSERT INTO `customer` (`id`, `name`, `age`, `sex`)
VALUES
('c0001', 'Bob', 26, 'male'),
('c0002', 'Jany', 32, 'female'),
('c0003', 'Anna', 24, 'female');
SELECT * FROM purchase;
SELECT * FROM customer;
SELECT product, COUNT(price) AS count_sales FROM purchase GROUP BY product;
SELECT product, AVG(price) AS avg_sales FROM purchase GROUP BY product;
SELECT product, MAX(price) AS max_sales FROM purchase GROUP BY product;
SELECT product, MIN(price) AS min_sales FROM purchase GROUP BY product;
INSERT INTO purchase (`date`, `product`, `price`, `cs_id`)
VALUES
('2024-04-04', '参考書', 150, 'c0004');
INSERT INTO `customer` (`id`, `name`, `age`, `sex`)
VALUES
('c0005', 'Wein', 35, 'male');
SELECT date, product, name FROM purchase LEFT JOIN customer ON cs_id = id;
SELECT date, product, name FROM purchase RIGHT JOIN customer ON cs_id = id;
SELECT date, product, name FROM purchase INNER JOIN customer ON cs_id = id;
実行結果
date product price cs_id
2024-04-01 雑誌 100 c0001
2024-04-01 文庫本 200 c0001
2024-04-02 雑誌 100 c0002
2024-04-03 マンガ 300 c0002
2024-04-03 文庫本 200 c0003
id name age sex
c0001 Bob 26 male
c0002 Jany 32 female
c0003 Anna 24 female
product count_sales
雑誌 2
文庫本 2
マンガ 1
product avg_sales
雑誌 100.0000
文庫本 200.0000
マンガ 300.0000
product max_sales
雑誌 100
文庫本 200
マンガ 300
product min_sales
雑誌 100
文庫本 200
マンガ 300
date product name
2024-04-01 雑誌 Bob
2024-04-01 文庫本 Bob
2024-04-02 雑誌 Jany
2024-04-03 マンガ Jany
2024-04-03 文庫本 Anna
2024-04-04 参考書 NULL
date product name
2024-04-01 文庫本 Bob
2024-04-01 雑誌 Bob
2024-04-03 マンガ Jany
2024-04-02 雑誌 Jany
2024-04-03 文庫本 Anna
NULL NULL Wein
date product name
2024-04-01 雑誌 Bob
2024-04-01 文庫本 Bob
2024-04-02 雑誌 Jany
2024-04-03 マンガ Jany
2024-04-03 文庫本 Anna
成果物
以上。