python的sql操作

需要使用pymysql包来连接mysql,使用python读取和写入数据到mysql中。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pymysql

'''

建表语句:
CREATE TABLE `train_data` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `vid` varchar(60) DEFAULT NULL COMMENT '用户id',
    `table_id` varchar(10) DEFAULT NULL COMMENT '项目id',
    `field_results` varchar(3000) DEFAULT NULL COMMENT '检查结果',
    `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    PRIMARY KEY (`id`)
) ENGINE = InnoDB CHARSET = utf8 COMMENT '训练数据信息表';

'''
# 连接数据库,host:数据库服务器ip,port:数据库端口,user:用户名,passwd:密码,db:数据库,charset:字符集
conn = pymysql.connect(host='127.0.0.1', port=3306, user='dev', passwd='dev', db='meinian', charset='utf8')

conn.autocommit(1)
cursor = conn.cursor()

#从mysql查询数据,得到训练集
cursor.execute("SELECT ta.vid AS vid, table_id, field_results FROM `data_part1` ta JOIN train_user_info tb ON ta.vid = tb.vid")

#从游标中读取所有数据
trainData = cursor.fetchall()

#把数据写到mysql中
cursor.executemany('INSERT INTO train_data(vid, table_id, field_results) values(%s, %s, %s)', trainData)

cursor.execute("SELECT ta.vid AS vid, table_id, field_results FROM `data_part2` ta JOIN train_user_info tb ON ta.vid = tb.vid")
trainData = cursor.fetchall()

print("体检训练集的记录数:", len(trainData))
#训练集数据写到mysql的train_data表中
cursor.executemany('INSERT INTO train_data(vid, table_id, field_results) values(%s, %s, %s)', trainData)

#关闭链接
cursor.close()
conn.close()

你可能感兴趣的:(python的sql操作)