테이블 생성
PK설정 : PRIMARY KEY
FK설정 : FOREIGN KEY(행 이름) REFERENCES 테이블(행 이름)
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
);
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) NOT NULL,
price INT UNSIGNED NOT NULL,
amount SMALLINT UNSIGNED NOT NULL,
FOREIGN KEY(mem_id) REFERENCES member(mem_id)
);
데이터 입력
INSERT INTO 테이블명 VALUES(열 내용)
INSERT INTO member VALUES('~~~~', '~~~~', ...)
PK 제약조건 : 테이블 당 1개, 중복&NULL 불가, 자동으로 클러스터형 인덱스 생성
--1
CREATE TABLE member
( mem_id CHAR(8) NOT NULL **PRIMARY KEY**,
....);
--2
CREATE TABLE member
( mem_id CHAR(8) NOT NULL,
....
**PRIMARY KEY (mem_id)**);
--3 주어진 테이블 수정하는 경우
ALTER TABLE member
ADD CONSTRAINT
**PRIMARY KEY (mem_id)**;
FK 제약조건 : 기준 테이블의 열은 반드시 PK.
--1
CREATE TABLE buy
( mem_id CHAR(8) NOT NULL,
....
**FOREIGN KEY (mem_id) REFERENCES member(mem_id);**
--2 주어진 테이블 수정하는 경우
ALTER TABLE buy
ADD CONSTRAINT
**FOREIGN KEY (mem_id)
REFERENCES member(mem_id)**;
+) 기준 테이블의 열이 변경될 경우 참조 테이블에 자동반영 하는 법
ALTER TABLE buy
ADD CONSTRAINT
FOREIGN KEY (mem_id) REFERENCES member(mem_id)
**ON UPDATE CASCADE
ON DELETE CASCADE**;
UNIQUE 제약조건 : 한 테이블에 여러 개 가능, 중복X, NULL O
CREATE TABLE member
( mem_id CHAR(8) NOT NULL PRIMARY KEY,
....
email CHAT(30) NULL **UNIQUE**);
CHECK 제약조건 : 입력되는 데이터를 점검
-- 1
CREATE TABLE member
( mem_id CHAR(8) NOT NULL PRIMARY KEY,
....
height TINYINT UNSIGNED NULL **CHECK (height >= 100)**);
--2 주어진 테이블 수정하는 경우
ALTER TABLE member
ADD CONSTRAINT
**CHECK (height >= 100);**
DEFAULT 정의 : 입력하지 않았을 때 자동입력 값 정의
-- 1
CREATE TABLE member
( mem_id CHAR(8) NOT NULL PRIMARY KEY,
....
height TINYINT UNSIGNED NULL **DEFAULT 160**);
--2 주어진 테이블 수정하는 경우
ALTER TABLE member
**ALTER COLUMN height SET DEFAULT 160;**
-- +) 기본값을 입력하려면 INSERT문의 값 자리에 DEFAULT 입력
NULL 값 허용 : NOT NULL
뷰 : SELECT문으로 만들어진 가상의 테이블 → 보안/단순성을 위해 사
-- 뷰 생성
CREATE VIEW 뷰 이름
AS
SELECT ~~;
--뷰 사용(테이블과 동)
SELECT 열 이름 FROM 뷰 이름
WHERE 조건;
ALTER VIEW -- 뷰 수정
DROP VIEW -- 뷰 삭제
DESCRIBE -- 뷰 정보확인
SHOW CREATE VIEW -- 뷰 소스코드 확인
CHECK TABLE -- 뷰나 테이블의 상태 확인
CREATE VIEW 뷰 이름
AS
SELECT ~~;
WITH CHECK OPTION; -- 뷰에 설정된 값의 범위가 넘어가면 입력X