python——连接数据库(MySQL)

这儿是我觉得最有意思的地方,python是数据分析利器,而数据库是数据存储利器,加上数据库能够进行快速查找,配合起python真的是太爽了,自己做的项目里有个全国的气象站日值数据需要进行处理,用上了这两者,速度真的是蹭蹭的。

Let’s begin!
首先是MySql的一些使用细节,这儿我使用的MySq可视化软件是Navicat 12 for MySQL

  • show DATABASES 查看所有数据库
  • CREATE DATABASE students 创建数据库
  • use students:切换数据库
  • show TABLEs:查看当前数据库下的所有表
  • 编辑数据库,utf8 utf8_general_ci ,设置中文字符(从一开始就要设置好)
  • 添加了数据之后,需要进行刷新提交

连接数据库,并使用

#coding:utf8
#导入驱动
import mysql.connector as mysql

#打开数据库连接:地址、用户名、密码、指定数据库
cnx=mysql.connect(user='root',password='***********',host='localhost',database='students',port=3306)
#获得操作语句的游标
cursor=cnx.cursor()
#拼接数据库语句

插入操作

sqlstr="insert into student(id,stu_name,age,grade_id) values(7,'小花花',19,20)"
cursor.execute(sqlstr)   #运行完毕
#必须通过commit进行提交到数据库进行执行
cnx.commit()

更新操作

sqlstr="update student set age=35 where stu_name='小花花'"
cursor.execute(sqlstr)   #运行完毕
#必须通过commit进行提交到数据库进行执行
cnx.commit()

查询操作

sqlstr="select * from student"
cursor.execute(sqlstr)
#不再提交,查询内容
result=cursor.fetchall()
#可以遍历这个结果集
for row in result:
    print(row)
print(type(result))

删除操作

sqlstr="delete from student where stu_name='小明'"
cursor.execute(sqlstr)   #运行完毕
#必须通过commit进行提交到数据库进行执行
cnx.commit()

不重复插入

sqlstr="select * from student where stu_name='小花'"
cursor.execute(sqlstr)
result=cursor.fetchall()
#如果数据存在,则大于0
if len(result)>0:
    print("存在")
else:
    print("数据不存在")
    sqlstr="insert into student(id,stu_name,age,grade_id) values(10,'小花',23,43)"
    cursor.execute(sqlstr)
    cnx.commit()
上一篇:机器学习基石 7.4 Interpreting VC Dimension


下一篇:iOS 反射机制的使用 SEL Class Protocol 与字符串的转换