이 글은
- 쿼리 문법 순서
- 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 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 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 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 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은 첫 번째 행(로우)만 반환하라는 의미입니다.
따라서 하나의 행만 보입니다.
반대로 내림차순(order by column1 desc) 정렬의 영향을 받으면,
id에서 가장 큰 숫자인 '5'를 첫 번째 행으로 정렬합니다.
따라서 id=5인 행만 보입니다.
'SQL > MySQL' 카테고리의 다른 글
MySQL 데이터 삭제, 특정 행 삭제 DELETE 기초 설명 예시 (0) | 2023.08.22 |
---|---|
MySQL 데이터 수정 UPDATE 기초 설명 예시 (0) | 2023.08.21 |
MySQL 데이터 추가 INSERT, 데이터 선택 SELECT 설명 및 예시 (0) | 2023.08.18 |
MySQL 테이블 생성 CREATE, column definition 설명 예시 (0) | 2023.08.16 |
MySQL 데이터베이스 보기(SHOW), 생성(CREATE), 삭제(DROP) 예시 에러 정리 (0) | 2023.08.13 |