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] ...
}
MySQL 공식홈페이지에서 가져온 Syntax
아직 모든 SELECT를 알지는 못하지만 대괄호[ ] 로 적혀있는건
필요하지 않으면 적지 않아도 되는 문법이라고 한다.
또한 문법이다보니
만약 내가 [HIGH_PRIORITY] , [STRAIGHT_JOIN] 를 문법에 적는다면
이 두개의 절(Caluse)은 순서적으로 적어야한다.
SELECT [STRAIGHT_JOIN] [HIGH_PRIORITY]~~blablabla..
라는 문법은 안된다는 것.
배운것은
SELECT * FROM tablename;
= 선택한걸 보여준다, tablename으로 부터
SELECT column, column FROM tablename;
= tablename에서 선택한 열의 정보들을 가져온다
SELECT * FROM tablename WHERE ABCDEFcolumn='value'
= tablename으로부터 ABCDEFcolumn열에서 value라는 값을 '찾은 후(WHERE)' 데이터를 보여준다.
SELECT column1, column2, FROM tablename WHERE ABCDEFcolumn='value'
=tablename으로부터 ABCDEFcolumn열에서 value라는 값을 '찾은 후(WHERE)' 데이터를 보여준다.
이때 보여지는 열들은 기입해둔 열의 정보를 포함해서 가져온다.
만약, SELECT 칼럼1,칼럼2에다가 ABCDEFcolumn 라는 열을 기입하지 않고 ,
WHERE ABCDEFcolumn='value'를 적었다 하더라도, ABCDEFcolumn의 정보는 표기되지 않는다
내가 찾는 value에 같이 나열된 행의 정보를 가져오는것이기 때문.
SELECT * FROM tablename ORDER BY column;
= column이란 것을 기준해서 순서대로 보여준다.
칼럼이 숫자면 1 2 3 4...로 시작하고, 영어이면 abcde..부터 시작한다.
한글은 모르겠다..
SELECT * FROM tablename ORDER BY column DESC;
=똑같은데 역순으로 보여준다.
SELECT * FROM tablename ORDER BY column DESC LIMIT 3;
=똑같은데 역순으로 보여주고 LIMIT에 기입한 값만큼 자료를 보여준다
3 기입했으니 3개만 보여준다.
HTML에서 *는 "모든" 을 가리키는데
SQL에서도 *는 모든을 가리키는 것 같다.
SQL은 문법의 절 위치가 중요하다.
#SQL #SELECT
'SQL' 카테고리의 다른 글
SQL - 테이블 까지 (0) | 2021.04.05 |
---|---|
SQL - DELETE (0) | 2021.04.05 |
SQL - UPDATE (0) | 2021.04.05 |
SQL의 시작 - CRUD (0) | 2021.04.05 |