데이터베이스

SQL Query문 (논리 연산자, 특수 연산자, 집합 연산자, 집계 함수)

염지미 2023. 8. 24. 16:08

1. 논리 연산자

AND, OR, NOT

 

1) AND - 앞, 뒤 조건 모두 만족

SELECT [컬럼명] FROM [테이블명] WHERE [조건1] AND [조건2]

 

2) OR - 하나라도 만족

SELECT [컬럼명] FROM [테이블명] WHERE [조건1] OR [조건2]

 

3) NOT - 뒤에 오는 조건과 반대

SELECT [컬럼명] FROM [테이블명] WHERE NOT [조건1]

 


2. 특수 연산자

 BETWEEN, IN, LIKE, IS NULL

 

1) BETWEEN - A와 B의 값 사이

SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] BETWEEN 2000 AND 3000;

 

2) IN (list) - 리스트 값이 포함된 값을 반환한다.

SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] IN (값1, 값2)

SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] NOT IN ('값1', '값2')

 

3) LIKE - 비교 문자열과 같은지 비교하여 값을 반환한다.

- 필드명에서 %를 쓰면 '김%'는 '김'으로 시작하는 모든 필드를 가져온다는 뜻이다.

- 언더바( _ )로 단어 길이를 지정할 수 있다.

SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] LIKE '필드명';

-- % 예시
SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] LIKE '김%';
SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] LIKE '%김';
SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] LIKE '%김%';

-- 언더바 예시
SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] LIKE '김__';

 

4) IS NULL, IS NOT NULL - NULL과 같거나 다른지 비교하여 값을 반환한다.

SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] IS NULL;

SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] IS NOT NULL;

 


3) 집합 연산자

▶ UNION, UNION ALL - 칼럼의 개수와 명칭을 맞춰줘야한다.

 

1) UNION - 중복하는 값을 제외하고 두 테이블을 합쳐서 반환한다.

SELECT [컬럼명], [컬럼명] FROM [테이블A]

UNION

SELECT [컬럼명], [컬럼명] FROM [테이블B];

 

2) UNION ALL - 두 테이블을 합쳐서 반환한다.

SELECT [컬럼명], [컬럼명] FROM [테이블A]

UNION ALL

SELECT [컬럼명], [컬럼명] FROM [테이블B];

 

4) 집계 함수

▶ SUM, AVG, MAX, MIN, COUNT, COUNT(DISTINCT).

 

1) SUM() - 컬럼의 합계를 반환한다.

SELECT SUM(컬럼명) WHERE [테이블명];

 

2) AVG() - 컬럼의 평균을 반환한다.

SELECT AVG(컬럼명) WHERE [테이블명];

 

3) MAX() - 컬럼의 최대값을 반환한다.

SELECT MAX(컬럼명) FROM [테이블명];

 

4) MIN() - 컬럼의 최소값을 반환한다.

SELECT MIN(컬럼명) FROM [테이블명];

 

5) COUNT() - 행의 개수를 반환한다.

SELECT COUNT(컬럼명) FROM [테이블명];

 

6) COUNT(DISTINCT) - 중복된 행을 제외하고 개수를 반환한다.

SELECT COUNT(DISTINCT 컬럼명) FROM [테이블명];