1-1. 관계형 데이터베이스 개요
1. 데이터베이스
2. SQL (Structured Query Language)
1. 관계형 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어
2. SQL 문장들의 종류

3. TABLE
1. 테이블 용어

2. 테이블 관계 용어들

4. ERD (Entity Relationship Diagram)

1-2. DDL(Data Definition Language)
1. 데이터 유형

2. CREATE TABLE
가. 테이블과 칼럼 정의

나. CREATE TABLE
1. 테이블 생성하는 구문 형식
• create table 테이블명 (칼럼명1 data_type [default 형식], 칼럼명2 data_type [default 형식] …);
2. 테이블 생성시 주의사항
1) 테이블 명은 객체를 의미할 수 있는 적절한 이름을 사용한다.
2) 테이블 명은 다른 테이블의 이름과 중복되지 않아야 한다.
3) 한 테이블 내에서는 칼럼명이 중복되게 지정할 수 없다.
4) 각 칼럼들은 콤마 ","로 구분되고, 테이블 생성문의 끝은 항상 세미콜론 ";"으로 끝난다.
5) 칼럼 뒤에 데이터 유형은 꼭 지정되어야 한다.
6) 테이블 명과 칼럼 명은 반드시 문자로 시작해야 하고, 벤더별로 길이에 대한 한계가 있다.
다. 제약조건 (CONSTRAINT)

라. 생성된 테이블 구조 확인
1) ORACLE : DESC 테이블명;
2) SQL Server : sp_help 'dbo.테이블명'
마. SELECT 문장을 통한 테이블 생성 사례
• CTAS : Create Table ~ As Select ~
• 예) ORACLE : Create Table team_temp as select * from team;
• 예) SQL Server : select * into team_temp from team;
3. ALTER TABLE
• 테이블 구조 변경
가. ADD COLUMN
• 기본구조 : ALTER TABLE 테이블명 ADD 추가할 칼럼명 데이터 유형;
• 예) ORACLE : ALTER TABLE PLAYER ADD (ADDRESS VARCHAR2(80));
• 예) SQL Server : ALTER TABLE PLAYER ADD ADDRESS VARCHAR(80);
나. DROP COLUMN
• 기본구조 : ALTER TABLE 테이블명 DROP COLUMN 삭제할 칼럼명;
• 예) ORACLE : ALTER TABLE PLAYER DROP COLUMN ADDRESS;
• 예) SQL Server : ALTER TABLE PLAYER DROP COLUMN ADDRESS;
다. MODIFY COLUMN
• 칼럼의 데이터 유형, 디폴트값, NOT NULL 제약조건에 대한 변경
• 기본구조 : ALTER TABLE 테이블명 MODIFY (칼럼명1 데이터 유형 [DEFAULT 식][NOT NULL], …..);
• 예) ORACLE : ALTER TABLE TEAM_TEMP MODIFY (ORIG_YYYY VARCHAR2(8) DEFAULT '20020129' NOT NULL);
• 예) SQL Server : ALTER TABLE TEAM_TEMP ALTER COLUMN ORIG_YYYY VARCHAR(8) NOT NULL;
ALTER TABLE TEAM_TEMP ADD CONSTRAINT DF_OFIG_YYYY DEFAULT '20020129' FOR ORIG_YYYY;
라. DROP CONSTRAINT
• 기본구조 : ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
• 예) ORACLE : ALTER TABLE PLAYER DROP CONSTRAINT PLAYER_FK;
• 예) SQL Server : ALTER TABLE PLAYER DROP CONSTRAINT PLAYER_FK;
마. ADD CONSTRAINT
• 기본구조 : ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건 (칼럼명);
• 예) ORACLE : ALTER TABLE PLAYER ADD CONSTRAINT PLAYER_FK FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID);
• 예) SQL Server : ALTER TABLE PLAYER ADD CONSTRAINT PLAYER_FK FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID);
4. RENAME TABLE
• 기본구조 : RENAME 변경전 테이블명 TO 변경 후 테이블명;
• 예) ORACLE : RENAME TEAM TO TEAM_BACKUP;
• 예) SQL Server : sp_rename 'dbo.TEAM', 'TEAM_BACKUP';
5. DROP TABLE
• 기본구조 : DROP TABLE 테이블명 [CASCADE CONSTRAINT];
• 예) ORACLE : DROP TABLE PLAYER;
• 예) SQL Server : DROP TABLE PLAYER;
6. TRUNCATE TABLE
• 테이블에 들어있단 모든 행이 제거되고 테이블 구조는 그대로 남겨둔다.
• 예) ORACLE : TRUNCATE TABLE TEAM;
• 예) SQL Server : TRUNCATE TABLE TEAM;
1-3. DML(Data Manipulation Language)
1. INSERT
• 테이블에 데이터를 입력
• 기본구조1(일부 데이터만 입력) : INSERT INTO 테이블명 (COLUMN_LIST) VALUES (VALUE_LIST);
• 기본구조2(전체 데이터 입력) : INSERT INTO 테이블명 VALUES (VALUE_LIST);
2. UPDATE
• 데이터 정보 수정
• 기본구조 : UPDATE 테이블명 SET 수정되어야 할 칼럼명 = 수정되기를 원하는 새로운 값;
• 예) ORACLE : UPDATE PLAYER SET BACK_NO=99;
3. DELETE
• 기본구조 : DELETE [FROM] 테이블명 [WHERE 조건절];
4. SELECT
• 데이터 조회
• 예) ORACLE : SELECT PLAYER_ID, PLAYER_NAME, POSITION FROM PLAYER;
5. 산술 연산자와 합성 연산자

1-4. TCL(Transaction Control Language)
1. 트랜잭션 개요

2. COMMIT
• 입력한 자료나 수정한 자료, 삭제한 자료에 대해서 전혀 문제가 없다고 판단되었을 경우 COMMIT으로 트랜잭션을 완료한다.
3. ROLLBACK
• 테이블 내 입력한 데이터, 수정한 데이터, 삭제한 데이터에 대하여 COMMIT 이전에는 변경사항을 ROLLBACK 명령어로 취소할 수 있다. ROLLBACK으로 데이터 변경사항이 취소되면 데이터의 이전 상태로 복구되며, 관련된 행에 대한 잠금(LOCKING)이 풀리고 다른 사용자들이 데이터 변경을 할 수 있다.
4. SAVEPOINT
• 저장점 (SAVEPOINT)을 정의하면 ROLLBACK 할 때 트랜잭션에 포함된 전체 작업을 롤백하는 것이 아니라 현 시점에서 SAVEPOINT까지 트랜잭션의 일부만 롤백할 수 있다.
• 실행문 : SAVEPOINT SVPT1;
• 롤백시 명령문 : ROLLBACK TO SVPT1;
