SQL

SQL 기본 문법 정리(2) (ORDER BY, LIMIT, 문자열 연산, 날짜 연산, CASE문)

Bryan Lee 2022. 4. 13. 15:37

1) ORDER BY

- ORDER BY구를 사용하면 정해진 순서로 결과값을 얻을 수 있습니다. 

SELECT 열명 FROM 테이블명 ORDER BY 열명

 

1-1) ORDER BY DESC로 내림차순으로 정렬하기

- 열명 뒤에 DESC를 붙이면 내림차순으로 정렬할 수 있습니다. 

SELECT 열명 FROM 테이블명 ORDER BY 열명 DESC

 

1-2) 복수열로 정렬 지정

- ORDER BY 구에는 복수로 열을 지정할 수 있습니다.

SELECT * FROM sample32 ORDER BY a,b;
SELECT * FROM sample32 ORDER BY a ASC, b DESC;

 

2) LIMIT 구

- LIMIT 구는 SELECT 명령의 마지막에 지정하는 것으로 WHERE 구나 ORDER BY 구의 뒤에 지정합니다. 

SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 LIMIT 행수

 

2-1) 오프셋 지정

- OFFSET에 의한 시작 위치 지정은 LIMIT 뒤에 기술합니다. 

  LIMIT 구의 OFFSET은 생략 가능하며 기본값은 0입니다. 

  간단하게 정리하면 '시작할 행-1'로 기억해두면 편리합니다.  

SELECT 열명 FROM 테이블명 LIMIT 행수 OFFSET 위치

 

 

3) 열의 별명

- SELECT 결과에서 price*quantity와 같이 열을 명명한다면,

  해당 열에 별명을 붙여 재지정할 수 있습니다. 

SELECT *, price*quantity FROM sample34;

// 별명 사용
SELECT *, price*quantity AS amount FROM sample34;

 

4) WHERE 구에서 연산하기 

- WHERE 구에서 계산, 검색을 할 수 있습니다. 

SELECT *, price*quantity AS amount FROM sample34 WHERE price*quantity >= 2000;

 

5) ROUND 함수

- ROUND 함수를 사용해서 반올림 할 수 있습니다. 

SELECT amount, ROUND(amount) FROM sample341;

// 소수점 둘째 자리를 반올림
SELECT amount, ROUND(amount, 1) FROM sample341;

 

 

6) 문자열 연산

- CONCAT 함수를 사용해 문자열 결합을 할 수 있습니다.

SELECT CONCAT(quantity, unit) FROM sample25;

 

6-1) SUBSTRING 함수

- SUBSTRING 함수는 문자열의 일부분을 계산해서 반환해주는 함수입니다.   

SUBSTRING('20140124001', 1, 4) -> '2014'
SUBSTRING('20140125001', 5, 2) -> '01'

6-2) TRIM 함수

- TRIM 함수는 문자열의 앞뒤로 여분의 스페이스가 있을 경우 이를 제거해주는 함수입니다.

TRIM('ABC  ') -> 'ABC'

 

7) 날짜 연산

- 표준 SQL에서는 CURRENT_TIMESTAMP라는 함수를 기준으로 시간을 표시합니다.

SELECT CURRENT_TIMESTAMP;

 

7-1) 날짜의 덧셈과 뺄셈 

- 날짜 시간형 데이터는 기간형 수치데이터와 덧셈 및 뺄셈을 할 수 있습니다. 

SELECT CURRENT_DATE + INTERVAL 1 DAY;

 

8) CASE 문으로 데이터 변환하기

- CASE 문은 다음과 같이 작성할 수 있습니다.

CASE WHEN 조건식1 THEN 식1
    [WHEN 조건식2 THEN 식2 ...]
    [ELSE 식3]
END

8-1) 검색 CASE

- CASE문은 '검색 CASE'와 '단순 CASE'의 두 개 구문으로 나눌 수 있습니다.

  우선, 검색 CASE문은 다음과 같이 작성할 수 있습니다. 

SELECT a AS "코드",
CASE 
  WHEN a=1 THEN '남자'
  WHEN a=2 THEN '여자'
  ELSE '미지정'
END AS "성별" FROM sample37;

 

8-2) 단순 CASE

- 단순 CASE문은 다음과 같이 작성할 수 있습니다. 

SELECT a AS "코드",
CASE a
  WHEN 1 THEN '남자'
  WHEN 2 THEN '여자'
  ELSE '미지정'
END AS "성별" FROM sample37;

 

레퍼런스

SQL 첫걸음