TABLE 다루기
TABLE
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;