SQL 기초(1)

찌니·2021년 3월 8일
0

SQLBolt 참고

1. SELECT/FROM

  • SELECT 열이름1,열이름2 FROM 테이블이름;
    : select for specific columns of data from a table

ex) SELECT * FROM MOVIES 영화테이블에서 전체 열 선택

2. WHERE

  • SELECT * FROM movies
    WHERE 조건1 AND/OR 조건2;
    : In order to filter certain results from being returned, we need to use a WHERE clause in the query.

ex) SELECT * FROM MOVIES 영화테이블 전체 열 선택
WHERE Year BETWEEN 2000 and 2010 AND Titles LIKE "%Toy%"
2000~2010년 개봉과 Toy 글자가 들어가는 영화(행) 선택

3. DISTINCT

  • SELECT DISTINCT 열1,열2 FROM 테이블이름
    WHERE condition(s);
    선택한 열의 중복제거

4. ORDER BY

  • SELECT 열1,열2 FROM mytable
    WHERE condition(s)
    ORDER BY column ASC/DESC;
    정렬 (DESC: 내림차순)

5. LIMIT/OFFSET

  • SELECT column, another_column, …
    FROM mytable
    WHERE condition(s)
    ORDER BY column ASC/DESC
    LIMIT num_limit OFFSET num_offset;
    제한된 행이있는 쿼리 선택
    LIMIT :반환 할 행 수를 줄임
    OFFSET(선택): 시작할 행 숫자 지정

ex) SELECT Title FROM Movies
ORDER BY Title
LIMIT 5 OFFSET 5 영화제목 알파벳 순서 6번째부터 5개

6. INNER JOIN

  • SELECT column, another_table_column, …
    FROM mytable
    INNER JOIN another_table
    ->ON mytable.id = another_table.id On 양쪽 테이블의 id가 일치하는 부분 Join

데이터를 얼마나 분석할 것인지에 따라 때론 Inner Join으로 충분하지 않을 수 있다. 결과 테이블에는 두 테이블 모두에 속하는 데이터만 포함되기 때문이다.
두 테이블에 비대칭 데이터(다른 값의 데이터)가 있을 경우 필요한 데이터가 결과에서 제외되지 않도록 left JOIN, Right JOIN 또는 FULL JOIN을 사용해야 한다.

7. OUTER JOIN(LEFT/RIGHT/FULL)

  • SELECT column, another_column, …
    FROM mytable
    INNER/LEFT/RIGHT/FULL JOIN another_table
    ->ON mytable.id = another_table.matching_id

A와 B 데이터가 있을 경우 LEFT JOIN은 모든 A의 ROW를 포함하고, RIGHT JOIN은 모든 B의 ROW를 포함한다. FULL JOIN은 A와 B의 모든 열을 포함한다.
JOIN을 사용할 때 결과 및 제약 조건에서 NULL을 처리하는 추가 논리를 작성해야 할 수 있다.

8. WHERE IS/IS NOT NULL

  • SELECT column, another_column, …
    FROM mytable
    WHERE column IS/IS NOT NULL
    AND/OR another_condition
    AND/OR …;

SQL database NULL
데이터베이스에서의 NULL의 대안은 0이나 -와 같은 적절한 기본값을 사용하는 것이지만, 이것은 자료를 왜곡할 수도 있다. 때론 NULL을 피할 수 없는 경우(비대칭 자료)도 있다. 이럴땐 WHERE IS/IS NOT NULL로 컬럼을 확인해볼 수 있다.

profile
https://gggggeun.tistory.com/

0개의 댓글