SQL/MySQL

MySQL 쿼리 문법 순서, SELECT, EXPR, FROM, WHERE, ORDER BY, LIMIT 간단 설명 예시

진리뷰 2023. 8. 20. 09:00
반응형

 

 

MySQL-SELECT-EXPR-FROM-WHERE-ORDERBY-LIMIT-설명-예시-썸네일
데이터 선택 SELECT 설명 예시

 

이 글은

  • 쿼리 문법 순서
  • SELECT와 SELECT EXPR
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT

에 대한 설명, 문법, 예시를 간단하게 담고 있습니다.

 

 

MySQL 쿼리 문법 순서

 

MySQL의 쿼리는 다음과 같은 순서를 규칙으로 삼습니다.

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT

 


 

MySQL SELECT

  • SELECT문은 한 개 이상의 테이블에서 한 개 이상의 데이터를 선택할 수 있도록 합니다.
  • SELECT문은 모든 쿼리 입력에 포함됩니다.

 

SELECT EXPR

  • 표현하려는 column을 나타냅니다. 이 때문에 'FROM 테이블이름'은 생략 가능합니다.
  • EXPR은 expression으로, '표현식'을 의미합니다.
SELECT "값";

 

MySQL-SELECT-EXPR
SELECT EXPR

 


 

MySQL FROM

  • FROM은 데이터 값을 불러 올 테이블을 선택합니다.

*관련 글 추천 MySQL 데이터 추가 INSERT, 데이터 선택 SELECT 설명 및 예시

SELECT column1, column2, column3,..., column N
FROM 테이블이름;

 

FROM 예시

SELECT id, title, created   --id, title, created 컬럼을 선택해서 보여줘.
FROM toipc;  --토픽 테이블에서

 

topic 테이블에서 3개의 column인 id, title, created만 보여줍니다.

MySQL-SELECT-FROM-예시
SELECT FROM

 


 

MySQL WHERE

  • 특정 테이블에서 조건식에 해당하는 데이터만 필터링해 줍니다.
  • 필터링된 데이터들과 SELECT문에서 선택한 column이 일치하는 값만 반환합니다.

*WHERE 조건식은 WHERE column1='검색 조건';처럼 입력합니다.

SELECT column1, column2, column3,..., column N
FROM 테이블이름
WHERE 조건식;

 

WHERE 예시

SELECT id, title, created, author  --id, title, created, author 컬럼 선택
FROM topic  --topic 테이블에서
WHERE author = 'me';  --author의 값이 me인 데이터만 선택

 

1. topic 테이블에서 author = me인 값만 필터링합니다.

2. 1에서 필터링한 값과 id, title, created, author 컬럼이 일치하는 값만 반환합니다.

MySQL-SELECT-WHERE-예시
SELECT WHERE

 


 

MySQL ORDER BY

  • 선택한 column을 기준으로, row를 정렬합니다.
  • ORDER BY는 쿼리문의 마지막 줄에 위치합니다.
  • ASC: 오름차순, DESC: 내림차순
  • ASC(오름차순)은 기본값(default)이므로, 생략 가능합니다.

 

ORDER BY 문법은 컬럼명과 순서 입력 방식이 있습니다.

ORDER BY 컬럼명

SELECT column1, column2, column3,..., column N
FROM 테이블이름
ORDER BY column1 ASC | DESC;

 

ORDER BY 순서

만약 세 개의 컬럼(a, b, c)을 선택한다면, SELECT a, b, c로 입력할 것입니다.

이때 SELECT문에서 컬럼들의 순서는 a=1, b=2, c=3입니다.

이에 따라, 컬럼 a를 정렬 기준으로 삼는다면 다음처럼 입력할 수 있습니다.

SELECT a, b, c

FROM english

ORDER BY 1;

SELECT column1, column2, column3,..., column N
FROM 테이블이름
ORDER BY N ASC | DESC;

 

ORDER BY 예시

SELECT id, title, created, author  --id, title, created, author 컬럼만 선택
FROM topic  --topic 테이블에서
WHERE author = 'me'  -- author = me인 값만 선택
ORDER BY id desc;  --id(= column1)를 정렬 기준으로 선택

 

1. topic 테이블에서 author = me인 값만 필터링합니다.

2. 필터링한 값과 id, title, created, author 컬럼이 일치하는 값만 선택합니다.

3. id 컬럼을 기준으로, 2에 해당되는 값들을 내림차순 정렬합니다.

MySQL-SELECT-ORDER-BY-예시
ORDER BY DESC

 


 

MySQL LIMIT

  • 표시할 행의 개수를 제한합니다.
  • 제한값은 0, 양의 정수(+)만 가능합니다.
  • ORDER BY의 영향(오름차순, 내림차순)을 받을 수 있습니다.
SELECT column1, column2, column3,..., column4
FROM 테이블이름
LIMIT 숫자;

 

LIMIT 예시

SELECT id, title, created, author
FROM topic
WHERE author = 'me'
ORDER BY id asc  --id 컬럼 기준 오름차순 정렬
LIMIT 1;  --1개의 로우만 반환

 

LIMIT이 오름차순 정렬의 영향을 받으면 다음과 같습니다.

id 기준 오름차순 정렬이므로, id에서 가장 작은 숫자 '1'을 첫 번째 행으로 정렬합니다.

이때 제한값 1은 첫 번째 행(로우)만 반환하라는 의미입니다.

따라서 하나의 행만 보입니다.

MySQL-SELECT-ASC-LIMIT-예시
ASC LIMIT

 

 

반대로 내림차순(order by column1 desc) 정렬의 영향을 받으면,

id에서 가장 큰 숫자인 '5'를 첫 번째 행으로 정렬합니다.

따라서 id=5인 행만 보입니다.

MySQL-SELECT-DESC-LIMIT-예시
DESC LIMIT

 

반응형
top