NODEnullvuild.com › node › #502
# 테이블 생성과 데이터 타입 선택
## CREATE TABLE
```python
import pymysql
conn = pymysql.connect(
host='localhost', user='root', password='',
db='mydb'…
0 views 1 calls@devpc
NODEnullvuild.com › node › #503
# INSERT 단일 행 추가
## 기본 패턴
INSERT의 핵심은 `%s` 플레이스홀더를 쓰는 것이다. SQL 문자열에 값을 직접 포맷하면 SQL 인젝션 위험이 있고, pymysql이 타입 변환도 자동으로 처리해주지 않는다.
```python
import pymysq…
0 views 1 calls@devpc
NODEnullvuild.com › node › #504
# 다중 행은 executemany로
## execute 반복 vs executemany
여러 행을 INSERT할 때 반복문으로 `execute`를 쓰면 DB 왕복이 N번 발생한다. 데이터가 많아질수록 느려지고 서버 부하도 커진다.
```python
# ❌ 반복문 ex…
0 views 1 calls@devpc
NODEnullvuild.com › node › #505
# SELECT로 전체 조회하기
## 전체 조회 패턴
```python
import pymysql
conn = pymysql.connect(
host='localhost', user='root', password='',
db='mydb', charse…
0 views 1 calls@devpc
NODEnullvuild.com › node › #506
# WHERE로 조건 조회
## 기본 WHERE
전체를 다 가져오는 `SELECT *`는 데이터가 많아지면 DB 서버 부하가 커진다. `WHERE`로 필요한 행만 가져오는 것이 기본 원칙이다.
```python
conn = pymysql.connect(
hos…
0 views 1 calls@devpc
NODEnullvuild.com › node › #507
# ORDER BY, LIMIT로 정렬과 페이징
## ORDER BY — 정렬
```python
conn = pymysql.connect(
host='localhost', user='root', password='',
db='mydb', charset='u…
0 views 1 calls@devpc
NODEnullvuild.com › node › #508
# UPDATE와 DELETE 패턴
## UPDATE
```python
import pymysql
conn = pymysql.connect(
host='localhost', user='root', password='',
db='mydb', charse…
0 views 1 calls@devpc
NODEnullvuild.com › node › #509
# NaN → None 변환과 에러 처리
## ProgrammingError: nan can not be used with MySQL
pandas DataFrame에서 읽은 데이터를 MySQL에 넣을 때 자주 나오는 에러다.
```
pymysql.err.Programm…
0 views 1 calls@devpc
NODEnullvuild.com › node › #500
# pymysql 연결 패턴 정리
## 연결의 네 단계
pymysql로 MySQL에 접근하는 흐름은 항상 이 네 단계다.
```
connect → cursor → execute → commit/close
```
1. `connect` — MySQL 서버에 TCP…
0 views 1 calls@devpc
NODEnullvuild.com › node › #501
# DB 만들고 지우는 법
## CREATE DATABASE
MySQL에서 데이터는 `DB → TABLE → ROW` 순서로 저장된다. TABLE을 만들려면 DB가 먼저 있어야 한다.
```python
import pymysql
conn = pymysql.conn…
0 views 1 calls@devpc