FE BE 개발 메모장/SQL & DataBase
SQL Select문
PixelStudio
2021. 2. 24. 22:59
SQL SELECT 문은 하나 또는 그 이상의 테이블에서 데이터를 가져오는 데이터 조작 언어 중 하나이다. DQL문
SELECT문 공식문서 사양
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr [, select_expr] ...
[into_option]
[FROM table_references
[PARTITION partition_list]]
[WHERE where_condition]
[GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
[HAVING where_condition]
[WINDOW window_name AS (window_spec)
[, window_name AS (window_spec)] ...]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[into_option]
[FOR {UPDATE | SHARE}
[OF tbl_name [, tbl_name] ...]
[NOWAIT | SKIP LOCKED]
| LOCK IN SHARE MODE]
[into_option]
into_option: {
INTO OUTFILE 'file_name'
[CHARACTER SET charset_name]
export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name] ...
}
SELECT 기본속성
SELECT 특성 as 바꿀_특성_이름
FROM 테이블_이름
1. 테이블의 모든 데이터를 출력
SELECT *
FROM TABLE_A
2. 특정 컬럼만을 출력
SELECT TABLE_A.user
FROM TABLE_A
SELECT user
FROM TABLE_A
3. WHERE 특정 조건에 만족하는 데이터 출력
SELECT *
FROM TABLE_A
WHERE COLUMN_NAME="NAME" AND, OR, NOT, <, > ....
id가 10 이상 데이터를 출력
SELECT *
FROM TABLE_A
WHERE id >= 10;
가입된 UserID 넘버가 100부터 500사이의 데이터를 출력
SELECT *
FROM TABLE_A
WHERE UserID BETWEEN 100 AND 500
이름이 M으로 시작하는 데이터를 출력
SELECT *
FROM TABLE_A
WHERE Name LIKE "M%";
지역이 NewYork로 끝나는 데이터를 출력
SELECT *
FROM TABLE_A
WHERE Contury LIKE "%NewYork"
이름에 da가 들어가는 데이터를 출력
SELECT *
FROM TABLE_A
WHERE name LIKE "%da%"
성이 김 또는 박이 포함되는 데이터를 출력
SELECT *
FROM TABLE_A
WHERE lastName LIKE "%Kim%" OR LastName LIKE "%Park%"
JOIN 테이블 끼리 결합
같은 스키마(DB)에 있는 테이블들을 결합하여 출력 할 수 있다. 테이블을 결합하기 위해서는 공통의 의미를 갖는 컬럼을 결합조건으로 지정해줘야한다.
INNER JOIN
양쪽 테이블을 참고하여 테이블을 결합한다. 결과값이 존재하면 INNER 값만 반환한다. 결과값이 없으면 NULL을 반환하고 INNER은 반환하지 않는다..
SELECT *
FROM TABLE_A
INNER JOIN TABLE_B ON TABLE_A.Column_Name=TABLE_B.Column_Name
JOIN TABLE_B ON TABLE_A.Column_Name=TABLE_B.Column_Name
RIGHT JOIN TABLE_B ON TABLE_A.Column_Name=TABLE_B.Column_Name
RIGHT JOIN TABLE_B ON TABLE_A.Column_Name=TABLE_B.Column_Name