๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€/Oracle

[ex22] alter

DDL > Object
    - ๊ฐ์ฒด ์ƒ์„ฑ: create
    - ๊ฐ์ฒด ์‚ญ์ œ: drop
    - ๊ฐ์ฒด ์ˆ˜์ •: alter
    
    DML > Data(Record)
    - ๋ฐ์ดํ„ฐ ์ƒ์„ฑ: insert
    - ๋ฐ์ดํ„ฐ ์‚ญ์ œ: delete
    - ๋ฐ์ดํ„ฐ ์ˆ˜์ •: update

 

 

    ํ…Œ์ด๋ธ” ์ˆ˜์ •ํ•˜๊ธฐ
    - ํ…Œ์ด๋ธ” ์ •์˜ ์ˆ˜์ • > ์ปฌ๋Ÿผ ์ˆ˜์ • > ์ปฌ๋Ÿผ๋ช… or ์ž๋ฃŒํ˜•(๊ธธ์ด) or ์ œ์•ฝ์‚ฌํ•ญ
    
    ํ…Œ์ด๋ธ” ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ ๋ฐœ์ƒ!!
    1. ํ…Œ์ด๋ธ” ์‚ญ์ œ(drop) > ํ…Œ์ด๋ธ” DDL(create) ์ˆ˜์ • > ์ˆ˜์ •๋œ DDL๋กœ ์ƒˆ๋กญ๊ฒŒ ํ…Œ์ด๋ธ” ์ƒ์„ฑ
        a. ๊ธฐ์กด ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์—ˆ์„ ๊ฒฝ์šฐ > ์•„๋ฌด ๋ฌธ์ œ ์—†์Œ
        b. ๊ธฐ์กด ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์—ˆ์„ ๊ฒฝ์šฐ > ๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ฐฑ์—… > ํ…Œ์ด๋ธ” ์‚ญ์ œ > ์ˆ˜์ • ํ›„ ์ƒ์„ฑ > ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ
            - ๊ณต๋ถ€ํ•  ๋•Œ ์‚ฌ์šฉ
            - ๊ฐœ๋ฐœ ์ค‘์— ์‚ฌ์šฉ
            - ์„œ๋น„์Šค ์šด์˜ ์ค‘ > ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅ!!
    
    2. alter ๋ช…๋ น์–ด ์‚ฌ์šฉ > ๊ธฐ์กด ํ…Œ์ด๋ธ” ๊ตฌ์กฐ(์ปฌ๋Ÿผ ์ •์˜) ๋ณ€๊ฒฝ
        a. ๊ธฐ์กด ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์—ˆ์„ ๊ฒฝ์šฐ > ์•„๋ฌด ๋ฌธ์ œ ์—†์Œ
        b. ๊ธฐ์กด ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์—ˆ์„ ๊ฒฝ์šฐ > ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„ 
            - ๊ณต๋ถ€ํ•  ๋•Œ ์‚ฌ์šฉ
            - ๊ฐœ๋ฐœ ์ค‘์— ์‚ฌ์šฉ
            - ์„œ๋น„์Šค ์šด์˜ ์ค‘ > ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉ > ์šด์˜ ์ค‘์—๋„ ์ด๋ฐฉ์‹์„ ์‚ฌ์šฉ ๊ธˆ์ง€

 


drop table tblEdit;

create table tblEdit (
    seq number primary key,
    data varchar2(20) not null
);


insert into tblEdit values (1, '๋งˆ์šฐ์Šค');
insert into tblEdit values (2, 'ํ‚ค๋ณด๋“œ');
insert into tblEdit values (3, '๋ชจ๋‹ˆํ„ฐ');

insert into tblEdit values (1, '๋งˆ์šฐ์Šค', 10000, '๋กœ์ง€ํ…');
insert into tblEdit values (2, 'ํ‚ค๋ณด๋“œ', 20000, 'MS');
insert into tblEdit values (3, '๋ชจ๋‹ˆํ„ฐ', 30000, 'Dell');

select * from tblEdit;

-- 1. ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ ์ถ”๊ฐ€ํ•˜๊ธฐ
-- ๊ฐ€๊ฒฉ ์ปฌ๋Ÿผ ์ถ”๊ฐ€ํ•˜๊ธฐ > price, number

-- ORA-01758: table must be empty to add mandatory (NOT NULL) column
-- not null ์ œ์•ฝ ๋ถ™์ด๋ ค๋ฉด ๋ฐ์ดํ„ฐ ์ง€์šฐ๊ณ  ํ•ด์•ผ๋จ(์ถ”์ฒœ) or null ํ—ˆ์šฉํ•œ์ฑ„๋กœ
alter table tblEdit 
    add (price number not null);

alter table tblEdit 
    add (price number null);

desc tblEdit;

delete from tblEdit;

select * from tblEdit;

alter table tblEdit
    add (memo varchar2(100) not null);


-- 2. ์ปฌ๋Ÿผ ์‚ญ์ œํ•˜๊ธฐ(๋ณต๊ตฌ ์•ˆ๋จ)
alter table tblEdit
    drop column memo;

alter table tblEdit
    drop column seq; -- PK ์ปฌ๋Ÿผ ์‚ญ์ œ > ์ ˆ๋Œ€ ๊ธˆ์ง€!!!


-- 3. ์ปฌ๋Ÿผ ์ˆ˜์ •ํ•˜๊ธฐ
insert into tblEdit values (4, '์ธํ…” i7 13์„ธ๋Œ€ ์ตœ์‹ ํ˜• ๋…ธํŠธ๋ถ');

-- 3.1 ์ปฌ๋Ÿผ์˜ ๊ธธ์ด ์ˆ˜์ •ํ•˜๊ธฐ(ํ™•์žฅ.์ถ•์†Œ)
alter table tblEdit
    modify (data varchar2(100)); -- not null/null ์„ค์ •์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€

-- 3.2 ์ปฌ๋Ÿผ์˜ ์ œ์•ฝ ์‚ฌํ•ญ ์ˆ˜์ •ํ•˜๊ธฐ
alter table tblEdit
    modify (data varchar2(100) null); -- not null > null (๋ฐ์ดํ„ฐํƒ€์ž… ๋ช…์‹œํ•ด์•ผ๋จ) 

alter table tblEdit
    modify (data varchar2(100) not null);

select * from tblEdit;

desc tblEdit;

-- 3.3 ์ปฌ๋Ÿผ์˜ ์ž๋ฃŒํ˜• ๋ฐ”๊พธ๊ธฐ > ํ…Œ์ด๋ธ” ๋น„์šฐ๊ณ  ์ˆ˜์ •
alter table tblEdit
    modify (data number); 

--์–˜๋„ ์•ˆ๋จ
alter table tblEdit
    modify (seq varchar2(30));

delete from tblEdit;

desc tblEdit;

select * from tblEdit;

--default > ๋ฐ์ดํ„ฐ ์•ˆ์ง€์›Œ๋„ ๊ฐ€๋Šฅ
alter table tblEdit
    add (price number default 0 not null);

'ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€ > Oracle' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ex24] rank  (0) 2023.03.30
[ex23] pseudo, rownum  (0) 2023.03.26
[ex21] union  (0) 2023.03.26
[ex20] view  (0) 2023.03.26
[ex19] join  (0) 2023.03.25