🍃프로그래머스 백엔드 데브코스 4기 교육과정을 듣고 정리한 글입니다.🍃
INSERT
INSERT INTO 테이블 (열1, 열2, ...)
VALUES (값1, 값2, ...);
INSERT INTO employees (id, name, salary)
VALUES (1, 'John Doe', 50000);
- 테이블에 새로운 데이터 행을 삽입하는 데 사용
UPDATE
UPDATE 테이블
SET 열1 = 값1, 열2 = 값2, ...
WHERE 조건;
UPDATE employees
SET salary = 55000
WHERE id = 1;
DELETE
DELETE FROM 테이블
WHERE 조건;
DELETE FROM employees
WHERE id = 1;
- 지정된 조건에 따라 테이블에서 하나 이상의 행을 제거
JOIN
그림 출처 바로가기
- 두 개 이상의 테이블들을 공통 필드를 가지고 통합
- JOIN의 결과로 양쪽의 필드를 모두 가진 새로운 테이블 생성
INNER JOIN
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
- 두 개 이상의 테이블에서 일치하는 행만을 반환
- 양쪽 테이블의 필드가 모두 채워진 상태로 반환
LEFT(RIGHT) OUTER JOIN
SELECT orders.order_id, customers.customer_name
FROM orders
LEFT(RIGHT) OUTER JOIN customers ON orders.customer_id = customers.customer_id;
- 왼쪽(오른쪽) 기준 테이블의 모든 필드 레코드를 반환
- 반대쪽 테이블의 필드는 기준 테이블 레코드와 일치하는 경우 값을 채우고, 일치하지 않는 경우 NULL을 채워서 반환
FULL OUTER JOIN
SELECT orders.order_id, customers.customer_name
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id
UNION
SELECT orders.order_id, customers.customer_name
FROM orders
RIGHT JOIN customers ON orders.customer_id = customers.customer_id;
- MYSQL은 이를 지원하지 않기 때문에 대신 LEFT JOIN과 RIGHT JOIN을 UNION 조합
- 왼쪽 테이블과 오른쪽 테이블의 모든 행을 반환
- 양쪽 테이블의 필드는 서로 일치하는 레코드는 그 값을 채우고, 일치하지 않는 경우 NULL을 채워서 반환
SELF JOIN
SELECT e.employee_name, m.employee_name AS manager_name
FROM employees e
JOIN employees m ON e.manager_id = m.employee_id;
CROSS JOIN
SELECT *
FROM products
CROSS JOIN categories;
- 왼쪽 테이블과 오른쪽 테이블의 모든 레코드들의 조합을 반환