1. Syntax
SELECT [DISTINCT] { * | FROM 테이블 이름(들) [AS 테이블이름 별칭] [WHERE 검색조건(들)] [GROUP BY 속성이름] [HAVING 검색조건(들)] [ORDER BY 속성이름(ASC|DESC)] |
– ALL : 튜플의 중복을 허용하도록 지정
– DISTINCT : 튜플의 중복을 허용하지 않도록 지정
– 중복을 제거한 유일 집합을 추출
– 컬럼 2개를 조회 ; 2개 컬럼 조합 기준 중복된 행이 제거된 집합이 출력된다.
– AS 키워드를 이용해 결과 테이블에서 속성의 이름을 바꾸어 출력 가능하다.
– AS 키워드 생략 가능하다,
– 앨리어스를 사용해서 테이블 및 컬럼(표현식)에 대한 이름(별칭)을 지정할 수 있다.
– 앨리어스에 공백이 있을 경우 ” + “로 감싼다.
– 앨리어스명으로 한글로 줄수도 있다.
– 앨리어스 사용 시 “AS”는 생략 가능하다.
– 산술식을 이용해 검색
– 산술식 : 속성의 이름과 +, -, *, / 등의 산술 연산자와 상수로 구성
– 비교 연산자
=
다르다
>
>=
– 논리 연산자
AND
OR
NOT
– WHERE절
– 조건을 주어 특정 조건에 부합하는 결과집합(행)만을 추출한다. “>”연산자
– BETWEEN 연산자 : 값에 범위에 대한 조건에 부합하는 결과 집합(행)을 리턴한다.
– NOT BETWEEN 연산자
– IN 연산자 : 특정 목록과 일치하는 값이 있으면 결과 집합으로 리턴한다. IN 연산자와 OR 연산은 결과 집합이 동일하다.
– NOT IN 연산자 : “” 연산자 + AND조건
– ORDER BY절
– 1개 컬럼 – ASC (오름차순) 정렬
– 2개 컬럼 – DESC (내림차순) + 정렬
– 컬럼 앨리어스를 써서 기재하여 정렬
– SELECT절 컬럼 기재 순서(순번)를 기재하여 정렬 : nulls first, nells last
– LIMIT절 : SELECT문에서 반환되는 결과집합의 행의 건수를 제한한다.
– LIMIT ~ OFFSET 사용 : OFFSET : 출력하는 시작 행 (0 부터 시작한다.)
– FETCH절 : SELECT문에서 반환되는 결과집합의 행의 건수를 제한한다.
* LIMIT vs FETCH
– 기능적으로 동일하다.
– LIMIT는 국제 표준은 아니다.
– FETCH는 SQL 국제 표준이다.
– LIKE 연산자
– 특정 패턴과 일치하는 조건으로 데이터를 조회한다.
– 와일드 카드 %, _와 함께 사용한다.
– %
– 무엇이 나오든지 나오지 않던지 상관이 없다는 뜻이다.
– 와일드 카드 % 앞/뒤로 사용한다.
– 해당된 값이 어떤걸로 시작해서 어떤걸로 끝나든지 간에 ‘Jen’만 존재하면 리턴한다.
– _(언더바) : 무엇이든지 간에 한 자리의 문자를 의미한다.
– ___(언더바 3개) : 무엇이든지 간에 3자리만 딱 있으면 리턴한다.
– _% (언더바퍼센트)
ex) Jor___% : Jor으로 시작하면서 총 6자리 이상인 모든 행을 리턴한다.
– NULL 비교
– IS NULL 연산자
– IS NOT NULL 연산자
– CASE 문 : IF문과 같은 분기처리에 의한 SQL문 작성이 가능하다.
– CASE 문 (ORDER BY)
– 그룹별 검색 (GROUP BY)
특성 속성의 값이 같은 튜플을 모아 그룹을 만들고, 그룹별로 검색한다.
HAVING 키워드를 같이 사용하여 그룹에 대한 조건을 작성할 수 있다.
SELECT절에 등장한 컬럼이 GROUP BY에 모두 명시해야한다. 단, 집계함수는 제외한다.
– WHERE절과 HAVING절의 차이
WHERE는 “집계 전” 데이터를 필터링, WHERE절에는 집계함수가 올 수 없다.
HAVING은 “집계 후” 데이터를 필터링, HAVING절에는 집계함수만 올 수 있다.
2. null을 이용한 검색
1) null은 empty가 아닌 unknown 상태이다.
2) is null 키워드를 이용해 특정 컬럼 속성의 값이 null 값인 지를 비교할 때 사용한다. is not null 키워드를 이용해 특정 컬럼 속성의 값이 null 값이 아닌 지를 비교할 때 사용한다.
3) null 값과 산술 연산 및 비교 연산
– 결과는 null
ex) 5 + null returns -> null null > 5 returns -> null null = null returns -> null |
4) null과 논리 연산 결과
– OR
(null OR true) = true (null OR false) = null (null OR null) = null |
– AND
(null AND true) = null (null AND false) = false (null AND null) = null |
– NOT
(NOT null) = null |
3. NULL 관련 함수
1) NULLIF 함수 ; NULL 처리 할 수 있다.
2) COALESCE 함수
4. CAST 연산자
1) 데이터 타입(유형)을 변환한다.
2) 문자열을 INTERVAL 형으로 형변환 ; 시간 계산에 활용할 수 있다.
3) 문자열을 TIMESTAMP 형식으로 변환
5. 문자열 함수
6. 날짜 관련 함수
1) 일자와 시간을 다루는 함수
2) 일자와 시간을 추출하는 함수
3) 문자열을 일자 및 시간형으로 형변환하는 함수
7. 수학 관련 함수
1) 반올림, 올림, 내림 자름 관련 함수
2) 연산 관련 함수
3) 집계 함수
– 개수, 합계, 평균, 최대값, 최소값
– SELECT절이나 HAVING절에서만 사용 가능하다.
– WHERE절에서는 사용할 수 없다.
count() : 레코드 개수 리턴한다. max() : 컬럼값의 최대값을 리턴한다. min() : 컬럼값의 최소값을 리턴한다. sum() : 컬럼값의 합을 리턴한다. avg() : 컬럼값의 평균을 리턴한다. |