1. MySQL이란?
MySQL은 가장 널리 사용되는 관계형 데이터베이스 관리 시스템(RDBMS, Relational Database Management System) 입니다.
데이터를 표 형태의 구조(테이블)로 저장하며, SQL(Structured Query Language) 을 사용하여 데이터를 조회, 삽입, 수정, 삭제할 수 있습니다.
대표적인 사용 사례로는 웹 애플리케이션, 온라인 쇼핑몰, 기업 시스템, 데이터 분석 등이 있습니다.
특히, 백엔드 개발에서 데이터 저장 및 관리의 핵심 역할을 담당합니다.
MySQL의 특징
- 오픈 소스이며 무료로 사용 가능
- 빠르고 안정적인 성능 제공
- SQL 표준 지원
- 대규모 트래픽 처리 가능
- AWS RDS, Google Cloud SQL 등 클라우드 서비스와 연동 가능
2. MySQL의 기본 개념
MySQL에서 가장 중요한 개념은 데이터베이스(Database)와 테이블(Table) 입니다.
MySQL은 데이터를 여러 개의 테이블에 저장하며, 테이블 간 관계를 설정하여 효율적으로 관리합니다.
Database (예: 쇼핑몰)
├── users (회원 정보 테이블)
├── products (상품 정보 테이블)
├── orders (주문 정보 테이블)
각 테이블은 여러 개의 열(Column)과 행(Row) 로 구성됩니다.
예를 들어, users(회원 정보) 테이블이 다음과 같다고 가정해 보겠습니다.
| id | name | created_at | |
| 1 | 홍길동 | hong@example.com | 2024-02-11 12:00:00 |
| 2 | 이순신 | lee@example.com | 2024-02-11 12:30:00 |
- 각 열(Column): id, name, email, created_at (속성/필드)
- 각 행(Row): 하나의 사용자 데이터
3. MySQL 기본 명령어
MySQL을 다루기 위해서는 SQL 문법을 알아야 합니다.
자주 사용되는 SQL 명령어를 몇 가지 살펴보겠습니다.
🔹 데이터베이스 생성 및 선택
CREATE DATABASE mydb; -- 데이터베이스 생성
USE mydb; -- 해당 데이터베이스 사용
🔹 테이블 생성
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY, -- 기본키 (자동 증가)
name VARCHAR(100) NOT NULL, -- 이름 (최대 100자)
email VARCHAR(255) UNIQUE NOT NULL, -- 이메일 (고유 값)
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- 생성 날짜
);
🔹 데이터 삽입 (INSERT)
INSERT INTO users (name, email) VALUES ('홍길동', 'hong@example.com');
🔹 데이터 조회 (SELECT)
SELECT * FROM users; -- 모든 데이터 조회
SELECT name, email FROM users WHERE id = 1; -- 특정 사용자 정보 조회
🔹 데이터 수정 (UPDATE)
UPDATE users SET email = 'newemail@example.com' WHERE id = 1;
🔹 데이터 삭제 (DELETE)
DELETE FROM users WHERE id = 1;
이 외에도 JOIN, GROUP BY, INDEX, TRANSACTION 등의 개념이 존재하며, 이를 활용하면 더 효율적인 데이터베이스 설계가 가능합니다.
4. MySQL의 주요 개념
🔹 Primary Key (기본 키)
- 각 행을 고유하게 식별하는 키 (예: id 컬럼)
- AUTO_INCREMENT 옵션을 사용하면 자동으로 증가하는 숫자로 설정 가능
🔹 Foreign Key (외래 키)
- 테이블 간 연관 관계(1:N, N:M) 를 설정할 때 사용
🔹 Index (인덱스)
- 검색 성능을 향상시키는 데이터베이스 기능
- INDEX 를 설정하면 특정 컬럼을 기준으로 빠르게 조회 가능
🔹 Transaction (트랜잭션)
- 여러 개의 SQL 연산을 하나의 작업 단위로 묶어 처리
- 중간에 오류가 발생하면 ROLLBACK(되돌리기) 가능
'백엔드' 카테고리의 다른 글
| [SpringBoot] Bean이란? (0) | 2025.10.11 |
|---|---|
| [Spring Boot] Framework (0) | 2025.10.11 |
| AWS 클라우드 서비스 (0) | 2025.02.10 |
| 웹 서버의 동작 원리 (0) | 2025.02.10 |
| JavaScript 기본 개념 및 백엔드 활용 코드 (0) | 2025.02.10 |