
MySQL Workbench
- MySQL 사이트에서 제공해주는 무료 클라이언트 SQL 에디터
- 운영체제에 맞게 Download

- Download 후 설치

📍 DDL : Data Define Language
🔎 CREATE
CREATE TABLE 테이블명 ( 컬럼명, 자료형, 조건);
🔎 DROP
DROP TABLE 테이블명
DROP TABLE IF EXISTS 테이블명 => 테이블이 존재한다면
- 테이블 자체를 삭제 => 자동 COMMIT으로 ROLLBACK 불가능
🔎 TRUNCATE
TRUNCATE TABLE 테이블명
- 테이블의 데이터를 한번에 제거 => CREATE TABLE 직후 상태
- 자동 COMMIT 되는 명령어로 이미 지운 데이터를 되돌릴 수 없음
- 트랜잭션 안에서 사용되도 다 날려버림
📍 DML : Data Manipulation Language
🔎 SELECT
SELECT 원하는 컬럼 FROM 테이블명 WHERE 조건
- 테이블에서 레코드를 읽어오는데사용
- WHERE을 사용해 조건을 만족하는 레코드
🔎 ORDER BY : NULL값
- 오름차순일 경우 처음에
- 내림차순일 경우 마지막에
🔎 INSERT
INSERT INTO 테이블명(컬럼명1, 컬럼명2, ...) VALUES(컬럼1값,컬럼2값,...);
🔎 UPDATE
UPDATE 테이블명 SET 수정결과 WHERE 수정될조건
- 조건을 기반으로 테이블에서 특정 레코드들의 필드값 수정 가능
🔎 DELETE
DELETE FROM 테블명;
- 모든 레코드를 삭제하지만 테이블은 남아있음 => ROLLBACK 가능
DELETE FROM
- DELETE FROM 테이블명 WHERE 조건
- 조건에 맞으면 삭제
🔎 JOIN
FROM A JOIN B ON A. = B. (어떻게 매칭할 것인지)
- 두 개 이상의 테이블들을 공통 필드를 가지고 통합
- 스타 스키마로 구성된 테이블들로 분산되어 있던 정보를 통합하는데 사용
- JOIN의 결과로 양쪽의 필드를 모두 가진 새로운 테이블이 만들어짐
🔎 JOIN 종류
(1) INNER JOIN : 교집합 => DEFAULT
(2) FULL JOIN : A + B => MYSQL에는 X
(3) CROSS JOIN : 모든 조합에 대해 통합
(4) A LEFT JOIN B : A + 교집합
(5) A RIGHT JOIN B: B + 교집합
(6) SELF JOIN : 같은 테이블을 같은 테이블끼리 조인
- 같은 테이블을 사용하지만 ALIAS는 다르게 설정해줘야함
💡 JOIN시 고려할점
- 중복 레코드가 없고 Primary Key의 uiqueness가 보장됨을 체크
- 조인하는 테이블들간의 관계를 면확하게 정의
- One to One
- 한쪽이 부분집합이 되는 ex) session & session_channel
- One to Many
- 중복이 큰 문제가 된다. ex) order vs order_items
- Many to One
- 방향만 바꾸면 One to many와 사실상 동일
- Many to Many
- one to one이나 one to many 로 변경하는 것이 안전
