DISTINCT
o 컬럼에 포함된 데이터 중 중복 값을 제외하고 한 번씩만 표시하고자 할 때 사용
o DISTINCT는 SELECT문에 한 개만 사용이 가능하다.
|
SELECT DISTINCT JOB_CODE FROM EMPLOYEE; SELECT DISTINCT DEPT_CODE, JOB_CODE FROM EMPLOYEE; -- 동시 중복만 제거 SELECT DISTINCT DEPT_CODE, DISTINCT JOB_CODE FROM EMPLOYEE; --에러 |
WHERE절
o 검색할 컬럼의 조건을 설정하여 RESULT SET의 Row(DATA)값을 필터링하여 조회할 수 있다.
o 필터링을 원하는 경우에만 WHERE를 사용하면 되기에 생략이 가능하다.
o 사용 형식 : SELECT 컬럼명, 컬럼명, ... FROM 테이블명 [WHERE 조건식(==,!=,>,<)]
|
부서코드가 ‘D9’인 직원의 이름, 부서코드 조회 |
급여가 4000000보다 많은 직원 이름과 급여 조회 |
|
SELECT EMP_NAME, DEPT_CODE FROM EMPLOYEE WHERE DEPT_CODE = ‘D9’; |
SELECT EMP_NAME, SALARY FROM EMPLOYEE WHERE SALARY > 4000000; |
o AND/OR 사용하여 여러 개 조건 식을 작성할 수 있다.
|
부서코드가 ‘D6’이고 급여를 2000000보다 많이 받는 직원의 이름, 부서코드, 급여 조회 |
부서코드가 ‘D6’이거나 급여를 2000000보다 많이 받는 직원의 이름, 부서코드, 급여 조회 |
|
SELECT EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE DEPT_CODE = ‘D6’ AND SALARY > 2000000; |
SELECT EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE DEPT_CODE = ‘D6’ OR SALARY > 2000000; |
연결 연산자
o ‘||’를 사용하여 여러 컬럼을 하나의 컬럼인 것처럼 연결하거나 컬럼과 리터럴을 연결함
| 컬럼과 컬럼을 연결한 경우 | 컬럼과 리터럴을 연결한 경우 |
|
SELECT EMP_ID || EMP_NAME || SALARY FROM EMPLOYEE; |
SELECT EMP_NAME || ‘의 월급은 ‘ || SALARY || ‘원 입니다.’ FROM EMPLOYEE; |

논리 연산자
o 여러 개의 제한 조건 결과를 하나의 논리 결과로 만들어 줌
|
연산자 |
설명 |
|
AND |
여러 조건이 동시에 TRUE일 경우에만 TRYE값 반환 |
|
OR |
여러 조건들 중에 어느 하나의 조건만 TURE이면 TRUE값 반환 |
|
NOT |
조건에 대한 반대 값으로 반환(NULL제외) |
비교연산자
o 표현식 사이의 관계를 비교하기 위해 사용하고 비교 결과는 논리 결과(TRUE/FALSE/NULL) 중 하나가 됨
o 단 비교하는 두 컬럼 값/표현식은 서로 동일한 데이터 타입이어야 함
|
연산자 |
설명 |
|
= |
같다 |
|
>, < |
크다 / 작다 |
|
>=, <= |
크거나 같다 / 작거나 같다 |
|
<>, !=, ^= |
같지 않다 |
|
BETWEEN … AND … |
특정 범위에 포함되는지 비교 |
|
LIKE / NOT LIKE |
문자 패턴 비교 |
|
IS NULL / IS NOT NULL |
NULL 여부 비교 |
|
IN / NOT IN |
비교 값 목록에 포함 / 미포함 되는지 여부 비교 |
동등비교 연산자
SELECT * FROM EMPLOYEE WHERE EMP_NAME='송종기';
비교 연산자
SELECT * FROM EMPLOYEE WHERE SALARY>2000000;
부정 연산자
|
SELECT * FROM EMPLOYEE WHERE JOB_CODE!='J5'; SELECT * FROM EMPLOYEE WHERE JOB_CODE<>'J5'; SELECT * FROM EMPLOYEE WHERE JOB_CODE^='J5'; |
논리연산 연결
o AND, OR, NOT을 사용하여 여러 연산자들을 연결해서 사용할 수 있게 한다.
|
EMPLOYEE테이블에서 DEPT_CODE D5이면서 SALARYRHK 300백만원 이상인 사원. |
급여를 3500000보다 많이 받고 6000000보다 적게 받는 직원 이름과 급여 조회 |
|
SELECT * FROM EMPLOYEE WHERE DEPT_CODE='D5' AND SALARY>=3000000; |
SELECT EMP_NAME, SALARY FROM EMPLOYEE WHERE SALARY >= 3500000 AND SALARY <= 6000000; |
연산자 우선순위
|
우선순위 |
연산자 |
|
1 |
산술 연산자 |
|
2 |
연결 연산자 |
|
3 |
비교 연산자 |
|
4 |
IS NULL / IS NOT NULL / LIKE, IN / NOT IN |
|
5 |
BETWEEN AND / NOT BETWEEN AND |
|
6 |
논리 연산자 – NOT |
|
7 |
논리 연산자 – AND |
|
8 |
논리 연산자 – OR |
'DB' 카테고리의 다른 글
| [SQL] 함수 명령어 정리- 문자, 숫자, 날짜, 형변환, 그룹 (0) | 2021.03.08 |
|---|---|
| [SQL] SELECT문 명령어 - BETWEEN, IS NULL, IN (0) | 2021.02.27 |
| [SQL] SELECT문 - 정의, 산술 연산, 별칭, 리터럴 (0) | 2021.02.27 |
| [SQL] SQL 개념 및 종류(DDL,DML,DQL,DCL,TCL) (0) | 2021.02.27 |
| [Database] DBMS의 개념 및 기능, 이점, 유형 (0) | 2021.02.27 |