← 홈

🐬MySQL

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO

🔌 연결 & 기본

🔗 연결

mysql -u root -p root로 연결
mysql -u user -p -h hostname 원격 호스트 연결
mysql -u user -p database_name 특정 데이터베이스 연결
exit; or quit; MySQL 종료
mysql -u user -p < script.sql SQL 파일 실행

📁 데이터베이스 작업

SHOW DATABASES; 모든 데이터베이스 목록
CREATE DATABASE dbname; 데이터베이스 생성
CREATE DATABASE dbname CHARACTER SET utf8mb4; 문자셋과 함께 생성
DROP DATABASE dbname; 데이터베이스 삭제
USE dbname; 데이터베이스 선택
SELECT DATABASE(); 현재 데이터베이스 표시

📊 테이블 작업

SHOW TABLES; 테이블 목록
DESCRIBE tablename; 테이블 구조 표시
SHOW CREATE TABLE tablename; CREATE 문 표시
DROP TABLE tablename; 테이블 삭제
TRUNCATE TABLE tablename; 테이블 비우기 (빠름)
RENAME TABLE old TO new; 테이블 이름 변경

🏗️ 테이블 생성 & 변경

테이블 생성

CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(100)); 기본 테이블
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(255) UNIQUE); 제약조건 포함
CREATE TABLE orders (id INT PRIMARY KEY, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id)); 외래 키 포함
CREATE TABLE IF NOT EXISTS tablename (...); 없으면 생성

🏷️ 데이터 타입

INT, BIGINT, SMALLINT, TINYINT 정수 타입
DECIMAL(10,2), FLOAT, DOUBLE 소수/실수 타입
VARCHAR(255), CHAR(10), TEXT 문자열 타입
DATE, DATETIME, TIMESTAMP, TIME 날짜/시간 타입
BOOLEAN, BOOL 불리언 (TINYINT(1) 별칭)
BLOB, MEDIUMBLOB, LONGBLOB 바이너리 데이터
JSON JSON 데이터 타입
ENUM('a','b','c') 열거형

✏️ 테이블 변경

ALTER TABLE t ADD column_name VARCHAR(100); 열 추가
ALTER TABLE t DROP COLUMN column_name; 열 삭제
ALTER TABLE t MODIFY column_name INT NOT NULL; 열 수정
ALTER TABLE t CHANGE old_name new_name INT; 열 이름 변경
ALTER TABLE t ADD INDEX idx_name (column); 인덱스 추가
ALTER TABLE t ADD PRIMARY KEY (id); 기본 키 추가
ALTER TABLE t DROP INDEX idx_name; 인덱스 삭제

📝 CRUD 작업

🔍 SELECT (읽기)

SELECT * FROM users; 모든 열 선택
SELECT id, name FROM users; 특정 열 선택
SELECT * FROM users WHERE age > 18; 조건 포함
SELECT * FROM users ORDER BY name ASC; 정렬
SELECT * FROM users LIMIT 10; 결과 제한
SELECT * FROM users LIMIT 10 OFFSET 20; 페이지네이션
SELECT DISTINCT category FROM products; 고유 값
SELECT * FROM users WHERE name LIKE "J%"; 패턴 매칭

INSERT (생성)

INSERT INTO users (name, email) VALUES ('John', 'john@email.com'); 단일 행 삽입
INSERT INTO users (name) VALUES ('A'), ('B'), ('C'); 여러 행 삽입
INSERT INTO t2 SELECT * FROM t1 WHERE condition; SELECT에서 삽입
INSERT INTO users SET name='John', email='j@e.com'; SET으로 삽입
INSERT IGNORE INTO users ...; 중복 무시

✏️ UPDATE

UPDATE users SET name='Jane' WHERE id=1; 단일 행 업데이트
UPDATE users SET age=age+1 WHERE birthday=CURDATE(); 표현식으로 업데이트
UPDATE users SET status='active' WHERE status='pending' LIMIT 10; 제한 업데이트

🗑️ DELETE

DELETE FROM users WHERE id=1; 단일 행 삭제
DELETE FROM users WHERE age < 18; 조건으로 삭제
DELETE FROM users; 모든 행 삭제

🔗 조인 & 서브쿼리

⛓️ 조인

SELECT * FROM a INNER JOIN b ON a.id = b.a_id; 내부 조인
SELECT * FROM a LEFT JOIN b ON a.id = b.a_id; 왼쪽 조인
SELECT * FROM a RIGHT JOIN b ON a.id = b.a_id; 오른쪽 조인
SELECT * FROM a CROSS JOIN b; 크로스 조인
SELECT * FROM a JOIN b USING (column); 열을 사용한 조인
SELECT * FROM a NATURAL JOIN b; 자연 조인

📦 서브쿼리

SELECT * FROM users WHERE id IN (SELECT user_id FROM orders); WHERE 서브쿼리
SELECT *, (SELECT COUNT(*) FROM orders WHERE orders.user_id = users.id) as order_count FROM users; SELECT 서브쿼리
SELECT * FROM (SELECT * FROM users LIMIT 10) AS subquery; FROM 서브쿼리
SELECT * FROM users WHERE EXISTS (SELECT 1 FROM orders WHERE user_id = users.id); EXISTS 서브쿼리

📊 집계 & 그룹화

🧮 집계 함수

SELECT COUNT(*) FROM users; 행 수
SELECT COUNT(DISTINCT category) FROM products; 고유 값 수
SELECT SUM(amount) FROM orders; 합계
SELECT AVG(price) FROM products; 평균
SELECT MIN(price), MAX(price) FROM products; 최소/최대
SELECT GROUP_CONCAT(name) FROM users; 값 연결

📁 GROUP BY & HAVING

SELECT category, COUNT(*) FROM products GROUP BY category; 그룹화
SELECT category, COUNT(*) FROM products GROUP BY category HAVING COUNT(*) > 5; Having 절
SELECT YEAR(created_at), COUNT(*) FROM orders GROUP BY YEAR(created_at); 연도별 그룹화
SELECT category, SUM(price) as total FROM products GROUP BY category WITH ROLLUP; 롤업 포함

인덱스 & 성능

📇 인덱스

CREATE INDEX idx_name ON table (column); 인덱스 생성
CREATE UNIQUE INDEX idx_name ON table (column); 유니크 인덱스 생성
CREATE INDEX idx ON table (col1, col2); 복합 인덱스
CREATE FULLTEXT INDEX idx ON table (column); 전문 인덱스
SHOW INDEX FROM tablename; 인덱스 표시
DROP INDEX idx_name ON tablename; 인덱스 삭제

🔧 성능

EXPLAIN SELECT * FROM users WHERE id=1; 쿼리 설명
EXPLAIN ANALYZE SELECT ...; 분석 포함 설명
SHOW PROCESSLIST; 실행 중인 쿼리 표시
OPTIMIZE TABLE tablename; 테이블 최적화
ANALYZE TABLE tablename; 통계 업데이트

👥 사용자 & 권한

👤 사용자 관리

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; 사용자 생성
DROP USER 'user'@'localhost'; 사용자 삭제
ALTER USER 'user'@'localhost' IDENTIFIED BY 'newpass'; 비밀번호 변경
SELECT user, host FROM mysql.user; 사용자 목록

🔑 권한

GRANT ALL PRIVILEGES ON db.* TO 'user'@'localhost'; 데이터베이스 전체 권한
GRANT SELECT, INSERT ON db.table TO 'user'@'localhost'; 특정 권한 부여
REVOKE ALL PRIVILEGES ON db.* FROM 'user'@'localhost'; 권한 취소
SHOW GRANTS FOR 'user'@'localhost'; 사용자 권한 표시
FLUSH PRIVILEGES; 권한 다시 로드

💡 팁 & 모범 사례

유용한 팁

  • UPDATE/DELETE에는 항상 WHERE 사용하여 사고 방지
  • DELETE/UPDATE 쿼리 테스트 시 LIMIT 사용
  • WHERE, JOIN, ORDER BY에 사용되는 열에 인덱스
  • 이모지 포함 전체 유니코드 지원에 utf8mb4 사용
  • SQL 인젝션 방지를 위해 prepared statements 사용
  • 정기 백업: mysqldump -u user -p dbname > backup.sql