반응형
[0] DDL, DML, DCL
DDL (데이터 정의어) : 데이터베이스를 정의하는 언어로서 , 삭제, 생성 수정 등의 데이터의 전체 골격을 결정하는 역할을 수행 합니다.
ex) CREATE, ALTER, DROP -> CAD
DML (데이터 조작어 ) : 정의된 데이터베이스에 입력된 레코드를 수정 하거나 삭제 조회 하는 역할을 수행 합니다.
ex) SELECT, INSERT, DELETE, UPDATE -> SIDU
DCL (데이터 제어어 ) 데이터 베이스에 접근하거나 객체에 권한을 주는 역할을 수행 합니다.
ex) GRANT, REVOKE, COMMIT, ROLLBACK -> GRCR
[1] CREATE
Q 01) 테이블 생성 예제
//ORDER INFO 테이블을 생성 CREATE TABLE ORDER_INFO ( ORDER_ID NUMBER NOT NULL, USER_ID NUMBER NOT NULL, USER_NM VARCHAR(20) NOT NULL, ADDRESS VARCHAR(200) NOT NULL, TOT_PRICE NUMBER DEFAULT '0', // 값이 들어오지 않을 경우 기본값 0 GENDER CHAR(1) NOT NULL, ORDER_CI VARCHAR(100) NULL, // ORDER_ID 속성에 대해 기본키 지정(개체 무결성 제약 조건) CONSTRAINTS ORDER_PK PRIMARY KEY (ORDER_ID), // ORDER_CI 속성에 대해 고유값 제약 지정 CONSTRAINTS UNIQUE_CI UNIQUE (ORDER_CI), // GENDER 속성에 대해 M, F 값만 받도록 설정(도메인 무결성 제약조건) CONSTRAINTS CHK_GENDER CHECK(GENDER IN ('M', 'F') ); CREATE TABLE ORDER_ITEM ( ITEM_ID NUMBER NOT NULL, ORDER_ID NUMBER NOT NULL, PRODUCT_ID NUMBER NOT NULL, PRICE NUMBER DEFAULT '0', // ITEM_ID 속성에 대해 기본키 지정(개체 무결성 제약조건) PRIMARY KEY(ITEM_ID), // ORDER_ID 속성에 대해 외래키 지정(참조 무결성 제약조건) // 대상은 ORDER_INFO 테이블에 ORDER_ID 속성을 지정 // ORDER_INFO 테이블 ORDER_ID 수성 시 제한속성, 삭제 시 연쇄삭제 지정 CONSTRAINTS FK_ORDER_ID FOREIGN KEY(ORDER_ID) REFERENCES ORDER_INF(ORDER_ID) ON UPDATE RESTRICT ON DELETE CASCADE ) |
Q 02) INDEX 생성 예제
// ORDER_INFO 테이블에 인덱스 생성 // 인덱스 테이블에 들어갈 속성은 USER_NM 컬럼과 GENDER 컬럼 // USER_NM 은 오름차순, GENDER 는 내림차순으로 인덱스 테이블에 추가됨 CREATE INDEX idx_order ON ORDER_INFO (USER_NM ASC, GENDER DESC); |
Q 03) VIEW 생성 예제
// 성별이 여성인 회원의 회원정보를 가져오는 VIEW 생성 CREATE OR REPLACE VIEW V_ORDER_INFO_F AS SELECT ORDER_ID, USER_ID, USER_NM FROM ORDER_INFO WHERE GENDER = 'F' // 성별이 남성인 회원의 회원정보를 가져오는 VIEW 생성 CREATE OR REPLACE VIEW V_ORDER_INFO_M AS SELECT ORDER_ID, USER_ID, USER_NM FROM ORDER_INFO WHERE GENDER = 'M' |
Q 04) 트리거 생성 예제
//INSERT가 된 이후 TB_GOODS의 nStock 개수와 새롭게 등록된 nStock 의 개수를 더해서 업데이트 해준다. CREATE TRIGGER TRIGGER_GOODS_STOCK AFTER INTERT ON TB_GOODS_STOCK FOR EACH ROW BEGIN UPDATE TB_GOODS SET nStock = nStock + NEW.nStock WHERE idx = NEW.p_idx; END |
Q 05) 프로시저 생성 예제
CREATE OR REPLACE PROCEDURE 프로시저명 (변수1 IN 변수타입, 변수2 OUT 변수타입, 변수3 IN OUT 변수타입....) IS 변수 처리부 BEGIN 처리내용 EXCEPTION 예외처리부 END; |
Q 06) 파티션 생성 예제
-- 범위 분할 파티션 CREATE TABLE TB_USER ( id INT, year INT ) PARTITON BY RANGE (year) ( PARTITION U1 VALUES LESS THAN (2000), PRATITION U2 VALUES LESS THAN (2010), PARTITION U3 VALUES LESS THAN (2020) ); -- 목록 분할 파티션 CREATE TABLE TB_STUDENT ( id INT, grade INT ) PARTITION BY LIST (grade) ( PARTITION high_grade VALUES IN (1, 2, 3), PARTITION low_grade VALUES IN (4, 5, 6) ); |
[2] DROP
Q 01) 테이블 삭제
//회원 테이블 삭제 DROP TABLE 회원 |
Q 02) 뷰 삭제
// USER_VIEW 삭제 DROP VIEW USER_VIEW; |
Q 03) 인덱스 삭제
// USER_INDEX 삭제 DROP INDEX USER_INDEX; |
[3] ALTER
Q 01) 속성 추가
// 회원 테이블에 ADDR 속성 추가 ALTER TABLE 회원 ADD ADDR VARCHAR(200) null; |
Q 02) 속성 변경
// 회원 테이블에 AGE 속성 INT로 변경 ALTER TABLE 회원 MODIFY AGE INT(11); |
Q 03) 속성 삭제
// 회원 테이블에 AGE 속성 삭제 ALTER TABLE 회원 DROP COLUMN AGE; |
Q 04) INDEX 변경
// 회원명 INDEX를 성명로 변경 ALTER TABLE 회원명 RENAME TO 성명 // INDEX 속도가 저하되거나 깨졌을 경우 INDEX 재구성 ALTER INDEX 회원명 REBUILD // INDEX 비활성화 ALTER INDEX 회원명 UNUSABLE |
[4] TRUNCATE
Q 01) 테이블 내용 비우기
// 회원 테이블 내용 삭제 TRUNCATE [TABLE] 회원; |
반응형
'자격증 > 정보처리기사 실기 문제 풀이' 카테고리의 다른 글
흥달쌤 정보처리기사 실기 데이터베이스 문제(DML(Data Manipulation Language)) (0) | 2023.04.06 |
---|---|
흥달쌤 정보처리기사 실기 데이터베이스 문제(DCL) (0) | 2023.04.05 |
흥달쌤 정보처리기사 실기 데이터베이스 문제(관계대수 & 관계해석) (0) | 2023.04.01 |
시나공 정보처리기사 실기 10장 프로그래밍 언어 활용 문제 풀이 (6) | 2021.10.10 |
시나공 정보처리기사 실기 8장 SQL 응용 문제 풀이 (0) | 2021.10.10 |