python代码创建Mysql数据表和导入Excel表格数据

您所在的位置:网站首页 数据库导入表格到表 python代码创建Mysql数据表和导入Excel表格数据

python代码创建Mysql数据表和导入Excel表格数据

2023-03-24 12:33| 来源: 网络整理| 查看: 265

Python程序员除了Python编程做到烂熟于心之外,也要会一些日常的SQL操作。通常在数据库创建成功之后,就需要创建数据表。

1、Python MySQL创建表 import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", passwd="yourpassword", database="mydatabase" ) mycursor = mydb.cursor() mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")

检查表是否存在 可以通过使用“SHOW TABLES”语句列出数据库中所有表来检查表是否存在:

检查是否存在,并打印出数据库的表

mycursor.execute("SHOW TABLES") for x in mycursor: print(x)

创建表时,还应该为每条记录创建一个具有唯一键的列。

这可以通过定义PRIMARY KEY来完成。

我们使用语句“INT AUTO_INCREMENT PRIMARY KEY”,它将为每条记录插入一个唯一的编号。从1开始每新增一个记录增加1。

mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")

如果表已存在,请使用ALTER TABLE关键字:

mycursor.execute("ALTER TABLE customers ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY") 2、使用使用flask_sqlalchemy连接MySQL数据库并在数据库中创建数据表

SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作。flask-sqlalchemy 是一个简化了 SQLAlchemy 操作的 flask 扩展。

数据库的其他配置

在这里插入图片描述

常用的SQLAlchemy字段类型

在这里插入图片描述

常用的SQLAlchemy列选项

在这里插入图片描述

示例代码: from flask import Flask from flask_sqlalchemy import SQLAlchemy import pymysql import datetime app = Flask(__name__) # 设置连接数据库的URL # 'mysql://MySQL用户名:MySQL密码@127.0.0.1:3306/数据库名称' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # # 设置是否跟踪数据库的修改情况,一般不跟踪 app.config['SQLALCHEMY_DATABASE_URI'] = ( 'mysql+pymysql://root:root@localhost/flask' ) # 数据库操作时是否显示原始SQL语句,一般都是打开的,因为我们后台要日志 app.config['SQLALCHEMY_ECHO'] = True # 实例化orm框架的操作对象,后续数据库操作,都要基于操作对象来完成 db = SQLAlchemy(app) # 实例化SQLAlchemy类 # 创建数据表类 # 定义表字段 primary_key:是否为主键 nullable:是否为空值 class Course(db.Model): course_id = db.Column(db.BigInteger,nullable=False,primary_key=True) product_id = db.Column(db.BigInteger,nullable=False) product_type = db.Column(db.Integer, nullable=False) product_name = db.Column(db.String(125), nullable=False) provider = db.Column(db.String(125), nullable=False) score = db.Column(db.Float(2)) score_level = db.Column(db.Integer) learner_count = db.Column(db.Integer) lesson_count = db.Column(db.Integer) lector_name = db.Column(db.String(125)) original_price = db.Column(db.Float(2)) discount_price = db.Column(db.Float(2)) discount_rate = db.Column(db.Float(2)) img_url = db.Column(db.String(125)) big_img_url = db.Column(db.String(125)) description = db.Column(db.Text) @app.route('/') def index(): return "逃逸的卡路里" if __name__ == "__main__": app.run(debug=True) 读取Excel表格数据导入到数据库表 import pymysql import xlrd # 连接数据库 conn = pymysql.connect(host='localhost', user='root', passwd='root', db='flask', charset='utf8') cursor = conn.cursor() # 创建游标 # 读取excel中内容到数据库 workbook = xlrd.open_workbook('./明日学院Python课程数据2019-09-25.xlsx') sheet = workbook.sheet_by_index(0) # 根据索引获取sheet data_list = [] nrows = sheet.nrows # 获取行数 ncols = sheet.ncols # 获取列数 # 遍历每一行数据 for i in range(1, nrows): # 在列表中第一个元素为0,方便后面使用insert插入数据 row_values = [0]+ sheet.row_values(i) # 如果折扣价不存在,设置为None if not row_values[9]: row_values[9] = None # 如果折扣率不存在,设置为None if not row_values[10]: row_values[10] = None # 追加到列表中 data_list.append(row_values) # 拼接'%s' val = '%s,'*(ncols+1) # 批量添加数据 cursor.executemany(f"insert into course values({val[:-1]});", data_list) conn.commit() # 提交数据 cursor.close() # 关闭游标 conn.close() # 关闭数据库连接 3、总结

以上就是今天分享的Python通过两种方式创建MySQL数据库表的经验分享,希望对看到的小伙伴有帮助。有问题可以留言讨论。 相关文章推荐:python学习之flask sqlalchemy介绍和使用 表操作增删查改



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3