MySQL 핵심 개발 지식 정리

1. 스토리지 엔진

1.1 스토리지 엔진 개념

MySQL에서 스토리지 엔진은 데이터를 디스크에 저장하는 방식을 결정하는 컴포넌트입니다. 파일 시스템의 파일 형식과 유사하며, InnoDB가 가장 널리 사용됩니다.

-- 테이블 생성 시 엔진 지정
CREATE TABLE user_data (
    user_id INT,
    user_name VARCHAR(50)
) ENGINE=InnoDB;

-- 테이블 엔진 확인
SHOW CREATE TABLE user_data;

2. 데이터 타입

2.1 숫자 타입

  • 정수형: TINYINT, INT, BIGINT
  • 실수형: FLOAT, DOUBLE, DECIMAL

2.2 문자열 타입

  • CHAR: 고정 길이, 빠른 접근
  • VARCHAR: 가변 길이, 공간 효율적

2.3 시간 타입

DATE, TIME, DATETIME, TIMESTAMP 등이 있으며, NOW() 함수로 현재 시간을 얻을 수 있습니다.

3. 데이터베이스 관리

-- 데이터베이스 생성
CREATE DATABASE sales_db CHARACTER SET utf8mb4;

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

-- 데이터베이스 변경
ALTER DATABASE sales_db CHARACTER SET utf8;

-- 데이터베이스 확인
SHOW DATABASES;
SELECT DATABASE();

4. 테이블 제약 조건

-- 기본 키 설정
CREATE TABLE products (
    product_id INT PRIMARY KEY AUTO_INCREMENT,
    product_name VARCHAR(100) NOT NULL
);

-- 외래 키 설정
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    product_id INT,
    CONSTRAINT fk_product FOREIGN KEY (product_id) 
        REFERENCES products(product_id)
        ON DELETE CASCADE
);

5. 데이터 조작

5.1 데이터 삽입

-- 단일 레코드 삽입
INSERT INTO employees (emp_id, emp_name) 
VALUES (1, '김철수');

-- 다중 레코드 삽입
INSERT INTO employees VALUES
(2, '이영희'),
(3, '박민수');

5.2 데이터 조회

-- 기본 조회
SELECT emp_id, emp_name FROM employees
WHERE emp_id > 1
ORDER BY emp_name
LIMIT 10;

6. 테이블 조인

-- 내부 조인
SELECT e.emp_name, d.dept_name
FROM employees e
INNER JOIN departments d ON e.dept_id = d.dept_id;

-- 왼쪽 외부 조인
SELECT e.emp_name, d.dept_name
FROM employees e
LEFT JOIN departments d ON e.dept_id = d.dept_id;

7. 서브쿼리

-- 서브쿼리 예제
SELECT emp_name 
FROM employees
WHERE dept_id IN (
    SELECT dept_id FROM departments
    WHERE location = '서울'
);

태그: MySQL 데이터베이스 SQL InnoDB 쿼리

8월 8일 08:07에 게시됨