01_SELECT 기본문법 및 연산자
SQL(Structured Query Language)
관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색언어.
원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성
분류 | 용도 | 명령어 |
DQL (Data Query Language) | 데이터 검색 | SELECT |
DML (Date Manipulation Language) | 데이터 조작 | INSERT UPDATE DELETE |
DDL (Date Definition Language) | 데이터 정의 | CREATE DROP ALTER |
TCL (Transection Control Language) | 트렌젝션 제어 | COMMIT ROLLBACK |
주요 데이터 타입
1. NUMBER - 숫자
2. CHARACTER
CHAR - 고정길이 문자(최대 2000 바이트)
VARCHAR2 - 가변길이 문자 (최대 4000 바이트)
LONG - 가변길이 문자 (최대 2기가 바이트)
3. DATE - 날짜
4. LOB
CLOB - 가변길이 문자(최대 4기가 바이트)
BLOB - Binary Data (2진수)
SELECT
Result Set : 데이터를 조회한 결과, SELECT 구문에 의해 반환된 행들의 집합
0개 이상의 행이 포함될 수 있으며 특정한 기준에 의해 정렬될 수 있다.
특정 컬럼이나 특정 행, 또는 특정 행/특정 컬럼을 조회할 수 있으며 여러 테이블의 특정 행/컬럼을 조회할 수도 있다.
SELECT 기본 작성법
SELECT
컬럼명
, 컬럼명
, 컬럼명
FROM 테이블명
WHERE 조건식;
SELECT : 조회하고자 하는 컬럼명 기술. 모든 컬럼 조회 시 ‘*’ 기호를 사용하며 조회 결과는 기술한 컬럼명 순으로 표시된다.
FROM : 조회 대상 컬럼이 포함된 테이블 명을 기술한다.
WHERE : 행을 선택하는 조건을 기술한다. 여러 개의 제한조건을 포함할 수 있으며, 각각의 제한 조건은 논리 연산자로 연결한다.
컬럼 별칭 : AS + 별칭 을 기술하여 별칭을 지을 수 있다. AS를 생략해도 되며 공백 등 특수문자가 포함된다면 “ “로 감싸야한다.
리터럴 : 임의로 지정한 문자열을 SELECT 절에 사용하면, 테이브에 존재하는 데이터처럼 사용할 수 있다. 문자 혹은 날짜 리터럴은 ‘ ‘ 기호를 사용해야 하며 Result Set의 모든 행에 반복 표시된다.
DISTICT : 컬럼에 포함된 중복값을 한 번씩만 표시하고자 할 때 사용하며 SELECT절에 1회만 기술 가능하다.
연결연산자 : || 를 사용하여 여러 컬럼을 하나의 컬럼인 것처럼 연결하거나, 컬럼과 리터럴을 연결할 수 있다.
WHERE절
여러 개의 조건을 만족하는 행을 골라낼 때 AND 혹은 OR를 사용할 수 있다.
NULL값 조회
IS NULL 과 NOT IS NULL 을 사용하여 조회한다.
비교 연산자
비교 결과는 논리 결과 중 하나(TRUE/FALSE/NULL)가 된다. 단, 비교하는 두 컬럼 값/표현식은 서로 동일한 데이터 타입이어야 한다.
BETWEEN AND
지정한 범위(상한, 하한 값 경계도 포함)에 포함되면 TRUE를 리턴한다.
포함되지 않는 걸 구할 땐 NOT BETWEEN AND
LIKE
비교하려는 값이 지정한 특정 패턴을 만족시키면 TRUE를 리턴하는 연산자로 %와 _를 와일드카드로 사용할 수 있다.
컬럼명 LIKE ‘문자 패턴’
‘글자%’ - 글자로 시작하는 값
‘%글자’ - 글자로 끝나는 값
‘%글자%’ - 글자가 포함된 값
‘___9%’ - 4번째 자리 수가 9
WHERE EMAIL LIKE '___#_%' ESCAPE '#';
→ ESCAPE 문자 앞에 언더바는 와일드카드, 뒤에 언더바는 문자 언더바
IN 연산자
비교하는 값 목록에 일치하는 값이 있는지 확인
컬럼명 IN (’D6’, ‘D9’)
반대로 제외한 나머지를 구할 땐 NOT IN을 사용하고, NULL값은 별도로 처리해야 한다.
NOT IN (’D6’, ‘D9’) OR 컬럼명 IS NULL;
연산자 우선순위
AND가 OR보다 우선 처리되며, 괄호를 이용하여 우선순위 변경이 가능하다.