관리 메뉴

JIE0025

[MySQL] 테이블 생성 (CREATE TABLE)과 옵션 본문

백엔드/데이터베이스

[MySQL] 테이블 생성 (CREATE TABLE)과 옵션

Kangjieun11 2021. 6. 4. 22:57
728x90

CREATE문

PRIMARY KEY : 기본키 지정

FOREIGN KEY : 외래키 지정

ON UPDATE / ON DELETE : 외래키 속성의 수정, 튜플삭제시의 동작

 

CREATE TABLE 테이블이름
	( { 속성이름 데이터타입
		[NOT NULL | UNIQUE | DEFAULT 기본값 | CHECK 체크조건]
	}
	[PRIMARY KEY 속성이름(들)]
	{[FOREIGN KEY 속성이름 REFERENCES 테이블이름(속성이름)]
		[ON DELETE [CASCADE┃SET NULL]
	}
)

 

실습을 하면서 개념을 이해해보자

 

 테이블 생성을 위한 DB 생성

CREATE DATABASE tableDB;

 

 테이블 생성

USE tableDB;
DROP TABLE IF EXISTS userTBL;
CREATE TABLE userTBL--회원테이블
( userID CHAR(8), --사용자 아이디

userNum INT, --사용자 고유번호
userName VARCHAR(10), --이름
birthYear INT, --출생 연도
addr CHAR(2), --지역(경기, 서울, 경남등으로 글자만입력)
mobile1 CHAR(3), --휴대폰의 국번(011, 016, 017, 018, 019, 010 등)
mobile2 CHAR(8), --휴대폰의 나머지전화번호(하이픈 제외)
height SMALLINT, --키
mDate DATE --회원가입일
);

 

- DROP TABLE IF EXISTS userTBL;

buyTBL, userTBL 이 존재하면, 삭제한다.

 

 

- CREATE TABLE userTBL--회원테이블

userTBL 을 생성하는 명령어

 

- userID CHAR(8) 

테이블에서 사용할 속성 / 속성의 데이터 타입

 

 

OPTION  

속성, 데이터 타입 이후에 추가할 수 있다. 

[NOT NULL | UNIQUE | DEFAULT 기본값 | CHECK 체크조건]

 

 

  • NOT NULL / NULL :  널값 허용 여부는 데이터 타입 이후에 설정한다.
userNum INT NOT NULL

 

  • PRIMARY KEY : 기본키 설정하기
userNum INT NOT NULL PRIMARY KEY

 

  • AUTO_INCREMENT : 자동 증가
userNum INT AUTO_INCREMENT NOT NULL PRIMARY KEY 

 

  • FOREIGN KEY(userID) REFERENCES otherTBL(NUM)  : 외래키 설정

외래키는 다른 테이블의 PRIMARY KEY인 열을 가져와서 설정하는 것이다.

 

아래 예제는

 

otherTBL의 NUM 열을

userTBL 의 userID열의 외래키로 설정하는 것이다.

CREATE TABLE userTBL
( userID CHAR(8), 

userNum INT NOT NULL PRIMARY KEY, 
userName VARCHAR(10), 
birthYear INT, 
addr CHAR(2),
mobile1 CHAR(3), 
mobile2 CHAR(8),
height SMALLINT,
mDate DATE 



FOREIGN KEY(userID) REFERENCES otherTBL(NUM)
);

 

 

 데이터 입력

INSERT INTO userTBL VALUES ('YJS',1, '유재석', 1972, '서울', '010', '11111111', 178, '2008-8-8');
INSERT INTO userTBL VALUES ('KHD',2, '강호동', 1970, '경북', '011', '22222222', 182, '2007-7-7');
INSERT INTO userTBL VALUES ('KKJ',3, '김국진', 1965, '서울', '019', '33333333', 171, '2009-9-9');