2. SQL(Structed Query Language)
Overview
SQL이 무엇이고 어떤 것들이 있는지 알아본다.
SQL(Structed Query Language)
구조적 질의 언어
데이터베이스로부터 데이터를 조회 / 삭제 / 수정 등의 작업을 수행할 때 사용하는 질의 언어
- Query : 질의, 질문을 던짐
- 데이터베이스에게 질문을 하여 특정 결과를 얻어내거나 특정 작업을 수행하는 것
SQL의 요소
구문 | 문법 요소 | 설명 | 주체 | 트랜잭션 |
---|---|---|---|---|
DQL | SELECT | Data Query Language | - | - |
DML | INSERT UPDATE DELETE MERGE | Data Manipulation Language | row 단위 | commit rollback |
DDL | CREATE ALTER DROP RENAME TRUNCATE COMMENT | Data Definition Language | Object 단위 | Auto Commit |
DCL | GRANT REVOKE | Data Control Language | User | Auto Commit |
TCL | COMMIT ROLLBACK SAVEPOINT | Transaction Control | - | - |
SQL 데이터 타입
타입 | 설명 |
---|---|
NUMBER NUMBER(숫자) NUMBER(숫자1, 숫자2) | 숫자형 데이터 <정수 / 실수 가능> |
CHAR | 문자열 저장 타입. 최대 2000 바이트까지 가능 |
VARCHAR2 | 가변길이 문자열 타입. 최대 4000 바이트 까지 가능 |
DATE | 날짜 데이터 타입. 시스템 설정에 따라 출력 형태가 다름 |
NCHAR | 유니코드타입의 CHAR. 최대 2000 바이트. 디폴트는 1바이트 |
NVARCHAR2 | 유니코드 가변 CHAR. 최대 4000 바이트까지 가능하며 반드시 길이를 정해야 함 |
LONG | 가변길이 CHAR 타입으로 최대 2GB 까지 가능 |
RAW | 가변길이 바이너리 데이터로 최대 2000 바이트까지 가능 |
LONG RAW | 가변길이 바이너리 데이터로 최대 2GB 까지 가능 |
BLOB | 바이너리 데이터로 4GB 까지 가능 |
CLOB | 싱글-바이트 케릭터 데이터로 최대 4GB 까지 가능 |
NCLOB | 모든 케릭터 데이터로 최대 4GB 까지 가능 |
ROWID | ROW의 물리적 주소를 나타내는 바이너리 데이터 |
TIMESTAMP | DATE 값을 미세한 초단위까지 저장한다. NLS_TIMESTAMP_FORMAT 으로 처리 |
INTERVAL YEAR TO MONTH | 두 DATETIME 값의 차이에서 년도와 월만 저장 |
INTERVAL DAY TO SECOND | 두 DATETIME 값의 차이에서 일, 시간, 분, 초 까지 저장 |
객체 명명 규칙
객체(Object)
- Oracle DB를 구성하고 있는 요소들
작성 규칙
- 반드시 문자로 시작한다.
- ex) a123(O), 3abc(X)
특징
- 길이는 1 ~ 30 (단, DB_Name은 8byte 이내)
- 알파벳 대소문자 및 숫자, 특수기호 일부
_, $, #
가 사용될 수 있음 - 컬럼 이름의 끝에
#
이 있으면 숫자형 컬럼 $
은 동적 성능 뷰에 사용(V$Version
뷰 등)- 동일 사용자의 다른 객체 이름과 중복이 불가능
- Oracle에서 사용하는 예약어는 사용 불가능
- 사용되고 있는 예약어는 다음 문장을 이용하여 확인 가능
conn / as sysdbaa
select * from v$reserved_words;