ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DB][SQL][DML] JOIN, ALIAS, VIEW, SELECT INTO, INSERT INTO, CASE WHEN ~
    Backend/DB 2023. 11. 7. 00:19

    6강 SQL - DML (4)

    JOIN

    2 개의 서로 다른 Table들을 공통 컬럼을 기준으로 합한 후 select 질의를 수행하는데 사용.

    select {column_name} from {table1} JOIN {table2} ON {table1.column}={table2.column} where {conditions};

    이 때 두 Table 간 동일한 컬럼명을 구분하기 위해 table.column 의 형식을 사용한다.

    Inner Join: 기본 수행되는 JOIN. JOIN의 기준이 되는 column 값이 NULL일 때 질의 결과에 포함하지 않는다. = 사용된 두 Table에 모두 NULL을 허용하지 않는다.

    left/right Join: Outer Join 이라고도 하며 left 는 JOIN 연산 기준 왼쪽의 Table에만 NULL 값을 허용, right는 오른쪽 Table에만 NULL을 허용한다.

    Full Join: 사용된 모든 Table에 NULL 값을 허용.(=합집합) MySQL에서는 지원되지 않는다. 대신 Union 이라는 기능으로 대체할 수 있음.

     

    ALIAS

    select 결과에 출력 될 column을 임시로 다르게 표현한다. ex) 영문 coulumn명을 한글로 바꾸어 출력할 수 있다. 실제 Table 상의 Column 명이 바뀌는 것은 아님.

    select {column} AS {new_name} from {table}; → column 명이 new_name 으로 바뀌어 출력됨.

     

    VIEW

    select 결과를 임시의 table로 생성하여 저장한 것.

    create view {view_name} as selecrt ~; → show tables; 로 조회하면 view_name 이라는 이름의 table이 추가되어 있음.

    사용이 완료된 view는 반드시 삭제해주어야 함.

    drop view {view_name};

     

    참고 자료:

    https://www.youtube.com/watch?v=mqp_-KWiC2M&list=PL9mhQYIlKEhfSbSbHnUNltrTbDzTRvMcA&index=6

     

     

    7강 SQL - DML (5)

    SELECT INTO

    select 결과를 새로운 Table로 만들어 저장. View와 동일한 효과

    MySQL에서는 SELECT INTO 대신 CREATE TABLE {table_name} select ~ ; 와 같이 사용함.

     

    INSERT INTO

    기존의 TABLE에 select 결과를 삽입하는 질의.

    INSERT INTO {table_name} select ~ ;

     

    CASE WHEN ~ THEN ~ ELSE ~ END,

    select 에서 출력할 column에 조건 별 분기를 수행

    select CASE WHEN {condition1} THEN ~ ELSE ~ END, {column_name} from {table_name};

    결과의 column에는 CASE ~ END 까지가 출력되므로 단순한 표를 위해선 CASE 문을 AS로 바꾸는 것도 한 방법.

     

    참고 자료:

    https://www.youtube.com/watch?v=IZeks3Ga2Mg&list=PL9mhQYIlKEhfSbSbHnUNltrTbDzTRvMcA&index=7

     

     

    'Backend > DB' 카테고리의 다른 글

    [MySQL] Partition 과 Unique Key  (0) 2023.12.14
    [MariaDB] 원격 접속 허용하기  (1) 2023.11.28
    트랜잭션  (0) 2023.09.30

    댓글

Designed by Tistory.