通过Python使用MySQL数据库实例
jcLee95的个人博客
邮箱:291148484@163.com
【函数说明】
如调用本函数,必须先安装有MySQL数据库软件,并已经建立了某个数据库,然后方可使用本函数对已经建立好的数据库创建一个新的表。
[参数]:
- host:主机名,或者是网络中主机的IP地址,对于本地主机,为’localhost’
- user:用户名,在生产环境不建议直接使用root用户
- password:对于与用户名的密码;
- db:已经建立好的某数据库名;
- table_name:需要创建的表名;
- Column_list:列名称的列表;
- Datatype_list:所有列的数据类型列表;
- primary_key:对应SQL的PRIMARY KEY,约束唯一标识数据库表中的每条记录。主键必须包含唯一的值,主键列不能包含 NULL 值,每个表都应该有一个主键,并且每个表只能有一个主键。
【代码实现】
import pymysql #给指定主机上的某数据库创建表 def creat_MySQL_table(host, user, password, db, table_name, Column_list, Datatype_list, primary_key): connection = pymysql.connect(host = host, user = user, password = password, db = db, charset = 'utf8', #字符编码 ) #使用cursor()方法来创建一个游标对象cuisor cursor = connection.cursor() SQL_DROP = "DROP TABLE IF EXISTS " + table_name #使用execute()方法执行SQL_DROP,如果表存在则删除 cursor.execute(SQL_DROP) SQL_CREAT_TABLE = 'EATE TABLE ' + '`' + table_name + '`' + '(' new_list = [] count_i = 0 for i in Column_list: column = '`' + i + '`' + ' ' + Datatype_list[count_i] + ',' new_list.append(column) Column_list = new_list count_i = count_i + 1 #通过字符串拼接实现可以用于MySQL执行的SQL语句 SQL_CREAT_TABLE = 'CREATE TABLE ' + '`' + table_name + '`' + ' ' + '(\n' for i in Column_list: SQL_CREAT_TABLE = SQL_CREAT_TABLE + ' ' + i + '\n' SQL_CREAT_TABLE = SQL_CREAT_TABLE + ' ' + 'PRIMARY KEY (' + primary_key + ')' SQL_CREAT_TABLE = SQL_CREAT_TABLE + '\n' + ')ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;' #执行创建表语句 cursor.execute(SQL_CREAT_TABLE) #关闭与数据库的连接 connection.close() #返回值是用来调试被用于创建表的SQL语句,建议使用print()函数查看 return str(SQL_CREAT_TABLE)
【调用实例】
#定义调用参数 Column_list = ['Time','Normal Drop (000)','No Chute Assignment (001)','Recirculation Exceeded (002)', 'Unknown Piece / Bad Load (003)','Multiple Barcodes (004)','No Sort Instruction (005)', 'Other Reasons (006)','VCS Timeout (008)','VCS Reject (009)','No Reads (010)', 'MES Reject (011)','Total'] Datatype_list = ['int(35) NOT NULL AUTO_INCREMENT','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL', 'int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL', 'int(5) NULL'] host = 'localhost' user = 'root' password = 'root' db = 'as01' table_name = 'Thtoughput' primary_key = 'Time' #调用函数 creat_MySQL_table(host, user, password, db, table_name, Column_list, Datatype_list, primary_key)
打开数据库图形化管理工具Navicat查看,可以发现在数据库“as01”(调用前已经创建好)中生成了一个表“Throughput”,如图所示:
打开该表,如图: