学习笔记26数据库的连接与操作

Posted SAP剑客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记26数据库的连接与操作相关的知识,希望对你有一定的参考价值。

数据库的连接与操作

一、连接数据库

用Python连接mysql数据库,使用的方法是Connect(),具体的参数同MySQL Workbench中的连接信息,具体如下图所示。

# 用Python 连接数据库

connect = pymysql.Connect(host="127.0.0.1",

                          port=3306,

                          user="mao",

                          password="123456",

                          database="pythontest",

                          charset="utf8")

二、建立游标执行SQL

操作SQL之前需要用到cursor()方法创建一个游标,然后通过该游标去处理SQL代码。

 上面的例子是创建一个自定义表“userinfo”,包含id、name、age和gender四个字段,运行完毕后可以看到在数据库中已经创建成功了。

 创建完table就可以执行插入数据的操作了。

这里需要注意的是:执行完插入代码之后,需要用到commit()方法提交之后才可以在数据库中被查询到。

日常处理中往往需要批量插入多条数据,这时候需要用到循环遍历去处理,每次循环运行一次insert语句,最后一次性提交。

tip:下例中的format(*)中的“*”意思是将元组中的元素解压出来。

 要是觉得上面的循环遍历方法比较繁琐,这里其实也有更为简便的方法,就是executemany()方法,一次性插入多条数据。

三、执行事务

事务机制可以确保数据的一致性。

事务应该具有以下四个属性:原子性、一致性、隔离性和持久性,这四个属性通常称之为ACID特性。

  • 原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的各个操作,要么都做,要么都不做;
  • 一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的;
  • 隔离性(isolation):一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰;
  • 持久性(durability):持久性也称之为永久性(permanence),指的是一个事务一旦提交,它对数据库中数据的改变就应该是永久性的,接下来的其他操作或故障不应该对其有任何影响。

为此,引入了以下格式的代码。

try:      # 尝试运行下面的代码,可能正常运行,也可能报错

except:   # 如果上面的代码报错,则运行下面的代码

finally:   # 不管代码是否报错,下面的代码均会运行

比如上例中的插入操作,严格来说不是很严谨,我们就可以这样做改善,使其保持数据的一致性。

 

四、查询数据

cursor.fetchone()    # 逐条提取数据

cursor.fetchall()     # 提取所有数据

cursor.fetchmany(3)  # 提取查询到的前几条数据

这里面也是有指针的,提取完毕了就没有了。

 

【练习题】

读取文件“grade.txt“,将其数据存到MySQL数据库中,然后查询出数学成绩大于90分的学生清单。

 

以上是关于学习笔记26数据库的连接与操作的主要内容,如果未能解决你的问题,请参考以下文章

java学习笔记数据库连接池与操作工具类

20179223《Linux内核原理与分析》第十一周学习笔记

day13_Mysql事物与数据库连接池学习笔记

17-8-26-WebApp总结

斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时26&&27

C++学习笔记55:流类库与输入输出