MySQL
마스터 테이블 생성
create table mysql.test_table1 (
deptno double primary key,
deptname varchar(20) not null
);
insert into mysql.test_table1 values (1, '총무팀');
insert into mysql.test_table1 values (2, '인사팀');
insert into mysql.test_table1 values (3, '재경팀');
insert into mysql.test_table1 values (4, '지원팀');
select * from mysql.test_table1;
서브 테이블 생성
create table mysql.test_table2 (
empno int primary key,
name varchar(20) not null,
phone varchar(15) not null,
deptno double not null,
foreign key (deptno) references mysql.test_table1 (deptno) on delete cascade
);
insert into mysql.test_table2 values(1001, '홍길동', '010-1234-5678', 1);
insert into mysql.test_table2 values(2001, '피카츄', '010-4321-8756', 2);
insert into mysql.test_table2 values(2002, '라이츄', '010-7894-1111', 2);
insert into mysql.test_table2 values(3001, '꼬부기', '010-1111-2222', 3);
select * from mysql.test_table2;
테이블 속성 확인
desc mysql.test_table1;
desc mysql.test_table2;
데이터 삭제 유의사항
- 서브테이블 on delete cascade 옵션으로 인해 마스터 테이블 row 삭제 시 해당 foreign key를 지닌 서브 테이블 데이터도 삭제됨
sql delete from mysql.test_table1 where deptno = 3;
테이블명 변경
```sql alter table mysql.test_table1 rename to mysql.dept; alter table mysql.test_table2 rename to mysql.emp; select * from mysql.dept;
### 칼럼 추가
alter table mysql.emp add (address varchar(40)); select * from mysql.emp;
### 칼럼 변경
```sql
alter table mysql.emp modify address varchar(50);
desc mysql.emp;
칼럼 삭제
alter table mysql.emp drop column address;
desc mysql.emp;
칼럼명 변경
- Oracle SQL :
alter table mysql.emp rename column (address) to (address2);
- MySQL
alter table mysql.emp change address address2 varchar(50); desc mysql.emp;
뷰 생성/조회/삭제
# 생성
create view mysql.view_emp as
select * from mysql.emp;
# 조회 : select * from mysql.view_emp;
# 삭제 : drop view mysql.view_emp;
January 17, 2020 에 작성
Tags:
MySQL