오늘 학원에서 SQL의 DQL을 배웠다.
추가되는 내용이 많아서 계속 갱신될 예정
공부한 내용을 정리해보자.
SELECT 절
[문법]
SELECT 컬럼, 컬럼, ...
FROM 테이블명;
- 데이터를 조회할 때 사용
- SELECT를 통해 얻은 결과를 RESULT SET라고 한다.
- 조회하려는 칼럼은 반드시 FROM 절에 기술한 테이블에 존재해야한다.
'*' = 테이블의 모든 컬럼 조회Ex) SELECT EMP_ID, EMP_NAME
FROM EMPLOYEE;
산술연산
SELECT 절에 칼럼명 입력 부분에서 산술 연산을 할 수 있다.
산술 연산 중 NULL값이 존재할 경우 결과값은 무조건 NULL--연봉 (월급x12)
Ex) SELECT SALARY*12
FROM EMPLOYEE;
칼럼명에 별칭 지정
[문법]
칼럼명 AS 별칭
칼럼명 AS "별칭 "
칼럼명 별칭
칼럼명 "별칭 "
별칭 지정시 공백, 특수문자가 포함될 경우 반드시 큰따움표로 감싸야한다.
사용이유 : 산술연산 등으로 인해 칼럼명이 지저분해질 경우, 깔끔하게 정리하기 위해서 사용.
리터럴
SELECT 절에 리터럴을 사용하면 테이블에 존재하는 데이터처럼 조회가 가능하다.
리터럴은 RESULT SET의 모든 행에 반복적으로 출력된다.Ex) SELECT EMP_NAME, SALARY AS 급여 , '단위(원)' AS 급여단위
FROM EMPLOYEE;
DISTINCT
칼럼에 포함된 중복 값을 한번씩만 표시, SELECT 절에 한번만 사용 가능
여러개 칼럼을 대상으로 하면 모든 칼럼값이 중복되어야 제거한다.Ex) SELECT DISTINCT JOB_CODE
연결 연산자
여러 컬럼 값을 하나의 컬럼인 것처럼 연결하거나, 칼럼과 리터럴을 연결할 수 있다.Ex) SELECT DISTINCT EMP_ID, EMP_NAME, SALARY ||'원' AS "급여"
FROM EMPLOYEE;
WHERE 절
[문법]
SELECT 칼럼, 칼럼, ..., 칼럼
FROM 테이블명
WHERE 조건식;
- 조회하고자 하는 테이블에서 해당 조건에 만족하는 결과만을 조회하고자 할 때 사용한다.
- 조건식에는 다양한 연산자들을 사용할 수 있다.
비교 연산자
대소 비교 : >, <, > >=, <= 동등 비교 : = 같지 않다 : !=, ^=, <>Ex) SELECT DISTINCT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY >= '4000000';
논리 연산자
AND
OR
NOT
BETWEEN AND
[문법]
WHERE 비교대상컬럼 BETWEEN 하한값 AND 상한값
- WHERE 절에서 사용되는 구문으로 범위에 대한 조건을 제시할 때 사용한다.
- 비교대상컬럼 값이 하한값 이상이고, 상한값 이하인 경우 TRUE를 리턴한다.
Ex)
LIKE
[문법]
WHERE 비교대상칼럼 LIKE '특정 패턴';
- 비교하려는 칼럼 값이 지정된 특정 패턴에 만족할 경우 TRUE를 리턴한다.
- 특정 패턴에는 '%', '_'를 와일드카드로 사용할 수 있다.
'%' :
- 비교대상칼럼 LIKE '문자%' = 비교대상칼럼 값 중에 '문자'로 시작하는 모든 행을 조회한다.
- 비교대상칼럼 LIKE '%문자' = 비교대상칼럼 값 중에 '문자'로 끝나는 모든 행을 조회한다.
- 비교대상칼럼 LIKE '%문자%' = 비교대상칼럼 값 중에 '문자'가 포함되어 있는 모든 행을 조회한다.
Ex)
'_' :
- 비교대상칼럼 LIKE '_문자' = 비교대상칼럼 값 중에 '문자'앞에 무조건 한 글자가 오는 모든 행을 조회한다.
- 비교대상칼럼 LIKE '__문자' = 비교대상칼럼 값 중에 '문자'앞에 무조건 두 글자가 오는 모든 행을 조회한다.
Ex)
IS NULL / IS NOT NULL
[문법]
WHERE 비교대상칼럼 IS [NOT] NULL;
- 칼럼 값에 NULL이 있을 경우 NULL 값 비교에 사용된다.
IS NULL : 비교대상칼럼 값이 NULL인 경우 TRUE를 리턴한다.
IS NOT NULL : 비교대상칼럼 값이 NULL이 아닌 경우 TRUE 리턴한다.Ex)
IN
[문법]
WHERE 비교대상칼럼 IN('값', '값', '값', ..., '값');
- 값 목록 중에 일치하는 값이 있을 때 TRUE 리턴한다.
ORDER BY
[문법]
SELECT 칼럼, 칼럼, ..., 칼럼
FROM 테이블명
WHERE 조건식
ORDER BY 정렬시키고자 하는 칼럼명|별칭|칼럼 순번
[ASC|DESC][NULLS FIRST | NULLS LAST];
- SELECT 문에서 가장 마지막에 기입하는 구문으로 실행 또한 가장 마지막에 진행된다
- ASC : 오름차순으로 정렬한다. (ASC 또는 DESC 생략 시 기본값)
- DESC : 내림차순으로 정렬한다.
- NULLS FIRST : 정렬하고자 하는 칼럼 값에 NULL이 있는 경우 해당 데이터 값을 맨 앞으로 정렬한다.
- NULLS LAST : 정렬하고자 하는 칼럼 값에 NULL이 있는 경우 해당 데이터 값을 맨 뒤로 정렬한다.
Ex)
GROUP BY
그룹 기준을 제시할 수 있는 구문
여러 개의 값들을 하나의 그룹으로 묶어서 처리할 목적으로 사용한다.Ex)
HAVING
그룹에 대한 조건을 제시할 때 사용하는 구문(주로 그룹 함수의 결과를 가지고 비교 수행)
- 실행 순서
5: SELECT 조회하고자 하는 칼럼명 AS "별칭" | 계산식 | 함수식
1: FROM 조회하고자 하는 테이블명
2: WHERE 조건식
3: GROUP BY 그룹 기준에 해당하는 칼럼명 | 계산식 | 함수식
4: HAVING 그룹에 대한 조건식
6: ORDER BY 정렬 기준에 해당하는 칼럼명 | 별칭 | 칼럼 순번Ex)