MySQL 기본 지식 요약
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
데이터 분석
대상자
- 초보 개발자 및 데이터베이스 관리자
- MySQL 기초 명령어와 개념을 이해하고 싶은 사람들
- 난이도: 초급 (RDBMS 기초 지식 필요)
핵심 요약
- 관계형(RDBMS) vs 비관계형(NoSQL) 데이터베이스의 차이점
- RDBMS: 고정된 스키마, ACID 트랜잭션, 테이블 기반 데이터 모델 (예: MySQL)
- NoSQL: 유연한 스키마, 수평 확장성, 문서/키-값 형식 (예: MongoDB)
- MySQL 연결 및 기본 명령어
mysql -u root -p
(사용자: root, 비밀번호 입력)import mysql.connector
(Python에서 MySQL 연동)- 데이터베이스/테이블 관리 명령어
CREATE DATABASE
,SHOW DATABASES
,DROP DATABASE
,USE
,CREATE TABLE
,DESCRIBE
,ALTER TABLE
,DROP TABLE
- 데이터 조작 및 쿼리 명령어
INSERT
,SELECT
,UPDATE
,DELETE
,SELECT AVG()
,ORDER BY
,LIMIT
,OFFSET
섹션별 세부 요약
1. **관계형 vs 비관계형 데이터베이스 비교**
- 데이터 모델: RDBMS는 테이블(행 + 열) 기반, NoSQL은 문서/키-값/그래프 형식
- 스키마: RDBMS는 고정 스키마, NoSQL은 유연한 스키마
- 트랜잭션: RDBMS는 ACID 준수, NoSQL은 BASE(최종 일관성)
- 예시: MySQL, PostgreSQL vs MongoDB, Redis
2. **MySQL 연결 및 기본 설정**
- CLI 연결:
mysql -u root -p
(로컬 개발용 가장 직접적인 방법) - Python 연동:
mysql.connector.connect()
(호스트, 사용자, 비밀번호, 데이터베이스 지정)
3. **데이터베이스 및 테이블 관리**
- 데이터베이스 생성/삭제:
CREATE DATABASE school_db;
,DROP DATABASE test_db;
- 테이블 생성 및 구조 변경:
CREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), age INT, email VARCHAR(100));
ALTER TABLE students ADD gender VARCHAR(10);
- 테이블 구조 확인:
DESCRIBE students;
4. **데이터 조작 및 쿼리**
- 데이터 삽입:
INSERT INTO students (name, age, email) VALUES ('Alice', 20, 'alice@example.com');
- 데이터 조회:
SELECT FROM students;
,SELECT FROM students WHERE age > 18;
- 데이터 수정/삭제:
UPDATE students SET age = 21 WHERE name = 'Alice';
,DELETE FROM students WHERE name = 'Alice';
- 집계 및 정렬:
SELECT AVG(age) AS avg_age FROM students;
,SELECT * FROM students ORDER BY age DESC;
- 결과 제한:
LIMIT 10 OFFSET 20;
(페이징 처리)
결론
- MySQL의 핵심 명령어와 기본 개념을 이해하면 데이터베이스 관리 및 분석 효율성이 크게 향상
- 실무에서 활용 예시:
SELECT * FROM students LIMIT 10 OFFSET 20;
(대규모 데이터 처리 시 페이징 사용 권장) - 추천 학습 방법: CLI와 Python 연동 예제를 직접 실행하며 실습 (예:
mysql.connector
라이브러리 사용)