CS/데이타베이스
[실습] 키 생성
코딩하는 포메라니안
2021. 10. 20. 20:22
1. 기본키 생성
- table 정의할 때, 기본키로 지정할 애트리뷰트의 뒤에 'PRIMARY KEY'를 붙여준다.
2. 외래키 생성
FOREIGN KEY REFERENCES 테이블이름(애트리뷰트이름)
- "테이블이름"의 "애트리뷰트이름"을 외래키로 쓰겠다.
3. 제약조건
1. PRIMARY KEY (기본키)
- 중복 불가
- NULL값 입력 불가
2. UNIQUE
- 중복불가
- NULL 허용
3. AUTO_INCREMENT를 지정한 열은 반드시 Primary나 Unique로 지정해줘야 한다.
예시 코드
use test;
drop table if exists buy;
CREATE TABLE buy
( num SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
userID CHAR(8) NOT NULL,
prodName CHAR(8) NOT NULL DEFAULT "모니터",
groupName CHAR(8) NULL,
price INT NULL,
amount INT(4) NULL CHECK (amount > 0),
FOREIGN KEY(userID) references user(userID)
);
/*자동 증가 값 초기화*/
ALTER TABLE buy AUTO_INCREMENT = 1;
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('KBS', '운동화', NULL, 30, 2);
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('KBS', '노트북', '전자', 1000, 1);
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('JYP', default, '전자', 200, 1);
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('BBK', '모니터', '전자', 200, 5);
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('KBS', '청바지', '의류', 50, 3);
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('BBK', '메모리', '전자', 80, 10);
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('SSK', '책', '서적', 15, 5);
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('EJW', '책', '서적', 15, 2);
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('EJW', '청바지', '의류', 50, 1);
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('BBK', '운동화', NULL, 30, 2);
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('EJW', '책', '서적', 15, 1);
INSERT INTO buy(userID, prodName, groupName, price, amount) VALUES('BBK', '운동화', NULL, 30, 2);
select * from buy;