이번 시간에는 "MySQL_CRUD,JOIN"에 대해 다뤄보겠습니다.
컴퓨터 소프트웨어가 갖는 기본적인 데이터 처리 기능
테이블에 데이터를 삽입한다.
INSERT INTO 테이블이름 VALUES (value1, value2, value3,...)
INSERT INTO teacher VALUES ('국어', '홍길동', '남자', 25);
테이블에 컬럼에 해당하는 데이터를 삽입한다.
INSERT INTO 테이블이름 (column1, column2, column3,...) VALUES (value1, value2, value3,...)
INSERT INTO teacher ('subject', 'name', 'sex', 'age') VALUES ('국어', '홍길동', '남자', 25);
테이블에 다수의 데이터를 삽입한다.
INSERT INTO teacher ('subject', 'name', 'sex', 'age') VALUES
('국어', '홍길동', '남자', 25),
...
('영어', '김무개', '여자', 27);
데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현
Join의 개념을 이해하기 위해서는 위와 같은 벤다이어그램을 통해 이해하는 것이 좋습니다. 위 그림을 고등학교 수학시간에 배웠던 집합의 개념으로 설명하자면 아래와 같습니다.
1. A 교 B
2. A - B + (A 교 B)
3. B - A + (A 교 B)
4. A - B
5. B - A
아래처럼 두 개의 테이블이 있다고 가정해봅시다.
위 두 테이블을 앞선 벤다이어그램의 형태로 나타내기 위한 코드는 아래와 같습니다.
1. A 교 B
- select*from teacher t inner join book b on t.subject = b.subject;
2. A - B + (A 교 B)
- select*from book b right join teacher t on t.subject = b.subject;
- select*from teacher t left join book b on t.subject = b.subject;
3. B - A + (A 교 B)
- select*from teacher t right join book b on t.subject = b.subject;
- select*from book b left join teacher t on t.subject = b.subject;
4. A - B
- select*from book b right join teacher t on t.subject =
b.subject where b.subject is null;
- select*from teacher t left join book b on t.subject =
b.subject where b.subject is null;
5. B - A
- select*from teacher t right join book b on t.subject =
b.subject where t.subject is null;
- select*from book b left join teacher t on t.subject =
b.subject where t.subject is null;
참고자료