SQL 기본
- SQL명령어는 하나의 문장으로 구성되어야 하며, 여러 개의 절이 모여 문장이 될 수 있음
- 반드시 세미콜론( ; )으로 마쳐야 함
SELECT
- SELECT 문은 반드시 SELECT와 FROM 2개의 키워드를 가져야 함
- 두 개의 키워드를 기준으로 SELECT 절과 FROM 절 구분
- SELECT 절은 출력하고자 하는 컬럼명을 기술
- FROM 절은 조회하고자 하는 테이블 이름을 기술
- SELECT 시 Concatenation 연산자로 여러 개의 컬럼 연결 가능
SELECT ename || '의 직급은 ' || job || '입니다.'
FROM emp;
WHERE
- 조건절로 조건 설정을 통해 특정 컬럼만을 출력하게할 수 있음
- WHERE 컬럼 + 연산자 + 비교대상 값의 형태와 같이 구성
- <>, !=, ^= 연산자는 같지 않은 조건을 설정할 떄 사용
- 논리 연산자를 통해 조건을 연결할 수 있음
- AND, OR, NOT
- BETWEEN A AND B 연산자 : A ~ B 사이 값을 조회할 떄 사
- 숫자뿐만 아니라 문자, 날짜에도 사용 가능
- 문자형 컬럼에 숫자 값이 들어가있는 경우 값의 길이가 일정하면 사용 가능
- 숫자형 문자일 경우 길이가 일정하지 않으면 TO_NUMBER로 형 변환 후 수치값으로 검색
- IN 연산자 : 동일한 필드가 여러 개의 값 중 하나인 경우를 판단할 때 사용
- LIKE 연산자 : 컬럼에 저장된 데이터의 일부만 일치하더라도 조회하기 위해 사용
- LIKE 다음에 pattern을 기술해야 하는데 두 가지 와일드카드 사용
- % : 문자가 없거나, 하나 이상의 문자가 어떤 값이 와도 상관없음
- _ : 하나의 문자가 어떤 값이 와도 상관없음
- IS NULL 연산자 : 특정 컬럼의 값이 NULL 값인지 비교할 때 사용
ORDER BY
- ORDER BY절의 경우 컬럼에 대해 정렬 가능
ORDER BY 절의 정렬 방식
|
ASC(오름차순) |
DESC(내림차순) |
숫자 |
작은 값부터 정렬 |
큰 값부터 정렬 |
문자 |
사전 순서로 정렬 |
사전 반대 순서로 정렬 |
날짜 |
빠른 날짜 순서로 정렬 |
늦은 날짜 순서로 정렬 |
NULL |
가장 마지막에 나옴 |
가장 먼저 나옴 |
집합 연산자
- 테이블의 부분 지합을 결과로 반환하는 연산자
- 합집합 (UNION)
- 차집합 (DIFFERENCE)
- 교집합 (INTERSECT)
- 기본적으로 입력 테이블과 결과 테이블에서 중복 레코드를 배제됨
- ALL 키워드를 통해 중복 레코드 허용 가능
- 쿼리의 컬럼 개수가 같고, 대응되는 컬럼끼리 데이터 타입이 같아야 사용 가능
- MINUS 연산은 첫 번째 쿼리의 데이터에서 두 번째 쿼리와 같은 내용을 제거해 출력함
NULL
-
0(zero0)이 아님
-
빈 공간이 아님
-
미확정 값, 알 수 없는 값을 의미
-
연산, 할당, 비교가 불가능
-
NULL 값 변환을 위한 NVL 함수 존재
컬럼 별칭 부여
SELECT ename, sal*12+NVL(comm, 0) as Salary
FROM emp;
SELECT ename, sal*12+NVL(comm, 0) Salary
FROM emp;
- 위의 두가지 방식은 컬럼 별칭이 모두 대문자로 출력됨
- 원하는 형태로 출력을 위해서는 큰따옴표("")를 활용하면 됨
SELECT ename, sal*12+NVL(comm, 0) "$Salary"
FROM emp;
키워드 정리