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;

'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