MySQL/이론

MySQL 이론(1)

윤_코딩 2023. 10. 19. 16:38

 

DDL (Date Define Language, 데이터 정의어)

- DB를 구축하거나 수정할 목적으로 사용하는 언어로 DBMS를 통해 사용되며,  SCHEMA, DOMAIN, TABLE, VIEW, INDEX 등을 정의, 변경, 삭제할 때 사용합니다. (CREATE, ALTER TABLE, DROP 등)

 

1. CREATE SCHEMA

CREATE SCHEMA [스키마 이름];

 - '스키마 이름'을 가진 DB 생성

2. CREATE TABLE

CREATE TABLE [테이블 이름] (
  열이름 데이터_타입 [DEFAULT 기본값] [NOT NULL],
  PRIMARY KEY(기본키_열이름),
  UNIQUE(고유키_열이름),
  FOREIGN KEY(외래키_열이름) REFERENCES 기준테이블(기본키_열이름) ON DELETE ON UPDATE,
  CONSTRAINT 제약조건명 CHECK(조건식)
);

*ON DELETE, ON UPDATE 옵션

- NO ACTION : 기준 테이블(기본키)에 변화가 있어도 참조 테이블(외래키)에는 아무런 조치를 하지 않음

- CASCADE : 기준테이블(기본키)의 튜플(행)이 삭제되면 참조 테이블(외래키) 관련 튜플도 모두 삭제되고, 속성이 변경되면 관련 튜플의 속성 값도 모두 변경

- SET DEFAULT : 기준테이블(기본키)의 변화가 있으면 참조 테이블(외래키) 관련 튜플의 속성 값을 기본값으로 변경

- SET NULL : 기준테이블(기본키)의 변화가 있으면 참조 테이블(외래키) 관련 튜플의 속성 값을 NULL값으로 변경

 

[튜플-행 / 열-속성 / 릴레이션-테이블 / 스키마-데이터베이스]

 

3. CREATE VIEW

CREATE VIEW [뷰 이름] AS SELECT문;

- 뷰를 정의하는 명령문으로 열이름을 기술하지 않으면 SELECT문의 열이름이 자동으로 사용된다.

4. CREATE INDEX

CREATE [UNIQUE] INDEX [인덱스 이름] ON [테이블 이름](열이름 [ASC | DESC]);

- 인덱스를 정의하는 명령문

* UNIQUE

- 사용된 경우 : 중복 값이 없는 열로 인덱스를 생성

- 사용되지 않은 경우 : 중복 값을 허용하는 열로 인덱스를 생성

* 정렬 여부 지정

- ASC : 오름차순 정렬, 기본값

- DESC : 내림차순 정렬

5. ALTER TABLE

ALTER TABLE [테이블 이름] ADD  열이름 데이터타입 [DEFAULT 기본값]; (추가)
ALTER TABLE [테이블 이름] ALTER  열이름 [SET DEFAULT 기본값]; (수정)
ALTER TABLE [테이블 이름] DROP COLUMN 열이름; (삭제)

- 테이블에 대한 정의를 변경하는 명령문

6. DROP

DROP SCHEMA [스키마 이름];
DROP TABLE [테이블 이름];
DROP VIEW[뷰이름];
DROP INDEX[인덱스이름];

- 스키마, 기본 테이블, 뷰 테이블, 인덱스를 제거

 

*CREATE TABLE + DROP TABLE = CREATE OR REPLACE TABLE

- 테이블 생성 시 같은 이름을 가진 테이블이 존재하지 않으면 생성, 같은 이름을 가진 테이블이 존재하면 삭제 후 생성