5일차

고규빈·2021년 12월 17일
0

DCL

  • GRANT – 권한 부여 명령어

  • 권한 종류
    DB접속, 테이블 생성 등의 많은 권한의 종류가 있다.

  • REVOKE – 권한 회수 명령

DDL

  • CREATE
    TABLE 등의 객체를 생성하기 위해 사용하는 명령어

  • 제약 조건
    제약 조건이란 데이터의 무결성을 지키기 위한 제한된 조건을 의미함.
    테이블의 열에 제약조건을 넣는다.

  • ALTER
    TABLE 등의 객체를 수정하기 위해 사용하는 명령어

  • ALTER TABLE
    컬럼 추가, 변경, 삭제
    컬럼 이름변경
    제약조건 추가, 변경, 삭제

  • DROP
    TABLE 등의 객체를 삭제하기 위해 사용하는 명령어

  • TRUNCATE
    테이블의 전체데이터 삭제
    롤백 불가

    DELETE vs TRUNCATE
    -DELETE는 데이터만 삭제 되며 테이블 용량은 줄어 들지 않는다.
    -TRUNCATE는 테이블을 최초 생성된 초기상태로 만든다.
    -DELETE는 롤백이 가능, TRUNCATE는 불가능하다.

오늘의 예제

DESC orders;

테이블 만들어보기

CREATE TABLE new_orders
(
orderid number(2) CONSTRAINT PK_NEW_ORDERS_ORDERID PRIMARY KEY,
-- PK(기본키), FK(외래키), NN(NOT NULL), CK(CHECK), UQ(UNIQUE)
-- PK_NEW_ORDERS_ORDERID
custid number(2), --REFERENCES new_customer(custid), --외래키
bookid number(2), --REFERENCES new_book(bookid), --외래키
saleprice number(8),
orderdate date DEFAULT SYSDATE
);

CREATE TABLE new_orders
(
orderid number(2),
custid number(2), --REFERENCES new_customer(custid), --외래키
bookid number(2), --REFERENCES new_book(bookid), --외래키
saleprice number(8),
orderdate date DEFAULT SYSDATE,
CONSTRAINT PK_NEW_ORDERS_ORDERID PRIMARY KEY(orderid),
CONSTRAINT FK_NEW_CUSTOMER_NEW_ORDERS_CUSTID FOREIGN KEY(custid)
REFERENCES new_customer(custid),
FOREIGN KEY(bookid) REFERENCES new_book(bookid) ON DELETE CASCADE
);

INSERT INTO new_orders (orderid, custid, bookid, saleprice, orderdate)
VALUES (1, 1, 2, 1000, SYSDATE);

SELECT * FROM new_orders;

COMMIT;

DELETE FROM new_orders;
COMMIT;

SELECT *
FROM new_book;

DELETE FROM newbook
_WHERE bookid = 2;
-------------------------------

--STUDENT(학생)
CREATE TABLE student
(
stu_no char(9) CONSTRAINT pk_student_stu_no PRIMARY KEY,
stu_name varchar2(12) NOT NULL,
stu_dept varchar2(20),
stu_grade number(1),
stu_class char(1),
stu_gender char(1) CHECK (stu_gender IN ('M','F'))
);
DROP TABLE subject;
CREATE TABLE subject
(
sub_no char(3),
sub_name varchar2(30) NOT NULL,
sub_prof varchar2(12),
sub_grade number(1),
sub_dept varchar(20),
PRIMARY KEY(sub_no)
);

CREATE TABLE enrol
(
sub_no char(3) REFERENCES subject(sub_no),
stu_no char(9),
enr_grade number(3) DEFAULT 0,
CONSTRAINT fk_student_enrol_stu_no FOREIGN KEY(stu_no) REFERENCES student(stu_no)
);

DROP TABLE enrol;


DESC new_book;
SELECT *
FROM new_book;
--NEW_BOOK 테이블에 AUTHER(저자) 컬럼 추가
ALTER TABLE new_book ADD auther varchar2(30);

--NEW_BOOK 테이블에 PAGECOUNT(페이지 수) 컬럼 추가
ALTER TABLE new_book ADD pagecount number;

--NEW_BOOK 테이블에 AUTHER 컬럼을 CHAR(20) 수정
ALTER TABLE new_book MODIFY auther CHAR(20);
ALTER TABLE new_book MODIFY pagecount number;

ALTER TABLE new_book DROP COLUMN pagecount;

--데이터가 들어가져 있는 AUTHER 컬럼 삭제
ALTER TABLE new_book DROP COLUMN auther;

-- 제약조건 삭제
ALTER TABLE new_book DROP CONSTRAINT SYS_C008323;

-- 제약조건 추가/수정
ALTER TABLE new_book MODIFY bookname varchar2(40) UNIQUE;

profile
안녕하세요

0개의 댓글