본문으로 바로가기

post by WHITEHATS

정보처리기사 (필기) - 관계 데이터베이스 모델과 언어 3




5. SQL(Structurecd Query Language)


정의어(DDL)

- 물리적인 구조를 정의하고 관리

- CREATE(생성)

- DROP(삭제)

- ALTER(변경)


▶ 제어어(DCL)

- 사용권한 및 무결성, 병행제어 기능

- GRANT(권한부여)

- REVOKE(권한제거)

- COMMIT(반영)

- ROLLBACK(취소)


▶ 조작어(DML)

- 데이터를 처리

- SELECT(선택)

- DELETE(삭제)

- INSERT(삽입)

- UPDATE(갱신)


5-1-1. SQL - DDL : CREATE


 CREATE : 테이블, 뷰, 인텍스, 스키마 등을 생성

CREATE TABLE 테이블명칭 (

열명칭1 특성1,

열명칭2 특성2,

열명칭3 특성3,

…,

PRIMARY KEY (열명칭),

FOREIGN KEY (열명칭) REFERENCES 참조테이블명칭(열명칭),

);


CREATE TABLE 학생 (                  

학번 CHAR(10),

이름 CHAR (5),

전화번호 CHAR (10),

과목코드 CHAR (4),

PRIMARY KEY (학번),

FOREIGN KEY (과목코드) REFERENCES 과목(과목코드),

);

->


5-1-2. SQL - DDL : VIEW


 VIEW(뷰) : 사용자에게 접근이 허용된 자료만 보여주기 위해 하나 이상의 테이블에서 유도된 가상 테이블

- 물리적으로 존재하지 않고 논리적으로만 존재


CREATE VIEW 컴퓨터_VIEW(이름, 과목) AS

SELECT 이름, 과목

FROM 학생

WHERE 과목 = ‘컴퓨터’;



5-1-3. SQL - DDL : DROP


▶ DROP : 테이블, 뷰, 인덱스, 스키마 등을 삭제


DROP TABLE 테이블명칭;

DROP TABLE 학생;


- CASCADE : 참조하는 테이블도 모두 제거

- RESTRICT : 참조하는 테이블이 있을 경우 제거하지 않음


5-1-4. SQL - DDL : ALTER


▶ ALTER : 테이블, 인덱스, 스키마 등 구조 변경


ALTER TABLE 학생 ADD 주민번호 CHAR(13);

ALTER TABLE 학생 DROP 전화번호;



5-2-1. SQL - DML : SELECT


 SELECT : 테이블에 존재하는 데이터에 대한 질의


SELECT [ALL|DISTINCT] 검색대상

FROM 테이블명

[WHERE 조건식]

[GROUP BY 열명칭]

[HAVING 검색조건]

[ORDER BY 열명칭 [ASC|DESC]];


SELECT 이름, 과목

FROM 학생

WHERE 과목 = ‘컴퓨터’;


학생


- DISTINCT : 중복된 데이터 한번만 출력

- ASC : 오름차순

- DESC : 내림차순



SELECT * FROM 학생WHERE 이름 LIKE ‘김%’; -> 김씨로 시작하는 이름을 찾아라 (김양)

SELECT * FROM 학생WHERE 성적 BETWEEN 70 AND 90; -> 80, 90, 70점의 모든 값을 추출 (김양, 이양, 황군)

SELECT * FROM 학생WHERE 전화번호 IS NULL; -> 비어있는것을 선택 황군!

SELECT * FROM 학생

WHERE 과목 = ‘컴퓨터’ 

ORDER BY 성적 DESC; -> 김양과 박군이 내림차순 (김양아래 박군 순으로 나옴)


5-2-2. SQL - DML : INSERT, UPDATE, DELETE


 INSERT : 생성된 테이블에 데이터 입력


INSERT INTO 테이블명칭

VALUES (데이터 값1, 데이터 값2, …);


INSERT INTO 학과

VALUES (‘1111’,’컴퓨터’);  -> (1111에 컴퓨터라고 입력해라)


 UPDATE : 테이블에 데이터 수정


UPDATE 테이블명칭

SET 열명칭 = 변경 값

[WHERE 조건식];


UPDATE 학과

SET 과목 = ‘컴퓨터’

WHERE 학과코드=‘1111’;  -> (1111이 영언데 컴퓨터로 바꿔라)


 DELETE : 테이블에 데이터 삭제


DELETE FROM 테이블명칭

[WHERE 조건식];


DELETE FROM 학과

WHERE 학과코드=‘1111’; -> (학과코드 1111를 지워라)



5-3. SQL - DCL


 GRENT : 권한부여


 REVOKE : 권한취소


 COMMIT : 트랜잭션 완료


 ROLLBACK : 트랜잭션 취소


GRANT SELECT ON 학생 TO 김양; -> 학생 테이블에 대한 권한을 김양한테 부여하겠다.

GRANT SELECT ON 학생 TO 김양 WITH GRANT OPTION; 

- 권한종류 : ALL, INSERT, DELETE, UPDATE, SELECT 등


REVOKE SELECT ON 학생 FROM 김양 CASCADE; -> SELECT ON 학생에서 김양한테 주어진 권한을 삭제하겠다. (CASCADE : 부여된 권한을 모두 취소하겠다.)


하얀모자의 whitehat


}