컴퓨터 과학/데이터 베이스

MySQL 생성(Create), 수정(Update/Alter), 삭제(Delete/Drop) 문법 정리

Data Jun 2025. 8. 19. 11:47

SQL은 데이터를 다루는 CRUD(Create, Read, Update, Delete) 작업에 따라 여러 문법을 제공합니다.
이번 글에서는 그중에서도 데이터베이스/테이블 생성, 데이터 추가, 수정, 삭제, 제약조건 설정과 관련된 핵심 문법들을 간단한 예시와 함께 정리합니다.

 

CREATE DATABASE (데이터베이스 생성)

CREATE DATABASE school;

school이라는 새로운 데이터베이스를 생성합니다.
보통 생성 후에는 다음처럼 사용합니다:

USE school;
또는
school.

 

CREATE TABLE (테이블 생성)

CREATE TABLE `school`.`student` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `name` VARCHAR(50) NOT NULL,
    `major`VARCHAR(100),
    `age` INT,
    CONSTRAINT chk_age CHECK (age >= 20)
)

student라는 테이블을 만들고, id는 자동 증가되는 기본 키, name은 NULL 불가, age는 0 이상만 허용하도록 제약조건을 추가했습니다.

 

INSERT INTO (데이터 삽입)

INSERT INTO student (name, major, age) 
VALUES ('홍길동', '컴퓨터공학과', 21);

새 레코드를 추가합니다.

  • 컬럼명을 생략할 수도 있지만, 안전하게 명시하는 것이 좋습니다.

 

UPDATE (데이터 수정)

UPDATE student
SET major = '전자공학과'
WHERE id = 1;

id가 1인 학생의 전공을 "전자공학과"로 수정합니다.

  • 주의: WHERE 조건을 안 쓰면 모든 행이 수정되므로 조심해야 합니다.

 

DELETE (데이터 삭제)

DELETE FROM student
WHERE id =1;

id가 1인 학생 데이터를 삭제합니다.

  • 역시 WHERE 절이 없으면 테이블 전체 데이터가 삭제됩니다.

 

ALTER TABLE (테이블 구조 수정)

-- 새로운 컬럼 추가
ALTER TABLE student ADD (COLUMN) email VARCHAR(100);

-- 기존 컬럼 삭제
ALTER TABLE student DROP COLUMN age;

-- 컬럼 타입 변경
ALTER TABLE student MODIFY major VARCHAR(200);

 

제약조건 추가 (ADD CONSTRAINT)

-- PRIMARY KEY 추가 --
ALTER TABLE student 
ADD CONSTRAINT pk_student PRIMARY KEY (id);

-- UNIQUE 추가 --
ALTER TABLE student 
ADD CONSTRAINT uq_email UNIQUE (email);

-- FOREIGN KEY 추가 --
ALTER TABLE enrollment 
ADD CONSTRAINT fk_student FOREIGN KEY (student_id) REFERENCES student(id);

-- CHECK 제약조건 추가 --
ALTER TABLE student 
ADD CONSTRAINT chk_age CHECK (age >= 0);

 

제약조건 삭제 (DROP CONSTRAINT / DROP INDEX)

MySQL에서는 버전에 따라 제약조건 삭제 문법이 조금 다릅니다

ALTER TABLE student DROP CHECK chk_age

 

정리

  • 생성(Create): CREATE DATABASE, CREATE TABLE, INSERT INTO
  • 수정(Update/Alter): UPDATE, ALTER TABLE
  • 삭제(Delete/Drop): DELETE, DROP TABLE
  • 제약조건(Constraint): 데이터 무결성을 보장하기 위한 규칙 (PK, FK, CHECK 등)

SQL은 단순히 데이터 추가/삭제뿐 아니라, 데이터 구조와 규칙까지 정의할 수 있다는 점이 핵심입니다.