● 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);

0개의 댓글