2021๋
12์ 17์ผ ๐ ํํ
ํ๋กค๋ก๊ทธ
์ด์ ๊น์ง ํ
์ด๋ธ ์กฐ์ํ๋ ์ฟผ๋ฆฌ์ ๋ํด ๋ฐฐ์ ๊ณ ์ค๋์ ํ
์ด๋ธ์ ์์ฑํ๋ ์ฟผ๋ฆฌ์ ๋ํด์ ๋ฐฐ์ ์ต๋๋ค. ์ค๋์ ์กฐ๊ธ ํท๊ฐ๋ ค์ ๋ฐฐ์ด๋ด์ฉ์ ๋ํด ๋ค์ ์ ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ณ์ ์์ฑ, ์์ , ์ญ์
CREATE USER ๊ณ์ IDENTIFIED BY ๋น๋ฐ๋ฒํธ
ALTER USER ๊ณ์
DROP USER ๊ณ์
<์์ >
-
๊ณ์ ์์ฑํ๊ธฐ
CREATE USER kitri_dev_3 IDENTIFIED BY kitri_dev_3;
-
๊ณ์ ์์ ํ๊ธฐ
ALTER USER kitri_dev_3 IDENTIFIED BY 1234;
๊ถํ ๋ถ์ฌ, ํ์
GRANT ๊ถํ TO ๊ณ์ [with grant option]
REVOKE ๊ถํ FROM ๊ณ์
*WITH GRANT OPTION : ๊ถํ์ ๋ฐ์ ๊ณ์ ์ด ๋ค๋ฅธ ๊ณ์ ์ผ๋ก ๊ฐ์ ๊ถํ์ ๋ถ์ฌํ ์ ์๊ฒ ํด์ฃผ๋ ๋ช
๋ น์ด
<๊ถํ์ข
๋ฅ>
- DB์ ์, ํ
์ด๋ธ ์์ฑ ๋ฑ ๋ง์ ๊ถํ์ ์ข
๋ฅ ์์
- ์ข
๋ฅ
-CREATE SESSION : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ ๊ถํ
-CREATE(ALTER, DROP) TABLE : ํ
์ด๋ธ ์์ฑ(๋ณ๊ฒฝ, ์ญ์ ) ๊ถํ
-CREATE(DROP) VIEW : ์ฌ์ฉ์ ์คํค๋ง์์ ๋ทฐ ์์ฑ ๊ถํ
-CREATE(ALTER, DROP) SEQUENCE : ์ฌ์ฉ์ ์คํค๋ง์์ ์ํ์ค ์์ฑ ๊ถํ
-CREATE(ALTER, DROP) PROCEDURE : ์ฌ์ฉ์ ์คํค๋ง์์ ํ๋ก์์ , ํจ์, ํจํค์ง ์์ฑ ๊ถ ํ
-CREATE(ALTER, DROP) SYNONYM : ๋์์ด ์์ฑ ๊ถํ
-CREATE(ALTER, DROP) TRIGGER : ํธ๋ฆฌ๊ฑฐ ์์ฑ ๊ถํ
<์์ >
-
๊ณ์ ์ ์ ๊ถํ ๋ถ์ฌ
GRANT CREATE SESSION TO kitri_dev_3;
-
๊ณ์ ์ ์ ๊ถํ ํ์
REVOKE CREATE SESSION FROM kitri_dev_3;
<๋กค(ROLE)>
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด์ ๋ํ ๊ถํ์ ๋ชจ์๋ ์งํฉ
- RESOURCE ๋กค
CREATE CLUSTER, CREATE PROCEDURE, CREATE SEQUENCE,
CREATE TABLE, CREATE TRIGGER
- CONNECT ๋กค
ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK,
CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM,
CREATE TABLE, CREATE VIEW
- ์ ์, ๊ฐ์ฒด ์์ฑ, ํ
์ด๋ธ์คํ์ด์ค ๋ฌด์ ํ ์ฌ์ฉ ๊ถํ ๋ถ์ฌ
GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO GUEST;
TABLE CREATE
CREATE TABLE newbook
(
bookid number,
bookname varchar2(20),
publisher varchar2(20),
price number
);
์ ์ฝ์กฐ๊ฑดํ๊ธฐ ์ ์
* ๋ฌด๊ฒฐ์ฑ์ด๋? (๐ฐ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ์ ๋์ด)
- ๋ฐ์ดํฐ์ ์ ํ์ฑ, ์ผ๊ด์ฑ์ ์๋ฏธ
- ๋ฐ์ดํฐ์ ๊ฒฐํจ์ด ์๋ ์ํ, ์ฆ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ ์ผ๊ด๋๊ฒ ์ ์งํ๋ ๊ฒ์ ์๋ฏธ
- ์ข
๋ฅ
- ๊ฐ์ฒด๋ฌด๊ฒฐ์ฑ: ๊ธฐ๋ณธํค๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ์ ๋(NULL)๊ฐ์ ๊ฐ์ง ์ ์์
- ์ฐธ์กฐ๋ฌด๊ฒฐ์ฑ: ์ธ๋ํค ๊ฐ์ ์ฐธ์กฐํ๋ ๋ฆด๋ ์ด์
(ํ
์ด๋ธ)์ ๊ธฐ๋ณธ๊ฐ๊ณผ ๋์ผํด์ผํจ
- ๋๋ฉ์ธ๋ฌด๊ฒฐ์ฑ: ์์ฑ๋ค์ ๊ฐ์ ์ ์๋ ๋๋ฉ์ธ์ ์ํ ๊ฐ์ด์ด์ผํจ (ex. ์ฑ๋ณ '๋จ','์ฌ')
- ๊ณ ์ ๋ฌด๊ฒฐ์ฑ: ํน์ ์์ฑ์ ๋ํด ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ง๋๋ก ํ ๊ฒฝ์ฐ ๊ฐ ์์ฑ๊ฐ๋ค์ ๋ฌ๋ผ์ผํจ
- NULL๋ฌด๊ฒฐ์ฑ: ํน์ ์์ฑ ๊ฐ์ NULL์ด ๋ ์ ์์
- ํค๋ฌด์
์ฑ: ๊ฐ ๋ฆด๋ ์ด์
์ ์ต์ ํ ๊ฐ ์ด์์ ํค๊ฐ ์กด์ฌํด์ผ ํจ
<์ ์ฝ์กฐ๊ฑด>
- ์ ์ฝ์กฐ๊ฑด: ๋ฐ์ดํฐ์ * ๋ฌด๊ฒฐ์ฑ์ ์งํค๊ธฐ ์ํ ์ ํ๋ ์กฐ๊ฑด
- ํ
์ด๋ธ์ ์ด์ ์ ์ฝ์กฐ๊ฑด์ ๋ฃ์
- ์ข
๋ฅ
-NOT NULL : ์ง์ ํ ์ด์ NULL์ ํ์ฉํ์ง ์์
-UNIQUE : ์ง์ ํ ์ด์ ๊ฐ์ด ์ค๋ณต๋์ง ์์์ผํจ (๋จ, NULL์ ๊ฐ์ ์ค๋ณต์์ ์ ์ธ)
-PRIMARY KEY :
์ง์ ํ ์ด์ด ์ ์ผํ ๊ฐ์ด๋ฉด์ NULL์ ํ์ฉํ์ง ์์(NOT NULL + UNIQUE)
PRIMARY KEY๋ ํ
์ด๋ธ์ ํ๋๋ง ์ง์ ๊ฐ๋ฅ
-FOREIGN KEY : ์ธ๋ํค
๋ค๋ฅธ ํ
์ด๋ธ์ ์ด์ ์ฐธ์กฐํ์ฌ ์กด์ฌํ๋ ๊ฐ๋ง ์
๋ ฅ ๊ฐ๋ฅ
-CHECK : ์ค์ ํ ์กฐ๊ฑด์์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ง ์
๋ ฅ ๊ฐ๋ฅ
-DEFAULT : ์ ์ฝ์กฐ๊ฑด์ ์๋, ๋ฐ์ดํฐ ์
๋ ฅ ์ ๊ฐ์ด ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ผ๋ก ๋ฃ์ ๊ฐ ์ง์
- ์ ์ฝ์กฐ๊ฑด ์์ฑ๋ฒ
- ์ ์ฝ์กฐ๊ฑด์ ์์
CREATE TABLE new_orders
(
orderid number(2) [CONSTRAINT PK_NEW_ORDERS_ORDERID]PRIMARY KEY,
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),
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)
);
-- ๋จ NOT NULL ์ ์ฝ์กฐ๊ฑด์ ์๋์ ์ฐ์ง์์
- ON DELETE CASCADE : ๋ถ๋ชจํ
์ด๋ธ ๊ฐ์ด ์ญ์ ๋๋ฉด ์ฐ์์ ์ผ๋ก ์์ํ
์ด๋ธ ๊ฐ ์ญ์
- ON DELETE SET NULL : ๋ถ๋ชจํ
์ด๋ธ ๊ฐ์ด ์ญ์ ๋๋ฉด ์์ํ
์ด๋ธ ๊ฐ NULL๋ก ๋ณํ
- KEY
- ์ํผํค : ์ ์ผํ ๊ฐ์ ์๋ณํ ์ ์๋ ์ฌ๋ฌ ์ปฌ๋ผ๋ค์ ์งํฉ ํค (ํ๋ฒ + ์ฃผ๋ฏผ๋ฒํธ)
- ํ๋ณดํค : ํ๋์ ํค๋ก ์ ์ผํ ๊ฐ์ ์๋ณํ ์ ์๋ ํค(ํ๋ฒ, ์ฃผ๋ฏผ๋ฒํธ)
- ๋์ฒดํค : ํ๋ณดํค ์ค ๊ธฐ๋ณธ ํค๋ฅผ ์ ์ธํ ๋๋จธ์ง ํค (์ฃผ๋ฏผ๋ฒํธ)
- ๊ธฐ๋ณธํค : ํ๋ณดํค ์ค ์ค๊ณ์์ ์ํด ์ ํ๋ ํค (ํ๋ฒ)
- ์ธ๋ํค : ์ฐธ์กฐ๋๋ ํ
์ด๋ธ์ ๊ธฐ๋ณธํค๋ฅผ ์๋ณํ ์ ์๋ ํค
ํ
์ด๋ธ(๋ฆด๋ ์ด์
)๊ฐ์ ์ฐธ์กฐ๊ด๊ณ๋ฅผ ํํํ๋ ํค
ALTER
- TABLE ๋ฑ์ ๊ฐ์ฒด๋ฅผ ์์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ช
๋ น์ด
- ALTER TABLE
- ์ปฌ๋ผ ์ถ๊ฐ, ๋ณ๊ฒฝ, ์ญ์
EX) ์ปฌ๋ผ์ถ๊ฐ
ALTER TABLE newbook ADD isbn varchar2(13);
EX) ์ปฌ๋ผ๋ณ๊ฒฝ
ALTER newbook MODIFY isbn number;
EX) ์ปฌ๋ผ์ญ์
ALTER DROP COLUMN isbn;
- ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ, ๋ณ๊ฒฝ, ์ญ์
EX) ์ ์ฝ์กฐ๊ฑด์ถ๊ฐ
ALTER newbook ADD PRIMARY KEY(bookid);
EX) ์ ์ฝ์กฐ๊ฑด๋ณ๊ฒฝ
ALTER newbook MODIFY bookid number NOT NULL;
DROP
- TABLE ๋ฑ์ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ช
๋ น์ด
- EX) ํ
์ด๋ธ ์ญ์
DROP TABLE newbook;
- ๋ง์ฝ ์ญ์ ๊ฐ ๊ฑฐ์ ๋๋ค๋ฉด ์ญ์ ํ๋ ค๋ ํ
์ด๋ธ์ด ๊ด๋ จ๋ ํ
์ด๋ธ์ ์ฐธ์กฐํ๊ณ ์๋ ๊ฒ์
TRUNCATE
- ํ
์ด๋ธ์ ์ ์ฒด๋ฐ์ดํฐ ์ญ์
- ๋กค๋ฐฑ ๋ถ๊ฐ
- TRUNCATE TABLE ํ
์ด๋ธ๋ช
- DELETE vs TRUNCATE
- DELETE๋ ๋ฐ์ดํฐ๋ง ์ญ์ ๋๋ฉฐ ํ
์ด๋ธ ์ฉ๋(TABLESPACE)๋ ์ค์ด๋ค์ง ์์
- TRUNCATE๋ ํ
์ด๋ธ์ ์ต์ด ์์ฑ๋ ์ด๊ธฐ์ํ๋ก ๋ง๋ฆ
- DELETE๋ ๋กค๋ฐฑ์ด ๊ฐ๋ฅ, TRUNCATE๋ ๋ถ๊ฐ๋ฅ