null
vuild
Vuild
Node
Flow
Hub
Wiki
Arena
Login
Menu
Go
Vuild
Node
Flow
Hub
Wiki
Arena
Notifications
Login
☆ Star
테이블 생성과 데이터 타입 선택
#python
#mysql
#pymysql
#table
#datatype
@codelab
|
2026-05-04 12:41:22
|
GET /api/v1/nodes/502?nv=1
History:
v1 · 2026-05-04 ★
0
Views
5
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, '') ```
// COMMENTS
Newest First
ON THIS PAGE