방대한 데이터의 세계로, JUST DO DBMS!
(1) AUTO COMMIT(자동 커밋)이 켜져 있는 상태에요.
(2) 'T'자 모양을 누르면 AUTO COMMIT이 해제돼요.
(3) AUTO COMMIT 해제 후 다시 COMMIT 명령을 실행해주기 전까지 작업 횟수가 쌓이게 돼요.
-- 테이블 생성
CREATE TABLE SAMPLE(
deptNo NUMBER(20),
deptName VARCHAR2(15),
deptLoc VARCHAR2(15),
deptManager VARCHAR2(10)
);
COMMIT;
-- 테이블 '영업부' 삭제
DELETE SAMPLE
WHERE DEPTNAME = '영업부'
;
SELECT * FROM SAMPLE s ;
DELETE SAMPLE WHERE DEPTNO = 20;
-- 삭제하기 이전(COMMIT이 선언된 시점)으로 돌아간다.
ROLLBACK;
-- 현재 시점까지 DB에 저장한다.
COMMIT
-- NOT NULL
CREATE TABLE null_test(
col1 varchar2(20) NOT NULL,
col2 varchar2(20) NULL,
col3 varchar2(20)
);
INSERT INTO NULL_TEST (COL1, COL2)
VALUES ('aa', 'bb')
;
/*
* COL1 이 NOT NULL 이기 때문에 오류가 발생
*/
--INSERT INTO NULL_TEST (COL2, COL3)
--VALUES ('aa', 'bb')
--;
INSERT INTO NULL_TEST (COL1, COL3)
VALUES ('cc', 'dd')
;
SELECT *
FROM NULL_TEST nt
;
-- UNIQUE
CREATE TABLE UNIQUE_TEST(
COL1 VARCHAR2(20) UNIQUE NOT NULL,
COL2 VARCHAR2(20) UNIQUE,
COL3 VARCHAR2(20) NOT NULL,
COL4 VARCHAR2(20) NOT NULL,
CONSTRAINTS TEMP_UNIQUE UNIQUE(COL3, COL4) --TEMP_UNIQUE : 제약조건의 이름
);
INSERT INTO UNIQUE_TEST (COL1, COL2, COL3, COL4)
VALUES ('aa', 'bb', 'cc', 'dd')
;
INSERT INTO UNIQUE_TEST (COL1, COL2, COL3, COL4)
VALUES ('a2', 'b3', 'c4', 'd5')
;
SELECT *
FROM UNIQUE_TEST
;
UPDATE UNIQUE_TEST
SET COL1 = 'aa'
WHERE COL2 = 'b2'
;
INSERT INTO UNIQUE_TEST
VALUES ('a3', NULL, 'c3', 'c4')
;
INSERT INTO UNIQUE_TEST
VALUES ('a4', NULL, 'c4', 'c3')
;
CREATE TABLE UNIQUE_TEST2(
COL1 VARCHAR2(20),
COL2 VARCHAR2(20),
CONSTRAINTS TEMP_UNIQUE2 UNIQUE(COL1, COL2)
);
SELECT * FROM UNIQUE_TEST2 ut;
INSERT INTO UNIQUE_TEST2
VALUES ('aa', 'aa');
INSERT INTO UNIQUE_TEST2
VALUES ('aa', 'bb');
INSERT INTO UNIQUE_TEST2
VALUES ('aa', 'cc');
SELECT * FROM UNIQUE_TEST2 ut;
-- check
CREATE TABLE CHECK_TEST(
GENDER VARCHAR2(10) NOT NULL,
CONSTRAINTS CHECK_GENDER CHECK( GENDER IN('M', 'F') )
);
SELECT * FROM CHECK_TEST;
INSERT INTO CHECK_TEST VALUES ('M');
INSERT INTO CHECK_TEST VALUES ('여성');
-- 제약 조건에 벗어나는 데이터가 들어가면 오류가 발생된다.
-- 기본키 (PRIMARY KEY)
CREATE TABLE PRIMARY_TEST( -- PK 제약조건을 거는 방법(1)
STUDENT_ID NUMBER(10) PRIMARY KEY,
NAME VARCHAR2(20)
);
SELECT * FROM PRIMARY_TEST ;
-- ----------------------------------------------------------
CREATE TABLE PRIMARY_TEST2( -- PK 제약조건을 거는 방법(2)
STUDENT_ID NUMBER(10),
NAME VARCHAR2(20),
CONSTRAINTS STUDENT_PK PRIMARY KEY(STUDENT_ID)
);
SELECT * FROM PRIMARY_TEST2;
-- ----------------------------------------------------------
CREATE TABLE PRIMARY_TEST3(
STUDENT_ID NUMBER(10),
NAME VARCHAR2(20)
);
ALTER TABLE PRIMARY_TEST3 -- PK 제약조건을 거는 방법(3)
ADD CONSTRAINTS STUDENT_PK3 PRIMARY KEY(STUDENT_ID)
;
SELECT * FROM PRIMARY_TEST3 pt;
출처
https://media.giphy.com/media/1hVi7JFFzplHW/giphy.gif
https://media.giphy.com/media/jUwpNzg9IcyrK/giphy.gif