前言
数据库技术(例如MySQL)在气象业务和其他商业行业中都有着广泛的应用,气象与电网结合的大项目甚至都用上了hadoop分布式存储Hadoop中的Hive组件和数据库在语法上高度相似。
传统运行mysql脚本的方法是在一些流行的IDE中运行,比如Mysql8.0自带的 workbench,还有DBeaver等。
PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中使用mysqldb。在此文中以PyMysql为例,在python中运行mysql代码, 可以充分结合python的灵活性和mysql的强大查询能力提高生产力。比如mysql中很难循环遍历,我们可以利用python对某个表名列表进行遍历。又比如,一些指标计算用pandas包和自己写的模块非常高效,若用mysql则晦涩难懂了。
MySQL 8.0自带的 Workbench 界面
pymysql连接MySQL
import pymysql
import pymysql.cursors
cnn= pymysql.connect(host='localhost', #IP
user='root', #用户名
password='xxxx', #密码
port=3306, #端口号
charset='utf8')#注意是utf8不是utf-8
# 使用cursor()方法获取操作游标
cursor = cnn.cursor()
# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
result = cursor.fetchone()
print ("Database version : %s " % result)
Database version : 8.0.15
pymysql创建表格
#https://www.runoob.com/python3/python3-mysql.html
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","root","deepwind","demo" ) #,"TESTDB"
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
# 使用预处理语句创建表
sql_1 = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
cursor.execute(sql)
result1=cursor.fetchall()
sql_2="SHOW TABLES"
cursor.execute(sql_2)
result2=cursor