블로그 이전했습니다. https://jeongzero.oopy.io/
SQL 관련
본문 바로가기
정보처리기사/실기

SQL 관련

728x90

1. DDL 관련

 

CREATE


1) 테이블 정의

- 학번, 성명, 학과 , 학년, 학점으로 구성된 학생 테이블을 만들어라

- 학번과 학년은 숫자형 자료이며, 나머지는 문자형이다.

- 학번을 기본키로 지정한다.

- 성명 속성은 공백이 있을 수 없다.

- 학과 항목을 이용하여 수강 테이블의 학과를 참조하도록 외래키를 지정하며, 참조 테이블에서 삭제가 발생하면 NULL 값으로 하고, 수정이 발생하면 연쇄적으로 수정하도록 한다.

- 학년의 속성값을 4이하의 값을 갖도록 hak 이름으로 제약한다.


create table (

학번 INT,

성명 CHAR(5) NOT NULL,

학과 CHAR(5),

학년 INT,

학점 CHAR(5),

PRIMARY KEY(학번),

FOREIGN KEY(학과) REFFERENCES 수강(학과)

     ON DELETE SET NULL

     ON UPDATE SET CASCADE

CONSTRAINT hak CHECK(학년<=4));


2) 스키마 정의

- 스키마 이름이 JUNGBO 이고, 허가권자가 이영진이 스키마를 정의하시오

 

CREATE SCHEMA JUNGBO AUTHORIZATION 이영진;


 

3) 도메인 정의

- 한 속성값의 범위를 지정하기 위한 도메인은 CREATE DOMAIN에 의해 생성된다.

 

속성 값으로 T와 F로만 구성되는 success라는 이름의 도메인을 정의하시오(단, 속성값이 입력되지 않을 경우 기본값은 T로한다.)

 

CREATE DOMAIN success CHAR(1)

     DEFAULT 'T'

     CONSTRAINT v-sucess CHECK(VALUE IN('T','F'));


4) 인덱스 정의

- 학생 테이블의 학과 속성값을 오름차순 정렬하여, 중복을 허용하지 않도록 stud_idx 라는 이름의 인덱스를 정의하시오

 

CREATE UNIQUE INDEX stud_idx ON 학생(학과 ASC);


 

ALTER

 

ALTER TABLE 테이블 이름 ADD 속성 데이터 타입;

ALTER TABLE 테이블 이름 ALTER 속성 [SET DEFAULT];

ALTER TABLE 테이블 이름 DROP 속성 [CASECADE|RESTRICT];

 

 


DROP

 

DROP TABLE 테이블 이름 [CASCADE | RESTRICT];

DROP SCHEMA 스키마 이름 [CASECADE | RESTRICT];

DROP DOMAIN 도메인 이름 [CASCADE | RESTRICT];

DROP VIEW 뷰 이름 [CASCADE | RESTRICT];

DROP INDEX 인덱스 이름;

DROP CONSTRAINT 제약조건 이름;


 

 

2. DML 관련


SELECT [DISTINCT] 속성이름

FROM 테이블

[WHERE 조건]

[GROUP BY 속성이름 [HAVING 그룹조건]]

[ORDER BY 속성이름 [ASC | DESC]];

 

집계함수를 이용한 검색문

(SUM,AVG,MIN,MAX,COUNT)

 

학생 테이블에서 1학년 학생의 점수 합계를 1학년합계의 속성이름으로 검색하시오

SELECT SUM(점수) AS 1학년합계 FROM 학생 WHERE 학생=1; 


 

INSERT INTO 테이블[속성] VALUES(자료..);

 

UPDATE 테이블 SET 속성=변경내용 WHERE 조건

 

DELETE FROM 테이블 WHERE 조건


 

 

3. DCL 관련


GRANT 권한내용 ON 테이블이름 TO 사용자 [WITH GRANT OPTION];

 

관리자가 사용자 OTH에게 학생테이블에 대해 UPDATE할 수 있는 권한과 그 권한을 필요시 다른 사용자에게 부여할 수 있는 권한을 부여하시오.

 

- GRANT UPDATE ON 학생 TO OTH [WITH GRANT OPTION]


REVOKE 권한내용 ON 테이블이름 FROM 사용자 [CASCADE];

 

사용자 OTH에게 부여했던 학생 테이블에 대한 UPDATE 권한을 취소하시오

- REVOKE UPDATE ON 학생 FROM OTH CASCADE;

728x90