데이터베이스 시스템에서 자료를 처리하는 용도로 사용되는 구조적 데이터 질의 언어
Data Definition Language
: 데이터가 저장되는 테이블이나, 개체를 정의
CREATE TABLE 테이블명 (
컬럼명1 데이터타입 [DEFAULT, NULL여부],
...
[CONSTRANT ]
);
- 컬럼에 대한 정보는
()
안에 명시한다.- 컬럼명 뒤에
데이터 유형
과,데이터 크기
를 명시한다.- 마지막은
;
로 끝난다.
데이터 타입
문자
CHAR
: 크기 고정, 정의한 메모리 모두 사용''
VARCHAR
: 크기 가변,''
사용
CLOB
:
숫자
NUMBER
날짜
DATE
- 옵션
NULL
: 공백과는 다르며, 존재하지 않는 값
DEFAULT
: 데이터의 기본값.
제약조건
CONSTRAINT
(옵션) : 데이터의 무결성을 유지하기 위한 장치
PRIMARY KEY
: 각각에 ROW에 대한 고유성을 보장.
한 테이블에 하나씩만 정의
PK값은NULL
값 불가UNIQUE KEY
: 고유키, PK와 같으나,NULL
값 허용NOT NULL
: 해당 컬럼에NULL
값 불가CHECK
: 해당 컬럼에 저장 될 수 있는 값 범위 제한CONSTRANT CHK_DEL_YN CHECK (DEL_YN IN ('Y','N')) DEL_YN 컬럼에 Y나 N만 입력 될 수 있도록 한다. 그리고 이 제약 조건을 CHK_DEL_YN라고 한다.
CREATE를 활용한 테이블 복사
CREATE 테이블명 AS SELECT * FROM 복사할 테이블명 ;
테이블의 구조를 변경
ADD
새로운 컬럼을 추가한다. 추가된 컬럼은 맨 끝에 위치하며, 별도 위치 설정은 불가ALTER TABLE 테이블명 ADD 컬럼명 데이터유형(SIZE);
DROP COLUMN
기존에 있던 컬럼이 필요 없어졌을 때, 복구 불가ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
MODIFY()
기존에 있던 컬럼을 변경. 데이터유형, 제약조건,DEFAULT
,NOT NULL
변경 가능ALTER TABLE 테이블명 MODIFY ( 컬럼명 데이터유형(SIZE) [DEFALUT 값][NOT NULL]);
RENAME COLUMN TO
ALTER TABLE 테이블명 RENAME COLUMN 변경할 컬럼명 TO 변경할 이름;
ADD CONSTRAINT
제약조건의 추가ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건 (컬럼명) ;
테이블 삭제
해당 테이블을 참조하는 다른 테이블이 있을 경우,CASCADE CONSTRAINT
옵션을 명시DROP TABLE 테이블명 [CASCADE CONSTRAINT];
테이블에 저장되어 있는 데이터를 모두 제거
저장 공간이 재사용된다
ROLLBACK
불가TRUNCATE TABLE 테이블명 ;
Data Control Language
: 데이터베이스에 접근하고, 객체들을 사용할 수 있도록 권한을 주고, 회수하는 명령
CREATE USER
: CREATE USER 권한이 있어야 수행 가능CREATE USER 사용자명 IDENTIFIED BY 패스워드;
ALTER USER
: 사용자를 변경ALTER USER 사용자명 IDENTIFIED BY 패스워드;
DROP USER
: 사용자 삭제DROP USER 사용자명;
데이터베이스에 접근할 수 있는 권한을 부여한다.
GRANT TO
GRANT 권한 TO 사용자명; GRANT 권한 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE FROM
REVOKE 권한 FROM 사용자명; REVOKE 권한 ON 개체 FROM 사용자명;
ROLE은 세트로 생각하면 된다! 권한을 모아서 ROLE로 그룹을 지어준다. 롤의 이름은 적당히 짓는다
CREATE ROLE
GRANT ROLE
1. 롤 명을 짓는다 CREATE ROLE 롤명; 2. 롤에 권한들을 부여한다 GRANT 권한 TO 롤명; 3. 롤을 사용자에게 부여한다. GRANT 롤명 TO 사용자명;