SELECT문
기본문법
SELECT <ALL , DISTINCT> 속성
FROM 테이블명
WHERE 검색조건
GROUP BY 속성
HAVING 검색조건
ORDER BY 속성 <ASC/DESC>
<> 안 예약어들은 선택적으로 사용하면 된다.
WHERE 조건
조건으로 사용할 수 있는 술어
술어 | 연산자 | 예시 |
비교 | = , <>, <, <= , > , >= | population < 300000 |
범위 | BETWEEN | population BETWEEN 500000 AND 1000000 |
집합 | IN, NOT IN | population IN (1500000,500000, 2000000) |
패턴 | LIKE | address LIKE '%인천%' |
복합조건 | AND , OR , NOT | (address LIKE '인천%') AND (population > 100000) |
NULL | IS NULL, IS NOT NULL | address IS NULL |
BETWEEN 은 논리연산자 AND를 사용할 수 있다.
WHERE 조건에서 집합연산자 사용 시 ( ) 써주어야 한다.
SELECT *
FROM Book
WHERE publisher IN ('굿스포츠','대한미디어');
▼ 틀린 문법
SELECT *
FROM Book
WHERE publisher IN '굿스포츠','대한미디어';
와일드 문자
와일드 문자 | 의미 | 사용 예 |
+ | 문자열끼리 연결 | '커피' + '콩' = '커피콩' |
% | 0개 이상의 문자열과 일치 | '아이스%' : 아이스를 포함하는 문자열 |
[] | 1개의 문자와 일치 | '[0-5]%' : 0-5 사이 숫자로 시작하는 문자열 |
[^ ] | 1개의 문자와 불일치 | '[^0-5]%' : 0-5 사이 문자로 시작하지 않는 문자열 |
_ | 특정 위치의 1개 문자가 있다 | '_장%' : 두번째 철자에 '장'이 들어가는 문자열 |
집계함수
집계 함수 | 문법 | 사용 예 |
SUM | SUM( ALL | DISTINCT 속성) | SUM(populaton) |
AVG | AVG( ALL | DISTINCT 속성) | AVG(score) |
COUNT | COUNT( ALL | DISTINCT 속성 또는 *) | COUNT(*) |
MAX | MAX( ALL | DISTINCT 속성) | MAX(score) |
MIN | MIN( ALL | DISTINCT 속성) | MIN(score) |
GROUP BY와 HAVING절 문법 주의사항
GROUP BY
SELECT절에는 GROUP BY 에서 사용된 그룹 기준이 된 <속성>과 집계함수만 출력할 수 있다.
예)
SELECT department, avg(sal)
FROM dept
GROUP BY department;
HAVING
HAVING절은 반드시 GROUP BY 와 함께 작성되어야 하고, HAVING절의 조건에는 집계함수가 와야 한다.
예)
SELECT custid, COUNT(*)
FROM orders
WHERE saleprice >= 7500
GROUP BY custid
HAVING count(*) >= 2;
'Database > SQL' 카테고리의 다른 글
집합연산 (0) | 2022.07.28 |
---|---|
Q3-31 : 상관 부속질의 (0) | 2022.07.28 |
부속질의 (0) | 2022.07.28 |
조인(JOIN) (0) | 2022.07.28 |
SQL과 일반 프로그래밍 언어의 차이점 (0) | 2022.07.27 |