DBMS alter, index, view - swkim0128/PARA GitHub Wiki


type: Database archive: false

SQL - alter


  • column ์ถ”๊ฐ€

    alter table table_name
    add column col1 int not null auto_increment first,
    add primary key(col1);
    
    -- ํ•„๋“œ๋ช… col1์€ ํ•„๋“œ๋ช… col2 ๋‹ค์Œ์— ์ƒˆ๋กœ ์ƒ๊น๋‹ˆ๋‹ค.
    alter table table_name
    add column col1 varchar
    after col2;

    first, second, third, fourth, ..., last (mysql์—์„œ๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

  • ํ…Œ์ด๋ธ” ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ•

    alter table table_name1
    rename to table_name2;
  • ์—ด ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ•

    alter table table_name
    change column col1 col2 varchar(80)
    ...
    change column col3 col4 varchar(20);

    ๊ธฐ์กด์˜ ์ปฌ๋Ÿผ1์„ ์ปฌ๋Ÿผ2๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    ๋ฌด์ž์—ด์„ ์ˆซ์žํ˜• ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ๊ธธ์ด๋ฅผ 80์„ ๊ธธ์ด 20์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋ถ„์„ ์†์‹คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    alter table table_name
    modify column col1 varchar(20);

    ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ์ด๋ฆ„์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ํƒ€์ž…๊ณผ ๊ธธ์ด๋งŒ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

  • ์—ด ์‚ญ์ œ ๋ฐฉ๋ฒ•

    alter table table_name
    drop column col1;
  • ๊ธฐ๋ณธ ํ‚ค ์‚ญ์ œ ๋ฐฉ๋ฒ•

    alter table table_name
    drop primary key;
    -- auto_increment๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    
    alter table table_name
    modify column col1 int;
    
    alter table table_name
    drop primary key;
    --  2๋‹จ๊ณ„ ๋ช…๋ น์–ด๋กœ ์ž๋™ ์ฆ๊ฐ€๋ฅผ ์ทจ์†Œ ํ›„ ๊ธฐ๋ณธํ‚ค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ํ‚ค ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•

    alter table table_name
    change column col1 col2 int not null auto_increment,
    add primary key(col1);
    
    -- ๋˜๋Š”
    alter table table_name
    modify column col1 int not null auto_increment,
    add primary key(col1);

์ถœ์ฒ˜:

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=50after&logNo=220929419535

index


์ธ๋ฑ์Šค๋ž€ ์ถ”๊ฐ€์ ์ธ ์“ฐ๊ธฐ ์ž‘์—…๊ณผ ์ €์žฅ ๊ณต๊ฐ„์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ํฌํ•จํ•œ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๊ณ  ์žˆ๋‹ค.

B-Tree ์ธ๋ฑ์Šค ๊ตฌ์กฐ

  • ์ธ๋ฑ์Šค ํƒ์ƒ‰์€ Root โ†’ branch โ†’ leaf โ†’ ๋””์Šคํฌ ์ €์žฅ์†Œ ์ˆœ์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.
  • ์ธ๋ฑ์Šค์˜ ๋‘ ๋ฒˆ์งธ ์ปฌ๋Ÿผ์€ ์ฒซ ๋ฒˆ์งธ ์ปฌ๋Ÿผ์— ์˜์กดํ•ด์„œ ์ •๋ ฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋””์Šคํฌ์—์„œ ์ฝ๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฝ๋Š” ๊ฒƒ ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ํ›จ์”ฌ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.
  • ์ธ๋ฑ์Šค ๊ฐฏ์ˆ˜๋Š” 3~4๊ฐœ ์ •๋„๊ฐ€ ์ ๋‹นํ•ฉ๋‹ˆ๋‹ค.

index์˜ ๊ด€๋ฆฌ


dbms๋Š” index๋ฅผ ํ•ญ์ƒ ์ตœ์‹ ์˜ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•ด์•ผ ์›ํ•˜๋Š” ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค๊ฐ€ ์ ์šฉ๋œ ์ปฌ๋Ÿผ์— insert, update, delete๊ฐ€ ์ˆ˜ํ–‰๋œ๋‹ค๋ฉด ๊ฐ๊ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์ถ”๊ฐ€์ ์œผ๋กœ ํ•ด์ฃผ์–ด์•ผ ํ•˜๋ฉฐ ๊ทธ์— ๋”ฐ๋ฅธ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

  • insert : ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•จ.
  • delete : ์‚ญ์ œํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•จ.
  • update : ๊ธฐ์กด์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ฐฑ์‹ ๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•จ.

์ธ๋ฑ์Šค(index)์˜ ์žฅ์ ๊ณผ ๋‹จ์ 


์žฅ์ 

  • ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•˜๋Š” ์†๋„์™€ ๊ทธ์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ์ „๋ฐ˜์ ์ธ ์‹œ์Šคํ…œ์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

๋‹จ์ 

  • ์ธ๋ฑ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด DB์˜ ์•ฝ 10%์— ํ•ด๋‹นํ•˜๋Š” ์ €์žฅ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค.
  • ์ธ๋ฑ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.
  • ์ธ๋ฑ์Šค๋ฅผ ์ž˜๋ชป ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ์—ญํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

์ธ๋ฑ์Šค(index)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€ ๊ฒฝ์šฐ


  • ๊ทœ๋ชจ๊ฐ€ ์ž‘์ง€ ์•Š์€ ํ…Œ์ด๋ธ”
  • INSERT, UPDATE, DELETE๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์ปฌ๋Ÿผ
  • JOIN์ด๋‚˜ WHERE ๋˜๋Š” ORDER BY์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋Ÿผ
  • ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต๋„๊ฐ€ ๋‚ฎ์€ ์ปฌ๋Ÿผ

์ธ๋ฑ์Šค ์ปฌ๋Ÿผ ๊ธฐ์ค€


1๊ฐœ์˜ ์ปฌ๋Ÿผ๋งŒ ์ธ๋ฑ์Šค๋ฅผ ๊ฑธ์–ด์•ผ ํ•œ๋‹ค๋ฉด, ํ•ด๋‹น ์ปฌ๋Ÿผ์€ ์นด๋””๋„๋ฆฌํ‹ฐ(Cardinality)๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๊ฒƒ์„ ์žก์•„์•ผ ํ•œ๋‹ค๋Š” ์ .

์นด๋””๋„๋ฆฌํ‹ฐ(Cardinality)๋ž€ ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ์ค‘๋ณต๋œ ์ˆ˜์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ์„ฑ๋ณ„, ํ•™๋…„ ๋“ฑ์€ ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋‚ฎ๋‹ค๊ณ  ์–˜๊ธฐํ•ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋Œ€๋กœ ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ, ๊ณ„์ขŒ๋ฒˆํ˜ธ ๋“ฑ์€ ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋†’๋‹ค๊ณ  ์–˜๊ธฐํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ์œผ๋กœ ์ธ๋ฑ์Šค ๊ตฌ์„ฑ ์‹œ ๊ธฐ์ค€

๊ฒฐ๋ก ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์žก๋Š”๋‹ค๋ฉด ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋†’์€ ์ˆœ์—์„œ ๋‚ฎ์€ ์ˆœ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋” ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ์œผ๋กœ ์ธ๋ฑ์Šค ์‹œ ์กฐ๊ฑด ๋ˆ„๋ฝ

์กฐํšŒ ์ฟผ๋ฆฌ ์‚ฌ์šฉ ์‹œ ์ธ๋ฑ์Šค๋ฅผ ์žก์œผ๋ ค๋ฉด ์ตœ์†Œํ•œ ์ฒซ๋ฒˆ ์งธ ์ธ๋ฑ์Šค ์กฐ๊ฑด์€ ์กฐํšŒ์กฐ๊ฑด์— ํฌํ•จ๋˜์–ด์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค ์ปฌ๋Ÿผ์ด ์กฐํšŒ ์ฟผ๋ฆฌ์— ์—†์œผ๋ฉด ์ธ๋ฑ์Šค๋ฅผ ํƒ€์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

index ์ƒ์„ฑ, ์‚ญ์ œ


-- ์ธ๋ฑ์Šค ์ถ”๊ฐ€๋กœ ์ƒ์„ฑ
create index idx on table_name (col1, col2, ..., colN);

-- ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹œ ์ธ๋ฑ์Šค ์ƒ์„ฑ
create table `table_name` (
	...
	...
	index idx_name (col1, col2)
	-- or
	unique index idx_name (col1) -- ํ•ญ์ƒ ์œ ์ผ ํ•ด์•ผํ•จ.
);

-- ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€
alter table table_name
add index idx_name (col1);

-- ์ธ๋ฑ์Šค ๋ณด๊ธฐ
show index from table_name;

-- ์ธ๋ฑ์Šค ์‚ญ์ œ
alter table table_name drop index idx_name

index ์กฐํšŒ


select col1, col2, ... colN
from idx_name
where table_name = 'table_name';

index rebuild


์ธ๋ฑ์Šค๋ฅผ ๋ฆฌ๋นŒ๋“œํ•˜๋Š” ์ด์œ 

์ธ๋ฑ์Šค ํŒŒ์ผ์€ ์ƒ์„ฑ ํ›„ insert, update, delete๋“ฑ์„ ๋ฐ˜๋ณตํ•˜๋‹ค๋ณด๋ฉด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ๋‹ค.

์ƒ์„ฑ๋œ ์ธ๋ฑ์Šค๋Š” ํŠธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ, ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ์ด ์˜ค๋žซ๋™์•ˆ ์ผ์–ด๋‚˜๋‹ค๋ณด๋ฉด ํŠธ๋ฆฌ์˜ ํ•œ์ชฝ์ด ๋ฌด๊ฑฐ์›Œ์ ธ ์ „์ฒด์ ์œผ๋กœ ํŠธ๋ฆฌ์˜ ๊นŠ์ด๊ฐ€ ๊นŠ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

-- ์ธ๋ฐ์Šค ๋ฆฌ๋นŒ๋“œ
alter index idx_name rebuild;

-- ์ „์ฒด ์ธ๋ฑ์Šค ๋ฆฌ๋นŒ๋“œ ์ฟผ๋ฆฌ๋ฌธ
SELECT 'ALTER INDEX '||INDEX_NAME||' REBUILD; 'FROM USER_INDEXES;

์ถœ์ฒ˜:

https://mangkyu.tistory.com/96 [MangKyu's Diary]

https://huskdoll.tistory.com/605

https://jojoldu.tistory.com/243

https://velog.io/@gillog/SQL-Index์ธ๋ฑ์Šค

view


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

๋ทฐ๋Š” ์ €์žฅ์žฅ์น˜ ๋‚ด์— ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์กด์žฌํ•˜์ง€ ์•Š์ง€๋งŒ ์‚ฌ์šฉ์ž์—๊ฒŒ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ„์ฃผ๋œ๋‹ค.

๋ทฐ๋Š” ๋ฐ์ดํ„ฐ ๋ณด์ •์ž‘์—…, ์ฒ˜๋ฆฌ๊ณผ์ • ์‹œํ—˜ ๋“ฑ ์ž„์‹œ์ ์ธ ์ž‘์—…์„ ์œ„ํ•œ ์šฉ๋„๋กœ ํ™œ์šฉ๋œ๋‹ค.

๋ทฐ๋Š” ์กฐ์ธ๋ฌธ์˜ ์‚ฌ์šฉ ์ตœ์†Œํ™”๋กœ ์‚ฌ์šฉ์ƒ์˜ ํŽธ์˜์„ฑ์„ ์ตœ๋Œ€ํ™” ํ•œ๋‹ค.

๋ทฐ์˜ ํŠน์ง•


๋ทฐ๋Š” ๊ธฐ๋ณธํ…Œ์ด๋ธ”๋กœ๋ถ€ํ„ฐ ์œ ๋„๋œ ํ…Œ์ด๋ธ”์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์กฐ์ž‘๋„ ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”๊ณผ ๊ฑฐ์˜ ๊ฐ™๋‹ค.

๋ทฐ๋Š” ๊ฐ€์ƒ ํ…Œ์ด๋ธ”์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.

๋ฐ์ดํ„ฐ์˜ ๋…ผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋ทฐ๋กœ ์ •์˜ํ•ด์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•˜๊ณ  ๋ช…๋ น๋ฌธ์ด ๊ฐ„๋‹จํ•ด์ง„๋‹ค.

๋ทฐ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ฒŒ ํ•˜๋ฉด ๋ทฐ์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜๋Š” ํšจ์œจ์ ์ธ ๊ธฐ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ํฌํ•จํ•œ ์†์„ฑ(์—ด) ์ง‘ํ•ฉ์œผ๋กœ ๋ทฐ๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ์ง€๋งŒ ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹ , ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ผ๋‹จ ์ •์˜๋œ ๋ทฐ๋Š” ๋‹ค๋ฅธ ๋ทฐ์˜ ์ •์˜์— ๊ธฐ์ดˆ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

๋ทฐ๊ฐ€ ์ •์˜๋œ ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์ด๋‚˜ ๋ทฐ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๊ทธ ํ…Œ์ด๋ธ”์ด๋‚˜ ๋ทฐ๋ฅผ ๊ธฐ์ดˆ๋กœ ์ •์˜๋œ ๋‹ค๋ฅธ ๋ทฐ๋„ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋œ๋‹ค.

๋ทฐ(View)์‚ฌ์šฉ์‹œ ์žฅ ๋‹จ์ 


์žฅ์ 

๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.

๋™์ผ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋™์‹œ์— ์—ฌ๋Ÿฌ์‚ฌ์šฉ์ž์˜ ์ƒ์ดํ•œ ์‘์šฉ์ด๋‚˜ ์š”๊ตฌ๋ฅผ ์ง€์›ํ•ด ์ค€๋‹ค.

์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๊ด€๋ฆฌ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

์ ‘๊ทผ ์ œ์–ด๋ฅผ ํ†ตํ•œ ์ž๋™ ๋ณด์•ˆ์ด ์ œ๊ณต๋œ๋‹ค.

๋‹จ์ 

๋…๋ฆฝ์ ์ธ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.

ALTER VIEW๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์ฆ‰ ๋ทฐ์˜ ์ •์˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

๋ทฐ๋กœ ๊ตฌ์„ฑ๋œ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹ , ์—ฐ์‚ฐ์— ์ œ์•ฝ์ด ๋”ฐ๋ฅธ๋‹ค.

๋ทฐ(view)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 


์ž์ฃผ ์“ฐ๋Š” ์ฟผ๋ฆฌ๋ฌธ์„ ์•ˆ์“ฐ๊ณ  ํ…Œ์ด๋ธ”๋งŒ ์กฐํšŒํ•˜๋ฉด ๋œ๋‹ค.

๋ณด์•ˆ์— ์œ ๋ฆฌํ•˜๋‹ค.

๋ทฐ ํ…Œ์ด๋ธ”์— ์ž๋ฃŒ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์€ ์‹ค์ฒด ํ…Œ์ด๋ธ”์— ๋ฐ˜์˜๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜๋ฅผ ์š”ํ•œ๋‹ค.

๋ทฐ(view) ์ƒ์„ฑ, ์‚ญ์ œ


-- ์ƒ์„ฑ
create view view_name as select ๊ตฌ๋ฌธ;

create view view_name
as select col1, col2, ..., colN
from table_name
where condition;

-- * ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์˜ ์นผ๋Ÿผ์„ ๋ชจ์•„์„œ (join) ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์งˆ์˜ํ•  ์ˆ˜ ์žˆ์Œ.

-- ์‚ญ์ œ
drop view view_name;

with check option / with read only option


with check option

  • ์กฐ๊ฑด ์ปฌ๋Ÿผ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ์˜ต์…˜

    ๋ทฐ๋ฅผ ์ •์˜ํ•˜๋Š” ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฌธ์— where ์ ˆ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ธฐ๋ณธ ํ…Œ์ด๋ธ” ์ค‘ ํŠน์ • ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ๋กœ์šฐ(ํ–‰)๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ทฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์ด๋•Œ where ์ ˆ์— with check option์„ ๊ธฐ์ˆ ํ•˜๋ฉด ๊ทธ ์กฐ๊ฑด์— ์˜ํ•ด ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์—์„œ ์ •๋ณด๊ฐ€ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์กฐ๊ฑด์— ์‚ฌ์šฉ๋˜์–ด์ง„ ์ปฌ๋Ÿผ ๊ฐ’์€ ๋ทฐ๋ฅผ ํ†ตํ•ด์„œ๋Š” ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

create or replace view view_name
as select col1, col2, ..., colN
from table_name
where col1='' with check option;

with read only

  • ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์˜ ์–ด๋–ค ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด์„œ๋„ ๋ทฐ๋ฅผ ํ†ตํ•œ ๋‚ด์šฉ ์ˆ˜์ •์„ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์˜ต์…˜.
create or replace view view_name
as select col1, col2, ..., colN
from table_name
where col1='' with read only;

์ถœ์ฒ˜:

https://coding-factory.tistory.com/224

https://sassun.tistory.com/92

โš ๏ธ **GitHub.com Fallback** โš ๏ธ