유튜브강의 12~14강
-1절
-- 테이블 : 엑셀 sheet와 유사, 데이터 베이스 안에 들어있는 객채
CREATE DATABASE naver_db;
DROP DATABASE IF EXISTS naver_db;
CREATE DATABASE naver_db;
USE naver_db;
-- 테이블 생성
DROP TABLE IF EXISTS member;
CREATE TABLE member
( mem_id CHAR(8) NOT NULL PRIMARY KEY,
mem_name VARCHAR(10) NOT NULL,
mem_number TINYINT NOT NULL,
addr CHAR(2) NOT NULL,
phone1 CHAR(3) NULL,
phone2 CHAR(8) NULL,
height TINYINT UNSIGNED NULL,
debut_date DATE NULL
);
DROP TABLE IF EXISTS buy;
CREATE TABLE buy
( num INT AUTO_INCREMENT NOT NULL PRIMARY KEY, -- AUTO_INCREMENT : 자동증가
mem_id CHAR(8) NOT NULL,
prod_name CHAR(6) NOT NULL,
group_name CHAR(4) NULL,
price INT UNSIGNED NOT NULL,
amout SMALLINT UNSIGNED NOT NULL,
FOREIGN KEY(mem_id) REFERENCES member(mem_id)
);
-- 데이터 입력
INSERT INTO member VALUES('TWC','트와이스','9','서울','02','11111111',167,'2015.01.06');
INSERT INTO member VALUES('BLK','블랙핑크','4','경남','055','22222222',163,'2015.01.12');
INSERT INTO member VALUES('WMN','여자친구','6','경기','031','33333333',166,'2015.01.18');
INSERT INTO buy VALUES(NULL ,'BLK','지갑',NULL,30,2);
INSERT INTO buy VALUES(NULL ,'BLK','맥북프로','디지털',1000,1);
-- FOREIGN KEY를 가진 테이블은 참조하는 테이블에 먼저 해당 키 값이 있어야 됨
INSERT INTO buy VALUES(NULL ,'APN','아이폰','디지털',200,1);
-2절
-- 데이터 무결성 : 데이터에 결함이 없는 것
-- 대표적인 제약조건
-- PRIMARY KEY 제약조건 : 중복X, NULL 값 허용 x, 가장 많이 사용, 테이블 당 1개 열만 가질 수 있음, 클러스터형 인덱스 생성
DROP TABLE IF EXISTS buy, member;
CREATE TABLE member
( mem_id CHAR(8) NOT NULL PRIMARY KEY,
mem_name VARCHAR(10) NOT NULL,
height TINYINT UNSIGNED NULL
);
DROP TABLE IF EXISTS member;
CREATE TABLE member
( mem_id CHAR(8) NOT NULL,
mem_name VARCHAR(10) NOT NULL,
height TINYINT UNSIGNED NULL,
PRIMARY KEY (mem_id)
);
-- FOREIGN KEY 제약조건 : 두 테이블을 관계
DROP TABLE IF EXISTS buy;
CREATE TABLE buy
( num INT AUTO_INCREMENT NOT NULL PRIMARY KEY, -- AUTO_INCREMENT : 자동증가
mem_id CHAR(8) NOT NULL,
prod_name CHAR(6) NOT NULL,
group_name CHAR(4) NULL,
price INT UNSIGNED NOT NULL,
amout SMALLINT UNSIGNED NOT NULL,
FOREIGN KEY(mem_id) REFERENCES member(mem_id)
);
-- UNIQUE 제약조건
-- CHECK 제약조건
-- DEFAULT 정의
-- NULL 값 허용
-3절
p. 226의 market_db의 회원 테이블(member) 생성하고, p. 229 데이터 입력한 후 인증하기
p. 271 확인 문제 4번 풀고 인증하기