데이터베이스 시스템에서 자료를 처리하는 용도로 사용되는 구조적 데이터 질의 언어
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 TOALTER 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 TOGRANT 권한 TO 사용자명; GRANT 권한 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE FROMREVOKE 권한 FROM 사용자명; REVOKE 권한 ON 개체 FROM 사용자명;
ROLE은 세트로 생각하면 된다! 권한을 모아서 ROLE로 그룹을 지어준다. 롤의 이름은 적당히 짓는다
CREATE ROLEGRANT ROLE1. 롤 명을 짓는다 CREATE ROLE 롤명; 2. 롤에 권한들을 부여한다 GRANT 권한 TO 롤명; 3. 롤을 사용자에게 부여한다. GRANT 롤명 TO 사용자명;