SQL

[MySQL] 2. 테이블 생성 및 수정 - DDL (CREATE, ALTER, DROP, TRUNCATE)

찰리-누나 2022. 12. 23.

 

DDL

DDL이란 Data Definition Language의 약어로, '데이터 정의어' 라는 뜻이다. 정확히는 테이블을 다루는 언어이다. 정처기 시절에 '크알드트'라고 외웠던 항목이다. 

  • CREATE : 테이블 생성
  • ALTER : 테이블 수정
  • DROP : 테이블 영구삭제
  • TRUNCATE : 테이블 내 데이터만 삭제

 

DML

앞서 실행했던 SELECT는 DML에 속한다. DML은 Data Manipulation Language 의 약어로, '데이터 조작 언어'를 뜻한다. 데이터베이스 내의 데이터를 조작(데이터 추출, 생성, 수정, 삭제) 하는 언어라는 의미다. 

  • SELECT : 데이터 조회
  • INSERT : 레코드 생성
  • UPDATE : 레코드 수정
  • DELETE : 레코드 삭제
  • COMMIT : 트랜잭션 처리
  • ROLLBACK : 트랜잭션 복구

 

DCL

마지막으로 GRANT와 REVOKE라는 권한 관련 용어가 있다. Data Control Lanaguage를 줄여 DCL이라고 한다.

  • GRANT : 권한 부여
  • REVOKE : 권한 회수

 

먼저 DDL을 실습해본다. 데이터베이스와 테이블을 생성하고 삭제해 볼 것이다.

CREATE문을 사용해본다. CREATE DATABASE DB이름 을 입력하면 데이터베이스를 생성할 수 있다.

 


CREATE DATABASE DB이름

 

PET 테이블을 생성한다.

 

CREATE TABLE 데이터베이스이름.테이블이름 ( 필드명 필드타입 ) 을 통해 테이블을 생성할 수 있다. 이 때 필드에 키워드를 통하여 여러 제약조건을 줄 수 있고, 타입을 설정할 수 있다.

 

타입 : http://www.tcpschool.com/mysql/mysql_datatype_numeric

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

CREATE문에서 컬럼에 제약을 주기 위해 사용하는 제약조건은 다음과 같다.

 

  1. NOT NULL : 필드에 NULL값을 저장할 수 없도록 한다.
  2. UNIQUE : 필드가 서로 다른 값을 가지게 한다.
  3. PRIMARY KEY : NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가지게 됩니다.
  4. FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 만든다(외래키 설정).
  5. DEFAULT : 해당 필드의 기본값을 설정한다.
  6. CHECK : 컬럼에 들어갈 값에 제약을 건다.

 

또한, AUTO_INCREMENT 키워드를 사용하면 해당 필드의 값을 1부터 시작하여 새로운 레코드가 추가될 때마다 1씩 증가된 값을 저장할 수 있다. 이때 AUTO_INCREMENT 키워드 다음에 대입 연산자(=)를 사용하여 시작값을 변경할 수 있다.

 


CREATE TABLE DB이름.생성할 테이블이름(
    
    id varchar(100) PRIMARY KEY,

    name VARCHAR(100),
    age int DEFAULT 1,
    category varchar(100)

)
 

 

PET 데이터베이스에 aboutPet이라는 이름의 테이블을 생성해본다. 총 네개의 필드가 있고, id라는 기본키를 설정해준다. 

 

ALTER TABLE은 테이블을 수정할 때 사용한다. ALTER DATABASE 를 사용해 데이터베이스를 수정할 수도 있다. ALTER TABLE에는 아래 세 가지의 키워드를 붙여 사용한다.

 

  1. ADD : 테이블에 컬럼을 추가한다.
  2. DROP : 테이블의 컬럼을 삭제한다.
  3. MODIFY COLUMN : 테이블의 컬럼 타입을 수정한다.

 

먼저 age 컬럼의 타입을 INT에서 VARCHAR로 수정해본다.


ALTER TABLE 테이블이름 MODIFY COLUMN 컬럼명 타입

 

age 필드가 INT에서 varchar(100)으로 수정되었다.

 

DROP문을 사용해 컬럼을 삭제한다. category 컬럼을 삭제하였다.


ALTER TABLE 테이블이름 DROP 컬럼명

DROP문은 테이블의 삭제에도 사용할 수 있다.

DROP TABLE 테이블명

 

category 컬럼을 삭제하였다.

 

ADD문을 사용해 다시 category 컬럼을 만들어본다.


ALTER TABLE 테이블이름 ADD 컬럼명 타입

category 컬럼이 다시 생성되었다.

 

 

댓글