CREATE

TABLE을 생성 하기 위해 사용한다.

학생, 과목, 수강 TABLE을 만듭니다.

CREATE TABLE 학생 (
    학번 VARCHAR2(7),
    이름 VARCHAR2(20),
    학과번호 VARCHAR2(3),
    이수학점 INT,
    평점 FLOAT,
    PRIMARY KEY (학번)
);

CREATE TABLE 과목 (
    과목번호 VARCHAR2(5),
    과목이름 VARCHAR2(30),
    최대인원 INT,
    PRIMARY KEY (과목번호)
);

CREATE TABLE 수강 (
    학번 VARCHAR2(7),
    과목번호 VARCHAR2(5),
    PRIMARY KEY (학번, 과목번호),
    FOREIGN KEY (학번) REFERENCES 학생,
    FOREIGN KEY (과목번호) REFERENCES 과목,
);

FOREIGN KEY 추가 시 공통 속성의 자료형은 같아야 한다!

이미 존재하는 TABLE을 이용하여 새 TABLE을 만들기

CREATE TABLE NEW_TABLE_NAME AS SUB-QUERY;
형식으로 이미 있는 TABLE을 기반으로 새 TABLE 생성이 가능하다.

-- SELECT 결과로 TABLE이 생성된다.
CREATE TABLE SW공학과학생 AS
SELECT * FROM 학생 WHERE 학과번호 = '010';

INSERT

TABLE에 데이터를 추가할때 사용한다.

-- 대상 속성(필드, 열)을 생략 가능
INSERT INTO 학생 VALUES('9966666', '이순신', 010, 0, 0);

--대상 속성을 명시
INSERT INTO 학생(학번, 이름, 학과번호, 이수학점, 평점) VALUES('9966666', '이순신', 010, 0, 0);

SUB-QUERY를 통해 INSERT 하기

INSERT INTO TABLE_NAME (속성1, 속성2)
SELECT 속성1, 속성2 FROM TABLE_NAME
형식으로 INSERT가 가능하다.

INSERT INTO SW공학과학생 (학번, 이름, 학과번호)
SELECT 학번, 이름, 학과번호 FROM 학생
WHERE 학과번호 = '020';

UPDATE

이미 입력된 레코드(행, 튜플)의 데이터를 수정하기 위해 사용한다.

UPDATE 학생 SET 학과번호 = '030' WHERE 학번 = '9966666';

UPDATE 학생 SET 이수학점 = 이수학점 + 20;

DELETE

레코드를 삭제하기 위해 사용한다.
조건을 명시하지 않으면 모든 레코드가 삭제된다.

DELETE FROM 학생 WHERE 학번  = '9966666';

DROP

TABLE을 삭제하기 위해 사용한다.

DROP TABLE table_name;