정보통계학과/SQL

3장 정렬과 연산

루치아 (Lucia) 2020. 2. 2. 16:56
반응형

9강 - 정렬 ORDER BY

SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 (ASC|DESC)

1) ORDER BY구를 지정 시 검색결과의 행 순서를 바꿀 수 있음.

2) ORDER BY구는 WHERE구 뒤에 지정.

3) ORDER BY구는 기본적으로 오름차순(ASC) 순으로 정렬되며, 내림차순을 하기 위해선 열명 뒤에 DESC를 붙여서 지정

4) 대소관계

4-1) 수치형 (1<2<10<100)

4-2) 날짜시간형 (1999년<2013년<2014년)

4-3) 문자열형 (ㄱ<ㄴ<ㄷ..., 1<10...<2<20....<3..)

10강 복수의 열을 지정해 정렬하기

SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명1 [ASC|DESC], 열명2 [ASC|DESC]

1) ORDER BY a DESC, b -> a열 내림차순, b열 오름차순? 이건 데이터베이스 제품마다 다르기 때문에 정렬방법을 생략하지 말고 지정하는 것이 좋다. ORDER BY a DESC, b ASC

2) NULL 값의 경우, 표준 SQL에 지정되어 있지 않아 데이터베이스마다 다르다. MYSQL의 경우 NULL값을 가장 작은 값으로 취급해 ASC의 경우 가장 먼저 표시됨.

11강 결과 행 제한하기 - LIMIT

SELECT 열명 FROM 테이블명 LIMIT 행수 [OFFSET 시작행]

1) LIMIT는 표준 SQL 아니며, MYSQL과 PostgreSQL에서 사용. (SQL Server-> TOP / Oracle -> WHERE 구에 ROWNUM 지정)

2) LIMIT구는 표시할 건(행) 수를 제한을 두는 것으로 WHERE구로 검색 후, ORDER BY로 정렬된 뒤 최종적으로 처리됨

3) OFFSET 지정을 통해 페이지 나누기 기능(LIMIT)를 통해 구현 후, 그 다음페이지 결과값을 표시하기 위해 지정할 수 있다.

4) OFFSET 시작위치 시정은 '시작할 행 -1' 으로 기억해두면 편리하다. 예를 들어 첫번째 행부터 5건을 취득한다면 '1-1'로 위치는 0이 되면 OFFSET 0으로 지정하면 된다.

12강 수치연산

1) SELECT *, price * quantity from as amount sample34;

와 같이 열을 이용하여 연산하여 보여줄 수 있고, 별명(as)을 붙일 수 있다. 

2) SELECT와 같은 예약어를 별명으로 하기 위해서 "(쌍따옴표)를 이용할 수 있다.

3) where 에서는 별명(as)을 사용할 수 없으나, order by 에서는 사용할 수 있다.

13강 문자열 연산

1) 문자열 결합 - concat

2) 문자열 일부분을 계산해서 반환 - substring

3) 문자열 앞뒤로 여분의 스페이스가 있을 때 이를 제거 - trim

4) 문자열의 길이를 계산 - character_lenghth

14강 날짜연산

1) 현재 시간과 날짜 - current_timestamp

2) 날짜 시간형 데이터는 기간형 수치데이터와 덧셈 및 뺄셈을 할 수 있다 

current_date (시스템 날짜의 날짜 확인)+ interval 1 day

3) 날짜형 간의 뺄셈 - DATEDIFF('2014-02-28','2014-01-01')

15강 CASE문으로 데이터 변환하기

## CASE WHEN 조건식1 THEN 식1

[WHEN 조건식2 THEN 식2]

[ELSE 식3]

END [검색 CASE]

## CASE 식1

WHEN 식2 THEN 식3

[WHEN 식4 THEN 식5]

[ELSE 식6]

END [단순 CASE]

1) 임의의 조건에 따라 독자적으로 변환 처리를 지정해 데이터를 변환

2) WHEN 절에는 참과 거짓을 반환하는 조건식을 기술. 해당조건을 만족하여 참이 되는 경우엔 THEN 절에 기술한 식이 처리. 그 어떤 조건식도 만족하지 못한 경우, ELSE 절에 기술한 식이 채택 

3) NULL 값을 변환하는 경우엔 COALSESCE 함수를 사용할 수 있다. COALESCE 함수는 NULL이 아닌 값에 대해선 가장 먼저 지정된 인수의 값을 반환. COALESCE(a,0)... 과 같은 형태로 사용

4) 숫자로 이루어진 코드를 알아보기 더 쉽게 문자열로 변환하고 싶은 경우에도 CASE문 사용. 

1-> 남, 2-> 여..

5) 데이터가 NULL 인 경우의 조건문 지정은 검색 CASE 문 사용

 

 

 

 

 

반응형