null
vuild_
Nodes
Flows
Hubs
Login
MENU
GO
Notifications
Login
⌂
Python으로 MySQL 다루기
Structure
connect
•
pymysql 연결 패턴 정리
db-table
•
DB 만들고 지우는 법
•
테이블 생성과 데이터 타입 선택
write
•
INSERT 단일 행 추가
•
다중 행은 executemany로
read
•
SELECT로 전체 조회하기
•
WHERE로 조건 조회
•
ORDER BY, LIMIT로 정렬과 페이징
advanced
•
UPDATE와 DELETE 패턴
•
NaN → None 변환과 에러 처리
Flow Structure
DB 만들고 지우는 법
3 / 10
INSERT 단일 행 추가
☆ Star
↗ Full
테이블 생성과 데이터 타입 선택
#python
#mysql
#pymysql
#table
#datatype
@devpc
|
2026-05-04 12:41:22
|
GET /api/v1/flows/26/nodes/502?fv=1&nv=1
Context:
Flow v1
→
Node v1
0
Views
1
Calls
# 테이블 생성과 데이터 타입 선택 ## CREATE TABLE ```python import pymysql conn = pymysql.connect( host='localhost', user='root', password='', db='mydb', charset='utf8' ) try: with conn.cursor() as cursor: sql = ''' CREATE TABLE sensor_log ( id INT AUTO_INCREMENT PRIMARY KEY, recorded DATETIME, sensor VARCHAR(50), value FLOAT ) ''' cursor.execute(sql) conn.commit() finally: conn.close() ``` 여러 줄 쿼리는 `'''...'''`으로 감싸면 가독성이 좋다. --- ## DROP TABLE ```python conn = pymysql.connect( host='localhost', user='root', password='', db='mydb', charset='utf8' ) try: with conn.cursor() as cursor: cursor.execute('DROP TABLE IF EXISTS sensor_log') conn.commit() finally: conn.close() ``` `IF EXISTS`를 붙이면 테이블이 없어도 에러 없이 통과된다. --- ## 자주 쓰는 데이터 타입 | 타입 | 용도 | 예시 | |------|------|------| | `INT` | 정수 (4바이트) | ID, 카운터 | | `SMALLINT` | 작은 정수 (2바이트) | 센서 값, 상태 코드 | | `BIGINT` | 큰 정수 (8바이트) | 타임스탬프(ms), 파일 크기 | | `FLOAT` / `DOUBLE` | 부동소수점 | 온도, 비율 | | `DECIMAL(p,s)` | 고정 소수점 | 금액, 정밀 측정값 | | `VARCHAR(n)` | 가변 문자열 최대 n자 | 이름, 경로, URL | | `TEXT` | 긴 문자열 (65KB) | 로그 메시지, 설명 | | `DATETIME` | 날짜+시간 | 기록 시각 | | `TINYINT(1)` | 불리언 대용 | 활성화 여부 | --- ## AUTO_INCREMENT와 PRIMARY KEY ```sql id INT AUTO_INCREMENT PRIMARY KEY ``` - `AUTO_INCREMENT`: 행이 추가될 때마다 자동으로 1씩 증가 - `PRIMARY KEY`: 중복 없는 고유 식별자 INSERT 시 `id` 컬럼을 생략하면 MySQL이 알아서 채운다. --- ## 테이블 구조 확인 ```python with conn.cursor() as cursor: cursor.execute('DESCRIBE sensor_log') for col in cursor.fetchall(): print(col) ``` 결과 예시: ``` ('id', 'int(11)', 'NO', 'PRI', None, 'auto_increment') ('recorded', 'datetime', 'YES', '', None, '') ('sensor', 'varchar(50)','YES','', None, '') ('value', 'float', 'YES', '', None, '') ```
DB 만들고 지우는 법
INSERT 단일 행 추가
// COMMENTS
Newest First
ON THIS PAGE
No content selected.