GRANT – 권한 부여 명령어
권한 종류
DB접속, 테이블 생성 등의 많은 권한의 종류가 있다.
REVOKE – 권한 회수 명령
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;