티스토리 뷰

※ 정보처리기사 실기 대비 정리입니다. 개인적인 정리용도라 자세한 설명이 부족할 수도 있습니다.

 

1. SQL은 아래 3가지로 구성되어 있다. 총 2개 글로 나누어서 정리할 예정.

  • 정의 (DDL: Data Definition Languae)
  • 조작 (DML: Data Manipulation Languae)
  • 제어 (DCL: Data Control Language) + TCL(Transaction Control Languae)

2. SQL은 대소문자를 구분하지 않는다. 그러나 예약어는 대문자로 작성하는 것이 좋다.

(실제로는 MS-SQL이냐 오라클이냐에 따라 세부 문법이 다르다. 여기서는 일반적인 문법만 다룬다.)


 

DDL이란?

DDL은 테이블과 뷰 등을 생성하고 수정, 삭제한다. 데이터가 지켜야 할 제약조건도 정의한다.

종류로는 CREATE, ALTER, DROP이 있다.

* 예제문은 아래의 <학생> 테이블을 기반으로 작성했다.

 

<학생>

 

 

1) CREATE

CREATE TABLE 학생 {
id CHAR(15),
name CHAR(10) NOT NULL,
major CHAR (20),
gender CHAR(2),
PRIMARY KEY (id),
FOREING KEY (major) REFERENCES 학과(name),
constraint gender_ck CHECK (gender='남' or gender='여')
};

- id를 기본키로 지정한다.
- name은 null일 수 없다.
- major는 <학과> 테이블의 name을 외래키로 참조한다.
- gender는 '남' 또는 '여' 만 입력가능하다. (constraint gender_ck 생략 가능)

 

<참고>

- PRIMARY KEY는 not null과 중복불가 제약을 가진다. (별도지정 필요 없음)
- UNIQUE는 중복은 허용하지 않지만 여러 개의 NULL은 허용한다. (null은 비교가 불가능하므로 여러 개가 있어도 중복이 아니다.)

 

 

2) ALTER - 테이블 수정

// ALTER TABLE 테이블명 ADD (속성명 데이터유형)
ALTER TABLE 학생 ADD (grade NUMBER(2));

 

 

3) DROP - 테이블 삭제

// DROP TABLE 테이블명
DROP TABLE 학생;
DROP TABLE 학생 CASCADE; // 참조된 테이블까지 연쇄적으로 삭제 
DROP TABLE 학생 RESTRICT; // 참조된 테이블이 있으면 삭제하지 않음

 


 

 

DCL이란?

DBA가 다른 사용자에게 권한을 부여하거나 권한을 취소할 때 사용한다.

종류로는 GRANT와 REVOKE가 있다.

 

 

1) GRANT - 권한부여

// GRANT 권한 ON 테이블명 TO 사용자;
GRANT SELECT ON 학생 TO KIM;

// GRANT 권한 ON 테이블명 TO 사용자 WITH GRANT OPTION
GRANT SELECT ON 학생 TO KIN WITH GRANT OPTION;

- KIM라는 사용자에게 학생 테이블의 SELECT 권한을 부여한다.

- KIM라는 사용자에게 학생 테이블의 SELECT 권한을 부여하고 다른 사용자에게도 SELECT 권한을 줄 수 있게 허용한다.

 

 

2) REVOKE - 권한취소

// REVOKE 권한 FROM 사용자
REVOKE SELECT UPDATE FROM KIM;
REVOKE SELECT UPDATE FROM KIM CASCADE; // KIM에게 권한을 받은 다른 유저의 권한도 연쇄적으로 삭제
REVOKE SELECT UPDATE FROM KIM RESTRICT; // KIM에게 권한을 받은 유저가 있다면 REVOKE 취소

 

 

댓글
최근에 올라온 글
최근에 달린 댓글