본문 바로가기

SQL

SQL 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] ...
}

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