● SQL(Structured Query Language)의 종류 :
● 데이터 정의(DDL), 데이터 조작(DML), 데이터 제어(DCL), 트랜잭션 제어어(TCL)
● 데이터 정의어(Data Definition Language) : 데이터의 구조를 정의하기 위한 테이블 생성, 수정, 삭제 명령어.
● CREATE, ALTER, DROP등의 DDL, DCL은 auto commit
CREATE : 테이블 생성
DROP : 테이블 삭제
ALTER : 테이블 수정
TRUNCATE : 테이블에 있는 모든 데이터 삭제
RENAME : 테이블명 변경
● 데이터 조작어(Data Manipulation Language) : 데이터 추가, 조회, 수정 및 삭제를 위한 명령어.
SELECT : 데이터 조회
INSERT : 데이터 입력
UPDATE : 데이터 수정
DELETE : 데이터 삭제
● 데이터 제어어(Data Control Language) : 사용자에게 권한 생성 혹은 권한 삭제 명령어.
GRANT : 권한 생성
REVOKE : 권한 삭제
● 주문 ORDER1(주문번호, 주문수량, 주문일자, 물품번호, 주문자아이디)
CREATE TABLE ORDER1(
ORDNO NUMBER PRIMARY KEY,
ORDCNT NUMBER,
ORDDATE DATE,
ORDITEM NUMBER,
ORDID VARCHAR2(30),
FOREIGN KEY(ORDITEM) REFERENCES ITEM1(ITEMNO),
FOREIGN KEY(ORDID) REFERENCES MEMBER1(USERID)
);
● 물품명이 길이 30 -> 50으로 변경
ALTER TABLE ITEM1 MODIFY ITEMNAME VARCHAR2(50);
● 물품번호(숫자), 물품명(문자), 가격, 수량, 등록일
CREATE TABLE ITEM1(
ITEMNO NUMBER,
ITEMNAME VARCHAR2(30),
ITEMPRICE NUMBER,
ITEMQTY NUMBER,
ITEMDATE DATE,
PRIMARY KEY(ITEMNO)
);
● 주소컬럼 추가하기(컬럼추가)
ALTER TABLE MEMBER1 ADD USERADDR VARCHAR2(100);
● 이름 컬럼의 길이를 15 -> 20
ALTER TABLE MEMBER1 MODIFY USERNAME VARCHAR2(20);
● 테이블 생성
CREATE TABLE MEMBER1(
userid VARCHAR2(30) PRIMARY KEY,
USERPW VARCHAR2(200),
USERNAME VARCHAR2(15),
USERAGE NUMBER(3),
USERDATE DATE
);
ALTER TABLE ORDER2
ADD CONSTRAINT FK_ITEM2_TO_ORDER2
FOREIGN KEY (ITEMNO)
REFERENCES ITEM2 (ITEMNO);
ALTER TABLE ORDER2
ADD CONSTRAINT FK_MEMBER2_TO_ORDER2
FOREIGN KEY (USERID)
REFERENCES MEMBER2 (USERID);
● 테이블 지우기
DROP TABLE CLASSROOM1 CASCADE CONSTRAINTS;
-- 강의실 테이블 생성
CREATE TABLE CLASSROOM1
(
CLSNO VARCHAR2(20) NOT NULL,
CLSADDR VARCHAR2(100),
CONSTRAINT PK_CLASSROOM1 PRIMARY KEY (CLSNO)
);
● 설명추가
COMMENT ON TABLE CLASSROOM1 IS '강의실테이블';
COMMENT ON COLUMN CLASSROOM1.CLSNO IS '강의실번호';
COMMENT ON COLUMN CLASSROOM1.CLSADDR IS '강의실위치';
● 교과목테이블 생성
CREATE TABLE SUBJECT1
(
SUBCODE NUMBER NOT NULL,
SUBNAME VARCHAR2(30),
PRONO NUMBER NOT NULL,
CLSNO VARCHAR2(20) NOT NULL,
CONSTRAINT PK_SUBJECT1 PRIMARY KEY (SUBCODE)
);
COMMENT ON TABLE SUBJECT1 IS '과목테이블';
COMMENT ON COLUMN SUBJECT1.SUBCODE IS '과목코드';
COMMENT ON COLUMN SUBJECT1.SUBNAME IS '과목명';
COMMENT ON COLUMN SUBJECT1.PRONO IS '교수번호';
COMMENT ON COLUMN SUBJECT1.CLSNO IS '강의실번호';
● 교과목에 교수정보 외래키 설정
ALTER TABLE SUBJECT1
ADD CONSTRAINT FK_PROFESSOR1_TO_SUBJECT1
FOREIGN KEY (PRONO)
REFERENCES PROFESSOR1 (PRONO);
● 수강에 학생정보 외래키 설정
ALTER TABLE COURSE1
ADD CONSTRAINT FK_STUDENT1_TO_COURSE1
FOREIGN KEY (STDNO)
REFERENCES STUDENT1 (STDNO);
● MEMBER2의 USERID를 ITEM2테이블에 ITEMSELLER 외래키 연결
ALTER TABLE ITEM2
ADD CONSTRAINT FK_MEMBER2_TO_ITEM2
FOREIGN KEY (ITEMSELLER)
REFERENCES MEMBER2 (USERID);