[SQL] 05-1 테이블 만들기
테이블과 뷰
테이블 만들기
테이블(table)은 표 형태로 구성된 2차원 구조로, 행과 열로 구성되어 있다.
행은 로우(row)나 레코드(record)라고 부르며, 열은 컬럼(column) 또는 필드(field)라고 부른다.
데이터베이스와 테이블 설계하기
일반적인 쇼핑몰 데이터베이스인 ‘네이버 쇼핑’ 데이터베이스를 사용해 구조를 살펴보겠다.
회원 테이블(member)은 다음과 같은 구조로 설계하였다.
| 열 이름(한글) | 열 이름(영문) | 데이터 형식 | 널 허용 안함 (Not Null) |
기타 |
|---|---|---|---|---|
| 아이디 | mem_id | CHAR(8) | Yes | 기본 키(PK) |
| 회원 이름 | mem_name | VARCHAR(10) | Yes | |
| 인원수 | mem_id | TINYINT | Yes | |
| 주소 | addr | CHAR(2) | Yes | |
| 연락처 국번 | phone1 | CHAR(3) | No | |
| 전화번호 | phone2 | CHAR(8) | No | |
| 평균 키 | height | TINYINT | No | UNSINGED |
| 데뷔 일자 | debut_date | DATE | No |
구매 테이블(buy)은 다음과 같은 구조로 설계하였다.
| 열 이름(한글) | 열 이름(영문) | 데이터 형식 | 널 허용 안함 (Not Null) |
기타 |
|---|---|---|---|---|
| 순번 | num | INT | Yes | 기본 키(PK), 자동 증가 |
| 아이디 | mem_id | CHAR(8) | Yes | 외래 키(FK) |
| 제품 이름 | prod_name | CHAR(6) | Yes | |
| 분류 | group_name | CHAR(4) | No | |
| 가격 | price | INT | Yes | UNSIGNED |
| 수량 | amount | SMALLINT | Yes | UNSIGNED |
GUI 환경에서 테이블 만들기
데이터베이스 생성하기
CREATE DATABASE naver_db;
테이블 생성하기
데이터 입력하기
SQL로 테이블 만들기
앞에서 MySQL 워크벤치로 실습한 과정을 이번에는 SQL로 진행해보겠다.
데이터베이스 생성하기
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,
mem_id CHAR(8) NOT NULL,
prod_name CHAR(6) NOT NULL,
group_name CHAR(4) NULL,
price INT UNSIGNED NOT NULL,
amount SMALLINT UNSIGNED NOT NULL,
FOREIGN KEY(mem_id) REFERENCES member(mem_id)
);
데이터 입력하기
회원 테이블에 3건의 데이터를 입력해보겠다.
INSERT INTO member VALUES('TWC', '트와이스', 9, '서울', '02', '11111111', 167, '2015-10-19');
INSERT INTO member VALUES('BLK', '블랙핑크', 4, '경남', '055', '22222222', 163, '2016-8-8');
INSERT INTO member VALUES('WMN', '여자친구', 6, '경기', '031', '33333333', 166, '2015-1-15');
이번에는 구매 테이블에 2건의 데이터를 입력해보겠다.
INSERT INTO buy VALUES(NULL, 'BLK', '지갑', NULL, 30, 2);
INSERT INTO buy VALUES(NULL, 'BLK', '맥북프로', '디지털', 1000, 1);