create table usertbl
(userid char(8) not null,
name varchar(10) not null,
birthyear int not null,
constraint primary key pk_usertbl_userid(userid) -- 기본키 생성방법
두 테이블 사이의 관계 선언하여 무결성 보장
설정하면 다른 테이블에 의존
기준 테이블의 열은 반드시 PRIMARY KEY이거나 UNIQUE 제약 조건 설정 되어 있어야 함
ON DELETE CASCADE 또는 ON UPDATE CASCADE
- 기준 테이블의 데이터가 변경되었을 때 외래 키 테이블도 자동으로 적용되도록 설정
#생성 방법 1
CREATE TABLE usertbl
(userid char(8) not null PRIMARY KEY,
name varchar(10) not null,
birthyear int not null);
CREATE TABLE buytbl
(num int AUTO_INCREMENT not null PRIMARY KEY,
userid char(8) not null,
prodName char(8) not null,
FOREIGN KEY(userid) REFERENCES usertbl(userid) --외래키 참조
);
#생성 방법 2 - ALTER TABLE
CREATE TABLE buytbl
(num int AUTO_INCREMENT not null PRIMARY KEY,
userid char(8) not null,
prodName char(8) not null,
);
ALTER TABLE buytbl
ADD CONSTRAINT FK_userTBL_buyTBL
FOREIGN KEY(userid)
REFERENCES usertbl(userid);
테이블에 추가,변경,수정,삭제 모두 사용
기본적으로 가장 뒤에 추가
순서를 지정하려면 제일 뒤에 FIRST 또는 ALTER 열 이름 지정
#추가
ALTER TABLE usertbl
ADD homepage VARCHAR(30) -- 열 추가
DEFAULT 'www.naver.com' -- 디폴트 값
NULL; -- NULL 허용
#삭제
ALTER TABLE usertbl
DROP COLUMN mobile1;
#데이터형식 변경
ALTER TABLE usertbl
CHANGE COLUMN name uName VARCHAR(20) NULL;
#제약 조건 추가 및 삭제
ALTER TABLE usertbl
DROP PRIMARY KEY;
create view v_usertbl
as
select userid, name, addr from usertbl;
--------
create view v_userbuytbl
as
select u.userid, u.name, b.prodName, u.addr,
CONCAT(u.mobile1, u.mobile2) as '연락처'
from usertbl u
inner join buytbl b
on u.userid = b.userid;
#실행
select * from v_userbuytbl where name = '김범수';