[MYsql]_데이터 정의어

Kingyj·2024년 12월 4일

데이터 정의어

  • 데이터 정의어(DDL, Data Definition Language)는 MySQL에서 데이터베이스의 구조(스키마)를 정의하거나 수정하는 데 사용되는 명령어를 말한다. 테이블, 인덱스, 뷰, 데이터베이스 등 객체의 생성, 삭제, 수정 등을 담당한다.

  • CREATE

기능: 데이터베이스 객체를 생성(테이블, 데이터베이스, 뷰 등).

-- 데이터베이스 생성
CREATE DATABASE my_database;

-- 테이블 생성
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  • ALTER

기능: 기존의 데이터베이스 객체를 수정(컬럼 추가, 삭제, 변경 등).

-- 테이블에 새로운 컬럼 추가
ALTER TABLE users ADD age INT;

-- 기존 컬럼 이름 변경
ALTER TABLE users CHANGE age user_age INT;

-- 컬럼 삭제
ALTER TABLE users DROP COLUMN user_age;
  • DROP

기능: 데이터베이스 객체를 삭제.
주의: 삭제된 객체는 복구가 불가능하니 신중히 사용!

-- 데이터베이스 삭제
DROP DATABASE my_database;

-- 테이블 삭제
DROP TABLE users;
  • TRUNCATE

기능: 테이블의 데이터를 모두 삭제하면서 구조는 유지. (더 빠르고, 롤백 불가)

TRUNCATE TABLE users;
  • RENAME

기능: 데이터베이스 객체의 이름을 변경.

-- 테이블 이름 변경
RENAME TABLE users TO members;
  • USE

기능: 특정 데이터베이스를 사용하도록 지정.

USE my_database;
  • SHOW

기능: 데이터베이스나 테이블의 구조를 확인.

-- 데이터베이스 목록 보기
SHOW DATABASES;

-- 테이블 목록 보기
SHOW TABLES;

-- 테이블 구조 보기
SHOW COLUMNS FROM users;

-- 특정 설정 확인
SHOW VARIABLES LIKE 'autocommit';
  • DESCRIBE (또는 DESC)

기능: 테이블의 구조를 확인.

DESCRIBE users;
  • CREATE INDEX

기능: 특정 컬럼에 인덱스를 생성하여 검색 성능 향상.

CREATE INDEX idx_name ON users (name);
  • DROP INDEX

기능: 생성한 인덱스를 삭제.

DROP INDEX idx_name ON users;

0개의 댓글