โ
alter table ํ
์ด๋ธ๋ช
add ---;ย ย ย ย : ์ปฌ๋ผ ์ถ๊ฐ, ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ
โ
alter table ํ
์ด๋ธ๋ช
modify ---; : ์ปฌ๋ผ ์์ , ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ
โ
alter table ํ
์ด๋ธ๋ช
drop ---;ย ย ย : ์ปฌ๋ผ ์ญ์ , ์ ์ฝ์กฐ๊ฑด ์ญ์
โ
alter table ํ
์ด๋ธ๋ช
rename ---; : ์ปฌ๋ผ๋ช
์์
โ ์ปฌ๋ผ ์ถ๊ฐ : alter table ํ ์ด๋ธ๋ช add ---;
use hr;
desc dept80;
select*
from dept80;
๐ธ (์์ 1) dept80 ํ ์ด๋ธ์ job_id ์ปฌ๋ผ ์ถ๊ฐ
alter table dept80
add job_id varchar(9);
์๋กญ๊ฒ ์ถ๊ฐ๋ ์ปฌ๋ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์ง๋ง ์ปฌ๋ผ์ผ๋ก ์ถ๊ฐ๋จ
์๋กญ๊ฒ ์ถ๊ฐ๋ ์ปฌ๋ผ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก null๊ฐ์ด ์ ์ฅ๋จ
๐ธ (์์ 2) dept80 ํ ์ด๋ธ์ default ๊ฐ์ด ์๋ email ์ปฌ๋ผ ์ถ๊ฐ
alter table dept80
add email varchar(30) default '๋ฏธ์
๋ ฅ';
desc dept80;
๐ธ (์์ 3) ์ฒซ๋ฒ์งธ ์ปฌ๋ผ์ผ๋ก ์ถ๊ฐํ๊ธฐ
alter table dept80
add emp_number int first;
๐ธ (์์ 4) ํน์ ์ปฌ๋ผ ๋ค์ ์ปฌ๋ผ์ผ๋ก ์ถ๊ฐํ๊ธฐ
alter table dept80
add salary int default 300 not null after last_name;
๐ธ (์์ 5) not null ์ ์ฝ์กฐ๊ฑด๊ณผ ํจ๊ป ์ปฌ๋ผ ์ถ๊ฐํ๊ธฐ
alter table dept80
add salary1 int not null after last_name;
-- last_name ์ปฌ๋ผ ๋ค์ ์ปฌ๋ผ ์ถ๊ฐ๋จ.
desc dept80;
select*
from dept80;
โ
์นผ๋ผ ์์ : alter table ํ
์ด๋ธ๋ช
modify ---;
: ๋ฐ์ดํฐํ์
, ์ปฌ๋ผ ์ฌ์ด์ฆ, default๊ฐ, not null ์ ์ฝ์กฐ๊ฑด ๋ฑ ์์ ๊ฐ๋ฅํจ.
๐ธ (์์ 1) salary ์ปฌ๋ผ์ ๋ฐ์ดํฐํ์ (int->bigint), default๊ฐ ์ญ์ , not null์ญ์ ๋ก ๋ณ๊ฒฝํ๋ ์์
alter table dept80
modify salary bigint;
desc dept80;
๐ธ (์์ 2) last_name ์ปฌ๋ผ์ ์ปฌ๋ผ์ฌ์ด์ฆ(25->30) ๋ณ๊ฒฝ, not null ์ ์งํ๋ ์์
alter table dept80
modify last_name varchar(30) not null;
๐ธ (์์ 3) salary ์ปฌ๋ผ์ default๊ฐ, not null ์ถ๊ฐํ๊ธฐ
alter table dept80
modify salary bigint default 500 not null;
โ ์ปฌ๋ผ๋ช ๋ณ๊ฒฝ : alter table ํ ์ด๋ธ๋ช rename column ๊ธฐ์กด์ปฌ๋ผ๋ช to ์์ปฌ๋ผ๋ช ;
alter table dept80
rename column hire_date to start_date;
desc dept80;
โ ์ปฌ๋ผ ์ญ์ : alter table ํ ์ด๋ธ๋ช drop ---;
alter table dept80
drop emp_number;
โ ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ
๐น primary key ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐํ๊ธฐ
alter table dept80
add primary key(employee_id);
๐น unique ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐํ๊ธฐ
alter table dept80
add unique(job_id);
๐น check ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐํ๊ธฐ
alter table dept80
add check (salary>100);
๐น foreign key ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐํ๊ธฐ
alter table dept80
add mgr_id int default 150;
alter table dept80
add foreign key(mgr_id) references dept80(employee_id);
๐น not null ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ
alter table dept80
modify annsal double(22,0) not null;
desc dept80;
โ ์ ์ฝ์กฐ๊ฑด ์ญ์
< fk, ck, uk ์ ์ฝ์กฐ๊ฑด ์ญ์ ์ ์ ์ฝ์กฐ๊ฑด๋ช ์์์ผํจ >
use information_schema;
select*
from table_constraints
where table_name = 'dept80';
๐ธ foreign key ์ ์ฝ์กฐ๊ฑด ์ญ์ ํ๊ธฐ
use hr;
alter table dept80
drop foreign key dept80_ibfk_1;
๐ธ primary key ์ ์ฝ์กฐ๊ฑด ์ญ์ ํ๊ธฐ
alter table dept80
drop primary key;
use information_schema;
select*
from table_constraints
where table_name = 'dept80';
๐ธ not null ์ ์ฝ์กฐ๊ฑด ์ญ์ ํ๊ธฐ
use hr;
alter table dept80
modify annsal double(22,0) null; -- null์ ์์ ์ด๋ ์ญ์ ํ๋๊ฒ
desc dept80;
โ
alter table ํ
์ด๋ธ๋ช
add ---;ย ย ย ย : ์ปฌ๋ผ ์ถ๊ฐ, ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ(pk, fk, uk, ck)
โ
alter table ํ
์ด๋ธ๋ช
modify ---; : ์ปฌ๋ผ ์์ , ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ/์ญ์ (nn)
โ
alter table ํ
์ด๋ธ๋ช
drop ---;ย ย ย : ์ปฌ๋ผ ์ญ์ , ์ ์ฝ์กฐ๊ฑด ์ญ์ (pk, fk, uk, ck)
โ
alter table ํ
์ด๋ธ๋ช
rename ---; : ์ปฌ๋ผ๋ช
์์
: DB์์ ํ ์ด๋ธ ์ญ์ (ํ ์ด๋ธ๊ตฌ์กฐ, ๋ฐ์ดํฐ, ์ ์ฝ์กฐ๊ฑด ๋ฑ)ํ๋ ๋ช ๋ น์ด
drop table dept80;
desc dept80;
: ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ง ๋จ๊ณ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์ญ์ ๋๋ ๋ช ๋ น์ด. ์ฆ, ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ๋น์์ง๋ ๋ช ๋ น์ด.
select *
from copy_dept; -- 32๊ฐ์ ํ์ด ์ ์ฅ๋ ํ
์ด๋ธ
truncate table copy_dept; -- ๋ชจ๋ ํ ์ญ์ ๋จ.
-- (==) delete from copy_dept;
select *
from copy_dept; -- 0๊ฐ์ ํ์ด ์กฐํ๋จ.
: ๋ทฐ(view)๋ฅผ ์์ฑ/์์ /์ญ์ ํ๋ ๋ช ๋ น์ด(DDL) : create view, alter view, drop view
[๋ฌธ๋ฒ] create view ๋ทฐ๋ช
ย ย ย ย ย ย ย as select ์ปฌ๋ผ๋ช
1, ์ปฌ๋ผ๋ช
2
ย ย ย ย ย ย ย from ํ
์ด๋ธ๋ช
---> ๋ทฐ์ base table
ย ย ย ย ย ย ย where ์กฐ๊ฑด๋ฌธ;
์ฌ์ฉ๋ฐฉ๋ฒ : ํ ์ด๋ธ๊ณผ ๋์ผํ๊ฒ ์ฌ์ฉ๋๋ค.
๐ธ (์์ 1) empvu80๋ทฐ ๋ฐ์ดํฐ ์์ฑ
create view empvu80
as select employee_id, last_name, salary, department_id
from employees
where department_id = 80;
desc empvu80;
select*
from empvu80;
๐ธ (์์ 2) deptvu๋ทฐ ์์ฑ ๋ฐ ๋ฐ์ดํฐ ์กฐ์
create view deptvu
as select*
from departments
where department_id > 200;
-- ๋ทฐ ๊ตฌ์กฐ ์กฐํ
desc deptvu;
-- ๋ทฐ ๋ฐ์ดํฐ ๊ฒ์(์ฐ๊ณ๋ departments ํ
์ด๋ธ์์ ๋ฐ์ดํฐ ๊ฒ์๋จ)
select*
from deptvu;
insert into deptvu
values(340,'AAA',null,1700);
select*
from deptvu;
select*
from departments;
๐ธ (์์ 3) ๋ณด์์ฑ ์์
use shopdb;
create view member_vu
as select member_id, member_name, birth, job
from members;
desc member_vu;
select *
from member_vu;
๐ธ (์์ 4) ๋จ์์ฑ ์์
use hr;
create view dept_sal_vu
as select d.department_name, sum(e.salary) as "๊ธ์ฌ ํฉ๊ณ",
avg(e.salary) as "๊ธ์ฌ ํ๊ท ",
min(e.salary) as "์ต์ ๊ธ์ฌ", max(e.salary) as "์ต๋ ๊ธ์ฌ"
from employees e join departments d
on e.department_id = d.department_id
group by d.department_name
order by d.department_name;
desc dept_sal_vu;
select *
from dept_sal_vu;
alter view empvu80
as select employee_id, last_name, salary, email, department_id
from employees
where department_id = 80;
desc empvu80;
select*
from empvu80;
drop view empvu80;
desc empvu80; -- ์์
์๋จ!
select*
from empvu80; -- ์์
์๋จ!
๐ฅ ๋ทฐ๋ฅผ ์ญ์ ํ๋๋ผ๋ base table์ ๋ฏธ์น๋ ์ํฅ์ ์์!
use information_schema;
show tables;
select *
from views
where table_schema = 'hr';