MySQL요약 노트 (2022년 1월 ~ 2022년 3월까지 공부했던 내용 정리)
혼자 공부하는 SQL책과 한빛미디어에서 제공하는 유튜브 강의로 공부함


CREATE DATABASEDROP DATABASE IF EXISTS 데이터베이스_이름; -- 기존 해당 데이터베이스가 있다면 삭제
CREATE DATABASE 데이터베이스_이름; - 데이터베이스 생성2) 테이블 생성하기: CREATE TABLENULL(or NOT NULL) 지정PRIMARY KEY 설정(기본 키 설정)AUTO_INCREMENT 설정(자동 증가)FOREIGN KEY 예약어로 지정하기USE 데이터베이스_이름;
DROP TABLE IF EXISTS 테이블_이름; -- 기존 해당 테이블이 있다면 삭제
CREATE TABLE 테이블_이름
( 열_이름1 데이터형식 AUTO_INCREMENT(자동 증가 설정) NULL(or NOT NULL) PRIMARY KEY(기본 키 설정),
열_이름2 데이터형식 NULL(or NOT NULL) ,
열_이름3 데이터형식 NULL(or NOT NULL) ,
...
FOREIGN KEY(열_이름) REFERENCES 테이블_이름(열_이름) -- 외래 키(FK)
);3) 데이터 입력하기: INSERT INTOINSERT INTO 테이블_이름 VALUES(데이터1, 데이터2, ..., 데이터n);
INSERT INTO 테이블_이름 VALUES(데이터1, 데이터2, ..., 데이터n); NULL 값이 입력될 수 없음PRIMARY KEY 예약어 지정ALTER TABLE에서 기본 키 설정DROP TABLE IF EXISTS 테이블_이름;
CREATE TABLE 테이블_이름
( 열_이름1 데이터형식 NULL(or NOT NULL),
열_이름2 데이터형식 NULL(or NOT NULL),
...
);
ALTER TABLE 테이블_이름
ADD CONSTRAINT
PRIMARY KEY (열_이름);CREATE TABLE에서 외래 키 설정: FOREIGN KEY(열이름) REFERENCES 기준테이블(열이름)DROP TABLE IF EXISTS 테이블_이름1, 테이블_이름2;
CREATE TABLE 테이블_이름1 -- 기준 테이블
( 열_이름 데이터형식 NULL(or NOT NULL) PRIMARY KEY,
열_이름2 데이터형식 NULL(or NOT NULL),
...
);
CREATE TABLE 테이블_이름2 -- 참조 테이블
( 열_이름1 데이터형식 NULL(or NOT NULL) PRIMARY KEY,
열_이름 데이터형식 NULL(or NOT NULL),
...
FOREIGN KEY(열_이름) REFERENCES 기준_테이블(열_이름);
);ALTER TABLE에서 외래 키 설정DROP TABLE IF EXISTS 테이블_이름;
CREATE TABLE 테이블_이름 -- 참조 테이블
( 열_이름1 데이터형식 NULL(or NOT NULL) PRIMARY KEY,
열_이름 데이터형식 NULL(or NOT NULL),
...
);
ALTER TABLE 참조테이블
ADD CONSTRAINT
FOREIGN KEY(열_이름)
REFERENCES 기준_테이블(열_이름);ALTER TABLE에서 ON UPDATE CASCADE 문, ON DELETE CASCADE 문 설정: 기준 테이블의 열 이름이 변경될 때 참조 테이블의 열 이름이 자동으로 변경되도록 하는 기능DROP TABLE IF EXISTS 테이블_이름;
CREATE TABLE 테이블_이름 -- 참조 테이블
( 열_이름1 데이터형식 NULL(or NOT NULL) PRIMARY KEY,
열_이름 데이터형식 NULL(or NOT NULL),
...
);
ALTER TABLE 참조_테이블
ADD CONSTRAINT
FOREIGN KEY(열_이름) REFERENCES 기준_테이블(열_이름)
ON UPDATE CASCADE
ON DELETE CASCADE;NULL 값을 허용한다NULL, UNIQUE로 지정CHECK(height>=100)CHECK(조건) 추가ALTER TABLE 문으로 CHECK(조건) 제약조건 추가ALTER TABLE 테이블_이름
ADD CONSTRAINT
CHECK (조건);DEFAULT 160DEFAULT '값' 추가ALTER TABLE 문으로 DEFAULT '값' 제약조건 추가ALTER TABLE 테이블_이름
ALTER COLUMN 열_이름 SET DEFAULT '값';default라고 씀INSERT INTO 테이블_이름 VALUES(데이터, 데이터, 데이터, default);NULL을 사용, 허용하지 않으려면 NOT NULL을 사용함NULL: 빈 값 허용NOT NULL: 빈 값을 허용하지 않는다NULL 값이 있을 수 없음(NOT NULL)NULL 값=아무 것도 없다라는 의미(공백('')이나 0과 다름)뷰(View)
CREATE VIEWCREATE VIEW 뷰_이름
AS
SELECT 문;SELECTSELECT 열_이름 FROM 뷰_이름
[WHERE 조건];뷰의 실제 작동
USE 데이터베이스_이름;
CREATE VIEW 뷰_이름
AS
SELECT 문;
SELECT DISTINCT `뷰_열이름1`, `뷰_열이름2`, ... FROM 뷰_이름; -- 백틱(`)을 사용ALTER VIEWALTER VIEW 뷰_이름
AS
SELECT 문;
SELECT DISTINCT `뷰_열이름1`, `뷰_열이름2`, ... FROM 뷰_이름; -- 백틱(`)을 사용DROP VIEWDROP VIEW 뷰_이름;DESCRIBE, SHOW CREATE VIEWDESCRIBE 뷰_이름;SHOW CREATE VIEW 뷰_이름;UPDATE, DELETEUPDATE 뷰_이름 SET ... WHERE ...; -- 수정DELETE FROM 뷰_이름 WHERE...; -- 삭제INSERTWITH CHECK OPTION 예약어: 뷰에 설정된 값의 범위가 벗어나는 값은 입력되지 않도록 함INSERT INTO 뷰_이름 VALUES(데이터1,데이터2,...,); -- 수정ALTER VIEW 뷰_이름
AS
SELECT 문
WITH CHECK OPTION;
INSERT INTO 뷰_이름 VALUES(데이터1,데이터2,...,); -- 수정DROP TABLECHECK TABLE 문으로 뷰의 상태를 확인할 수 있음DROP TABLE IF EXISTS 테이블_이름;SELECT * FROM 뷰_이름; -- 에러 발생CHECK TABLE 뷰_이름; -- 뷰의 상태 확인우재남. (2021). 혼자 공부하는 SQL. 한빛미디어. p216-p270.