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;
'CS > 데이타베이스' 카테고리의 다른 글
[실습] Stored Procedure (저장 프로시저) (0) | 2021.11.11 |
---|---|
[실습] 고급 SQL SELECT문 (0) | 2021.11.01 |
[실습] 인덱스 생성과 삭제 (0) | 2021.10.20 |
[실습] MySQL 시작하기 (0) | 2021.10.18 |
MySQL 문법 (0) | 2021.09.17 |