mysql INNER, LEFT, RIGHT JOIN / INSERT, UNION 테이블 합치기와 만들기, 복사

LikeChoonsik's·2022년 12월 27일
0

Mysql

목록 보기
12/21
post-thumbnail

INNER JOIN

테이블을 합쳐서 조건을 줄 때

SELECT *
FROM 테이블1, 테이블2, 테이블3
WHERE 조건1 AND 조건2 ...

이런식으로 사용해도 되지만 inner join을 사용하면 가독성이 좋아짐

SELECT *
FROM 테이블1
INNER JOIN 테이블2 ON 조건1
INNER JOIN 테이블3 ON 조건2

ON

inner join 사용시 조건문은 뒤에 on을 붙여 사용

LEFT, RIGHT JOIN

테이블간에 접점이 없는 행들을 출력하고 싶을 때 사용

SELECT *
FROM program
LEFT JOIN teacher
ON program.강사id = teacher.id

위와 같이 사용하면 왼쪽, 즉 program의 모든 행은 가져오고 right에 있는 teacher에 해당 값이 없을 경우 null 표시
이러한 내용을 이용해서

WHERE 컬럼명 IS NULL

을 후가하여 사용하지 않는 값을 찾아낼 수 있음

INSERT 데이터를 집어넣으려면

INSERT INTO 테이블명 (컬럼명1, 컬럼명2 ...) VALUES (값1, 값2 ...)

위 처럼 사용시 테이블에 행추가 해주면서 데이터도 삽입해줌(없는 값은 null로 표시됨)

INSERT INTO product VALUES (4, '참외', 2000), (5, '배추', 2500);

여러행을 넣으려면 위와 같이 사용

테이블안 데이터 복사

INSERT INTO product (id, 상품명, 가격)
SELECT id, 상품명, 가격 FROM product2

위와 같이 사용

테이블 복사

CREATE TABLE 새로운테이블명 SELECT * FROM 기존테이블명

테이블을 아예 새로 생성해줌

CREATE TEMPORARY TABLE 새로운테이블명 SELECT * FROM 기존테이블명

위는 임시 테이블 생성, 즉 세션이 끝나면 자동으로 삭제됨

UNION 테이블 합쳐서 한번에 보기

SELECT FROM insert_test.stock
UNION
SELECT
FROM insert_test.stock2;

이러면 하나의 테이블로 합쳐서 출력해줌

  • union은 join과 다르게 테이블을 위 아래로 합쳐줌 그래서 컬럼 갯수가 맞아야하고 서로 동일한 데이터타입을 가진 컬럼을 출력하는게 좋음
  • union은 중복을 자동으로 제거해줌
profile
춘식이는 너무 귀엽습니다.

0개의 댓글