【 python 学习笔记 -- 数据库】Python3 + MySQL

2018-06-18 00:50:27来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

【使用工具】 PyMySQL 模块, MySQL

【实例】

1. 利用PyMySQL模块,连接到MySQL数据库:

首先我在MySQL中创建了一个数据库,名为tutorial:

打开终端,输入 mysql -u root -p 打开mysql。其中 -u 表示用户名, -p 表示密码。我的用户名为root。

进入mysql后,输入SHOW DATABASES;(不区分大小写)可以显示所有的数据库,注意要在结尾加分号。

然后输入 CREATE DATABASE tutorial创建一个名为tutorial的数据库。

再次SHOW DATABASES; 我们可以看到新增了一个数据库——tutorial。

 

下一步,在python中做如下操作连接到tutorial这个数据库:

【步骤】:

   1. 导入pymysql模块。

  2.  建立和数据库的连接, 连接成功则返回一个connection对象给db,否则返回None。   pymsql.connect()中输入你的host名,用户名,密码,和想要连接的数据库名。

  3. 利用cursor()方法产生一个cursor对象,用于后续执行操作。

  4. 利用execute()方法执行操作,这里查询MySQL的版本

  5. 获取查询结果,fetchone()方法可取一条数据;fetchall()获取所有数据; rowcount: 只读属性,返回受execute()方法影响的行数。

  6. 打印查询结果: 我的结果是Database Version: 5.7.20-log

  7. close()断开连接。

 

2. 创建一个数据库表(Table):

我们创建一个表格名为USERS,它的属性有 名,姓,年龄,性别,收入。

 

【步骤】:

  1.  建立连接,创建cursor对象。 和上文中一样。

  2. 执行操作,如果数据库中已经存在名为USERS的表格,删除该表格。

  3. 创建表格,名为USERS,具体的属性有first_name (数据类型 VARCHAR(20), 不为空), last_name(数据类型 VARCHAR(20)), age (数据类型 整数), gender (数据类型 CHAR(1)),  income (数据类型(FLOAT))。

  4.  断开连接

 

现在我们利用DESCRIBE USERS,查看USERS表格的详细信息:

3.插入(INSERT)操作:

操作语句如sql所在行命令所示,也可以用上面注释的那段命令。 结果向USERS表格中插入了一行数据,first_name为Jade, last_name为Lu, age为26,gender为F,income为20000。

commit()提交改变, 这个操作相当于给数据库一个信号表示确认这些改变。执行此操作后,没法撤回改变。

如果出错, rollback。

结果如下:

 

4. 查询(SELECT)并获取记录:

上图中SELECT行所在语句表示:搜索在USERS这个表格中所有income属性大于10000的记录

execute()执行, fetchall()返回所有符合搜索条件的记录。

 

5. 更新操作:

下面例子中,我们更新USERS表格中所有满足gender为'F'的记录,将这些记录的age+1。

在此之前我们可以再添加几个记录,例如

然后我们进行更新操作:

UPDATE所在行语句表示: 更新USERS表格,将gender='F'的年龄设置为在原来基础上加一。由于mysql不区别大小写,我在上述python代码中age写成了AGE,结果也是一样的。

结果如下:

 

6. 删除操作:

下面例子中我们删除所有age低于25的记录:

结果如下:

 

【参考链接】

  廖雪峰老师的python教程 :

    https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320107391860b39da6901ed41a296e574ed37104752000

  Youtube: 

  https://www.youtube.com/watch?v=UGu9unCW4PA&list=PL_c9BZzLwBRKn20DFbNeLAAbw4ZMTlZPH

  Python 3 教程:

  https://www.tutorialspoint.com/python3/python_database_access.htm

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:python:面向对象进阶

下一篇:MongoDB