티스토리 뷰
※ 정보처리기사 실기 대비 정리입니다. 개인적인 정리용도라 자세한 설명이 부족할 수도 있습니다.
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 취소
'코딩개발' 카테고리의 다른 글
[React] Component와 Props (0) | 2019.10.24 |
---|---|
SQL(2/2) - SELECT, UPDATE, INSERT, DELETE (0) | 2019.10.07 |
[CSS] Flex Box 총정리 (0) | 2019.09.26 |
[JSON] JSON이란 무엇인가, 왜 써야 하는가 (0) | 2019.09.26 |
[Javascript] 캐러셀 슬라이더 2가지 예제 (0) | 2019.09.25 |