SQL(Structured Query Language/ 구조화된 질의 언어)
- 관계형 데이터베이스 시스템(RDBMS) 에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어
- 원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성 함
기본 SQL 문법의 종류
데이터 정의어 : DDL(Data Definition Language)
- 데이터베이스의 구조를 정의하거나 변경, 삭제하기 위해 사용
- CREATE(개체 생성), ALTER(개체 수정), DROP(개체 삭제), TRUNCATE(개체 초기화)
데이터 조작어 : DML(Data Manipulation Language)
- Data를 조작하기 위해 사용하는 언어
- Table 안에 데이터를 추가, 수정, 삭제, 조회 등을 하기 위해 사용
- Data를 이용하려는 사용자와 시스템간의 인터페이스를 직접적으로 제공하는 언어
- INSERT(데이터 삽입), UPDATE(데이터 수정), DELETE(데이터 삭제), SELECT(데이터 검색) 등
- SELECT 구문은 DQL(Data Query Language) 라고도 함
데이터 제어어: DCL(Data Control Language)
- 사용자의 권한이나 관리자 설정 등을 처리하는 언어
- GRANT(유저 권한 생성), REVOKE(유저 권한 삭제)
트랜잭션 제어어 : TCL(Transaction Control Language)
- 트랜잭션 관리 제어 언어
- 트랜잭션
- 처리하는 업무의 작업 단위
- 하나의 작업이 정상적으로 처리되었다명 COMMIT
- 하나의 작업안에서 특정 작은 업무라도 잘못되면 ROLLBACK
- COMMIT(트랜잭션 종료 처리 후 저장), ROLLBACK(트랜잭션 취소), SAVEPOINT(임시저장/ 포인트 지점 설정)
TABLE의 구조
- Relation : Table을 Relation이라 부름
- Column(Domain, Attribute) : 특정한 단순 자료형과 데이터의 열
- Row(Tuple) : 테이블에서 한 객체의 대한 전체 정보를 표현한 행
- Field : 단일 값 자체를 의미함
DB 데이터 타입(Oracle)
NUMBER 타입
- NUMBER([P,S])
- P : 표현할 수 있는 전체 숫자 자리수(1~38)
- S : 소수점 이하 자리수(-84~127)
NUMBER -> 원래 데이터 형식
NUMBER(3.2) -> X.XX
NUMBER(4.2) -> XX.XX
NUMBER(4.3) -> X.XXX
NUMBER(4.-1) -> XXX0
NUMBER(4.-3) -> X000
CHAR(NCHAR) 타입
- CHAR (SIZE[byte | char])
- 지정한 크기보다 작은 문자(열)이 입력 : 남는 공간은 공백으로 채움
- 데이터 : ‘ ‘을 사용하여 표기, 대/소문자 구분
- CHAR는 Byte 단위 / NCHAR는 글자수 단위
- 사이즈 명시하지 않으면 1Byte
- CHAR는 최대 2000Byte까지 가능
- 알파뱃 : 아스키코드 값 (한글자당 1Byte)
- 한글 : 유니코드 (한글자당 2Byte)/ Oracle XE는 3Byte 처리
CHAR(6) -> ORACLE
CHAR(9) -> ORACLE(공백 3칸)
CHAR(3) -> 에러
NCHAR(6) -> 공부(공백 4칸)
NCHAR(9) -> 공부(공백 7칸)
NCHAR(3) -> 공부(공백 1칸)
VARCHAR2(NVARCHAR) 타입
- 가변 타입
- 글자 수에 따라 가변 길이가 되어 공간을 효율적으로 사용
- 최대 길이 : 4000Byte
- NVARCHAR: 글자 수 단위 가변길이
VARCHAR(6) - > ORACLE
VARCHAR(9) - > ORACLE
VARCHAR(5) - > ORACLE(엄격모드시 에러)
DATE 타입
- 일자(년/월/일) 및 시간 (시/분/초) 정보를 관리
- 기본적으로 화면에 년/월/일 정보만 표기 됨
- 날짜 연산 및 비교 가능
연산 | 결과타입 | 설명 |
---|
날짜+숫자 | DATE | 작성한 숫자만큼 며칠 후 |
날짜-숫자 | DATE | 작성한 숫자만큼 며칠 전 |
날짜-날짜 | DATE | 두 날짜의 차이(일수) |
날짜-숫자/24 | DATE | 날짜 +시간 |
NULL 데이터
- NULL : 아무런 정의가 되어 있지 않은 값(0이나 공백과는 다른 값)
싱글쿼테이션과 더블쿼테이션 ('' , "")
- 싱글쿼테이션과(‘ ‘) : 문자열 표기 시 사용
- 더블쿼테이션 (“ “) : 컬럼명 등 감싸주는 기호로 사용
SELECT ‘Hello’ AS “기본 출력” FROM DUAL;