테이블 컬럼의 정보 조회
( ' ) 홑따옴표 : 문자열일 때
( " ) 쌍따옴표 : 컬럼명일 때
SELECT
: 데이터를 조회할 때 사용하는 구문
RESULT SET : SELECT문을 통해 조회된 결과물 ( 조회된 행들의 집합 )
[표현법]
SELECT 조회하려는 컬럼명, 조회하려는 컬럼명, ...
FROM 테이블명
컬럼 값을 통한 산술 연산
SELECT절 컬럼명 작성 부분에 산술 연산 기술이 가능하다. ( 이때 산술 연산된 결과 조회 )
SELECT
emp_id,
emp_name,
salary,
salary * 1.10 AS salary_with_bonus
FROM
emp;
위 예시는 직원 테이블에서 (emp) 월급(salary)에 보너스(10%)를 더한 값을 계산하여 조회하는 것으로
보너스를 구하는 부분에 산술 연산이 기술되었다.
컬럼명에 별칭 지정하기
산술 연산시 산술에 들어간 수식 그대로 컬럼명이 되는데, 이때 별칭을 부여하면 깔끔하게 처리된다.
[표현법]
컬럼명 별칭 / 컬럼명 AS 별칭 / 컬럼명 "별칭" / 컬럼명 AS "별칭"
별칭에 띄어쓰기나 특수문자 포함되면 반드시 (") 쌍따옴표를 넣어줘야 한다
리터럴
임의로 지정된 문자열 ( ' )
SELECT절에 리터럴을 제시하면 마치 테이블상에 존재하는 데이터 처럼 조회 가능
조회된 RESULT SET의 모든 행에 반복적으로 출력
SELECT
emp_name,
'Company XYZ' AS company_name
FROM
emp;
위 예시는 emp 테이블 각 행에 대해 emp_name 컬럼과 고정된 문자열 리터럴 'company XYZ'를 조회한다.
아래와 같이 각 행에 대해 리터럴 값인 'Company XYZ'가 반복적으로 출력되는 것을 확인할 수 있다.

연결연산자 ||
여러 컬럼 값들을 마치 하나의 컬럼 값인 것처럼 연결하거나, 컬럼 값과 리터럴을 연결할 수 있다.
- 여러 컬럼 값을 하나의 컬럼 값 처럼 연결
SELECT
emp_name || ' (' || job_title || ')' AS employee_info
FROM
emp;

- 컬럼 값과 리터럴 연결
SELECT
'Employee: ' || emp_name AS employee_label
FROM
emp;

DISTINCT
컬럼의 중복된 값들을 한 번씩만 표시하고자 할 때
※ SELECT절에서 DISTICT는 한번만 기술이 가능하다.
SELECT DISTINCT DEPT_CODE, JOB_CODE
FROM EMPLOYEE;
=> DEPT_CODE, JOB_CODE 2개의 조합 중에 중복된 것 제외
WHERE절
: 조회하고자 하는 테이블에서 특정 조건에 만족하는 데이터만 조회할 때 사용한다.
WHERE절에 조건식을 제시한다.
[표현법]
SELECT 컬럼, 컬럼, 산술연산, ...
FROM 테이블명
WHRER 조건식;
- 비교연산자
- >, <, >=, <= : 대소비교
- = : 같은지 비교
- !=, ^=, < > : 같지 않은지 비교
- 논리연산자 : 여러 개의 조건을 묶어서 제시하고자 할 때
- AND( ~이면서, 그리고 )
- OR ( ~ 이거나, 또는 )
- NOT ( 부정 ) : 컬럼명 앞 또는 BETWEEN 앞에 쓴다
- BETWEEN AND : ~이상 ~이하인 범위의 조건을 제시할 때
[표현법]
비교대상컬럼 BETWEEN 하한 값 AND 상한 값
- LIKE : 비교하고자하는 컬럼 값이 내가 제시한 특정 패턴에 만족하는 경우 조회
[표현법]
비교대상컬럼 LIKE '특정패턴'
: 특정패턴 제시시 '%', '_' 와일드카드로 사용할 수 있음
- % : 0 글자 이상
EX) 비교대상컬럼 LIKE '문자%' => 비교대상 컬럼 값이 '문자'~로 시작되는 것들을 조회
비교대상컬럼 LIKE '%문자' => 비교대상 컬럼 값이 '~문자'로 끝나는 것들을 조회
비교대상컬럼 LIKE '%문자%' => 비교대상 컬럼 값이 '문자'가 포함되는 것들을 모두 조회
- '_' : 1 글자
EX) 비교대상컬럼 LIKE '_문자' => 비교대상 컬럼 값의 '문자' 앞에 무조건 한 글자가 올 경우 조회
( 3 글자만 가능 )
비교대상컬럼 LIKE '문자_' => 비교대상 컬럼 값의 '문자' 뒤에 무조건 한 글자가 올 경우 조회
( 3 글자만 가능 )
비교대상컬럼 LIKE '_문자_' => 비교대상 컬럼 값의 '문자' 앞과 뒤에 무조건 한 글자씩 올 경우
조회 ( 4 글자만 가능 )
이메일 중 앞에 글자가 3글자인 사원들의 사번, 사원 명, 이메일 조회
SELECT EMP_ID, EMP_NAME, EMAIL
FROM EMPLOYEE
WHERE EMAIL LIKE '___%'; → 언더바 4개로 인식
_가 와일드 카드로 인식이 됨 -> 데이터와 와일드카드를 구분지어야 함
: 데이터 값으로 취급하고자하는 값 앞에 나만의 와일드카드 ( 아무거나 ( 문자, 숫자, 특수문자 ))를 제시하고,
나만의 와일드카드 escape로 등록해야 함 !
SELECT EMP_ID, EMP_NAME, EMAIL
FROM EMPLOYEE
WHERE NOT EMAIL LIKE '__#%'ESCAPE'#';
- IS NULL / IS NOT NULL : 컬럼 값에 NULL이 있는 경우 NULL값 비교에 사용되는 연산자
- IN / NOT IN
- IN : 컬럼 값이 내가 제시한 목록 중에 일치하는 값이 있는 것만 조회
- NOT IN : 컬럼 값이 내가 제시한 목록 중에 일치하는 값이 있는 것을 제외한 나머지 조회
[표현법]
비교대상컬럼 IN ( '값1', '값2', '값3', .... )
<< 연산자 우선순위 >>
1. ( )
2. 산술연산자
3. 연결연산자
4. 비교연산자
5. IS NULL / LIKE '패턴' / IN
6. BETWEEN AND
7. NOT ( 논리연산자 )
8. AND ( 논리연산자 )
9. OR ( 논리연산자 )
ORDER BY절
: 정렬, SELECT문 가장 마지막 줄에 작성하고, 실행 순서 또한 맨 마지막에 실행된다.
[표현법]
SELECT 컬럼, 컬럼, ....
FROM 테이블명
WHERE 조건식
ORDER BY 정렬기준이 되는 컬럼명 | 별칭 | 컬럼순번[ ASC | DESC ] | [NULLS FIRST | NULLS LAST]
- ASC : 오름차순 정렬 ( 생략 시 기본 값 )
- DESC : 내림차순 정렬
- NULLS FIRST : 정렬하고자 하는 컬럼 값에 NULL이 있는 경우 해당 데이터를 맨 앞에 배치
( 생략 시 DESC일 때의 기본 값 )
- NULLS LAST : 정렬하고자 하는 컬럼 값에 NULL이 있는 경우 해당 데이터를 맨 뒤에 배치
( 생략 시 ASC일 때의 기본 값 )