오늘부터 조금씩 복잡한 내용을 배우기 시작했다. 오늘은 JOIN에 대해서 배웠는데, 처음에는 잘 이해가 안 갔지만 직접 코드를 작성하면서 사용해보니까 어느 상황에 어떻게 사용하는지 감을 잡을 수 있었다.
SET @age_limit = 24;
SELECT name, age FROM student WHERE age < @age_limit;
SELECT @gender_type := "남" COLLATE utf8mb4_unicode_ci;
SELECT name, gender FROM student WHERE gender = @gender_type;
변수로 문자열 사용 시 COLLATE 지정 필요
SELECT USER();
SELECT * FROM mysql.user;
SHOW DATABASES;
# 현재 계정
SHOW GRANTS;
# 특정 계정
SHOW GRANTS FOR "root"@"localhost";
CREATE USER "유저이름"@"localhost" IDENTIFIED BY "비밀번호";
GRANT DELETE ON 데이터베이스.테이블 TO "유저이름"@"localhost";
REVOKE DELETE ON 데이터베이스.테이블 FROM "유저이름"@"localhost";
DROP USER "유저이름"@"localhost";
SELECT c.name, o.order_date, c.customer_id
FROM customers c
INNER JOIN orders o
ON c.customer_id = o.customer_id;
SELECT *
FROM customers c
LEFT JOIN orders o
ON c.customer_id = o.customer_id;
SELECT *
FROM customers c
RIGHT JOIN orders o
ON c.customer_id = o.customer_id;
SELECT name, email FROM customers
UNION
SELECT order_date, order_status FROM orders;
SELECT * FROM customers c
LEFT JOIN orders o ON c.customer_id = o.customer_id
UNION
SELECT * FROM customers c
RIGHT JOIN orders o ON c.customer_id = o.customer_id;
SELECT product_name, color
FROM products
CROSS JOIN colors;
SELECT e.name, m.name
FROM employees e
LEFT JOIN employees m
ON e.manager_id = m.employee_id;
SELECT c.name, o.order_id, p.product_id, p.name, oi.quantity, p.price
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id;
SQL에 대해 공부했던 한 주가 끝났다. 아직까지는 크게 어려운 내용은 없어서 몇 번 복습하니까 금방 익힐 수 있었다. 다음 주에는 더 복잡한 내용을 다룰 것 같으니까 주말 동안 복습을 탄탄하게 해둬야겠다.