[포스코x코딩온] 스마트팩토리 입문과정 | MySQL - DDL(Data Definition Language)

김영웅·2023년 3월 16일
0
post-thumbnail

DDL(Data Definition Language)은 데이터베이스, 테이블, 컬럼 등의 구조를 정의하고 관리하는데 사용됩니다. 이번시간에는 MySQL에서 DDL의 CREATE, ALTER, DROP 명령어에 대해 알아보았습니다.


[CREATE]

CREATE 명령어는 데이터베이스, 테이블, 뷰 등을 생성할 때 사용됩니다.

-- 데이터베이스 생성(예시)
CREATE DATABASE new_smartfactory CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
-- 테이블 생성(예시)
-- new_customer 테이블
-- custid(고객번호) CHAR(10), NOT NULL 제약조건, PK
-- custname(고객이름) VARCHAR(10), NOT NULL 제약조건
-- addr (주소) CHAR(10), NOT NULL 제약조건
-- phone (연락처) CHAR(11)
-- birth (생년월일) DATE

-- 기본키 제약 조건
-- 기본키는 중복 불가능
-- NULL 불가능

CREATE TABLE new_customer (
custid CHAR(10) PRIMARY KEY, -- PRIMARY KEY에는 NOT NULL 포함
custname VARCHAR(10) NOT NULL,
addr CHAR(10) NOT NULL,
phone CHAR(11),
birth DATE
);

-- 외래키가 있는 테이블 생성(예시)
-- orderid INT, NOT NULL 제약조건, PK, 숫자 자동 증가(AUTO_INCREMENT)
-- custid CHAR(10), NOT NULL 제약조건
-- prodname CHAR(6), NOT NULL 제약조건
-- price INT, NOT NULL 제약조건
-- amount smallint, NOT NULL 제약조건

-- 외래키 제약조건
-- 두 테이블 사이의 관계를 맺어줌 (= 다른 테이블의 기본키를 현재 테이블의 왜래키로 연결함)
-- 기본키를 갖는 테이블 : "기준" 테이블
-- 왜래키가 있는 테이블 : "참조" 테이블
-- 형식 : FOREING KEY(열_이름) REFERENCES 기준_테이블(열_이름)

-- ON UPDATE CASCADE : 기준 테이블의 데이터 수정시 -> 참조 테이블 데이터도 변경
-- ON DELETE CASCADE : 기준 테이블의 데이터 삭제시 -> 참조 테이블 데이터도 삭제

CREATE TABLE new_orders (
orderid INT PRIMARY KEY AUTO_INCREMENT, -- PRIMARY KEY에는 NOT NULL 포함
custid CHAR(10) NOT NULL,
prodname CHAR(6) NOT NULL,
price INT NOT NULL,
amount smallint NOT NULL,
FOREIGN KEY(custid) REFERENCES new_customer(custid) ON UPDATE CASCADE ON DELETE CASCADE
);

[ALTER]

ALTER 명령어는 데이터베이스, 테이블, 컬럼 등을 수정할 때 사용됩니다.

-- 새로운 속성 추가
ALTER TABLE new_customer ADD nickname VARCHAR(10);
-- 고객 테이블에 새로운 속성 "nickname"이 생겼음

-- 속성 수정
-- 속성의 데이터타입 수정
ALTER TABLE new_customer MODIFY nickname INT;
-- 속성명 변경
ALTER TABLE new_customer CHANGE	nickname n_name VARCHAR(10);
-- 기존 속성 삭제
ALTER TABLE new_customer DROP n_name;
  • 새로운 속성 추가

  • 속성의 데이터타입 수정

  • 속성명 변경

  • 기존 속성 삭제

[DROP]

DROP 명령어는 데이터베이스, 테이블, 뷰 등을 삭제할 때 사용됩니다.

DROP TABLE [테이블 명];
  • pk-fk 관계로 연결된 테이블은 "외래키가 설정된 테이블"을 먼저 삭제해야 함.

  • 기준 테이블, 기본 키 테이블 -> (2) 나중 삭제

  • 참조 테이블, 외래 키 테이블 -> (1) 먼저 삭제


뷰(View)?는 무었인가

[View]

SQL에서 뷰(View)는 하나 이상의 테이블에서 데이터를 추출하여 가상의 테이블을 생성하는 개념입니다. 즉, 뷰는 실제 데이터베이스 테이블에서 가져온 데이터를 다시 가공하여 새로운 가상의 테이블을 만드는 것입니다.

뷰는 데이터베이스의 보안과 사용성을 높일 수 있는 중요한 개념입니다. 뷰를 사용하면 여러 사용자가 동시에 데이터를 열람할 때, 데이터를 보호하기 위해 권한 설정이 용이해지며, 사용자가 필요한 데이터만을 추출하여 사용할 수 있습니다.

또한, 뷰를 사용하면 복잡한 SQL 쿼리를 단순화할 수 있으며, 특정 테이블의 데이터를 여러 개의 뷰로 나눠서 사용할 수 있습니다.


이번에 CREATE, ALTER, DROP을 배우며 느낀 점은, 이 세 가지 명령어를 제대로 이해하고 사용한다면 데이터베이스를 구축하고 유지하는 데 매우 중요한 역할을 할 수 있다는 것입니다. 데이터베이스에서 테이블은 데이터를 담는 그릇 역할을 하며, 이러한 테이블을 생성하고 수정하고 삭제하는 것은 데이터베이스의 구조를 결정하는 중요한 작업이라 생각합니다. 또한 데이터베이스의 구조와 동작 방식을 이해하는 데 큰 도움이 되었습니다.

0개의 댓글