# CREATE ALTER DROP

๊น€์œ ๋ฏธยท2021๋…„ 12์›” 18์ผ
0

2021๋…„ 12์›” 17์ผ ๐Ÿ’ ํ•œํŒŒ

ํ”„๋กค๋กœ๊ทธ

์–ด์ œ๊นŒ์ง€ ํ…Œ์ด๋ธ” ์กฐ์ž‘ํ•˜๋Š” ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ๋ฐฐ์› ๊ณ  ์˜ค๋Š˜์€ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์กฐ๊ธˆ ํ—ท๊ฐˆ๋ ค์„œ ๋ฐฐ์šด๋‚ด์šฉ์— ๋Œ€ํ•ด ๋‹ค์‹œ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ณ„์ • ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ

CREATE USER ๊ณ„์ • IDENTIFIED BY ๋น„๋ฐ€๋ฒˆํ˜ธ
ALTER USER ๊ณ„์ •
DROP USER ๊ณ„์ •

<์˜ˆ์ œ>

  1. ๊ณ„์ • ์ƒ์„ฑํ•˜๊ธฐ
    CREATE USER kitri_dev_3 IDENTIFIED BY kitri_dev_3;

  2. ๊ณ„์ • ์ˆ˜์ •ํ•˜๊ธฐ
    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 : ํŠธ๋ฆฌ๊ฑฐ ์ƒ์„ฑ ๊ถŒํ•œ

<์˜ˆ์ œ>

  1. ๊ณ„์ • ์ ‘์† ๊ถŒํ•œ ๋ถ€์—ฌ
    GRANT CREATE SESSION TO kitri_dev_3;

  2. ๊ณ„์ • ์ ‘์† ๊ถŒํ•œ ํšŒ์ˆ˜
    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 : ์ œ์•ฝ์กฐ๊ฑด์€ ์•„๋‹˜, ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ์‹œ ๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์œผ๋กœ ๋„ฃ์„ ๊ฐ’ ์ง€์ •

  • ์ œ์•ฝ์กฐ๊ฑด ์ž‘์„ฑ๋ฒ•
    1. ์ œ์•ฝ์กฐ๊ฑด์„ ์˜†์—
      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
      );
    2. ์ œ์•ฝ์กฐ๊ฑด์„ ์•„๋ž˜
      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๋Š” ๋ถˆ๊ฐ€๋Šฅ

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด