【操作mysql】-- Python基础

这次些的文章是对于python3.x,连接数据库的库使用的是pymysql

在教程开始的时候需要先了解下mysql:

      MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
      MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
      MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

  python 是如何练级的mysql,对于这点我想大家在学习其他的编程语言的时候也清楚,mysql厂商给出了一套API,java有Java的jdbc,当然python也有python自己的,咱们就使用python3.x专用的pymysql。因为我已经安装好了pymysql现在也没有办法给大家截图,这里我就找了一个网上的网友些的一篇关于安装pymsql的文章:点击传送

在此之前,还需要了解mysql语句,俗话说:磨刀不误砍柴工,所以这里在操作数据库之前,现看一下是如何创建的mysql数据库,如何添加的表,如何插入数据的,如果mysql不懂得如何安装点这里进行传送到教程。mysql语句教程点击这里跳转。

这里我就把这次教程学习的增删查该者几个的语句给大家写出来:

  创建数据库:create database 数据库名;

  创建表:create table 表名(字段名 字段类型);

    插入数据:insert into 表名(字段名) values (插入的数据);

  删除数据:delete from 表名 where 条件;。 注:这里加上条件就是删除的和条件匹配的记录,不加条件就是删除所有

  查询:select 字段名 from 表名; 注:这里可以用*代替字段名,这样会显示数据库里面的所有内容

好了关于数据库的知识先了解这些,那么先创建一个数据,因为我电脑上没有安装数据库管理软件,这里咱们就使用命令行来操作数据库,大家可以自己下载一个自己用的熟练的数据库操作软件,这样更方便操作。

首先登陆数据库:使用的命令是(mysql -u 用户名 -p) 我使用的root进行登陆的

创建数据库:(create database student;) 这个命令上面介绍sql语句的时候已经说了大家可以去看下:

执行完了命令显示 Query ok,1 row affected就说明创建成功

然后需要打开数据库:use 数据库名;    这样打开数据库才可以对数据进行操作

创建表(create table stu(name varchar(5),age varchar(2),gender varchar(5));)

插入数据:(insert into stu(name,age,gender) values ("张三","12","男");)

这样就成功的插入了一条数据,接下来我们查看有没有插入:(select * from stu;)

看,这里已经显示了我插入的数据了。

基本的操作数据库我们会了, 那么如何使用python来操作数据库呢?接下来,看我操作。嘿嘿嘿嘿(贱贱的微笑)。

这里我没有说如何安装pymysql哈,上面我给出了网上网友写的一片关于安装pymysql的教程,很仔细大家可以看看:

 1 # -*- coding:UTF-8 -*-
 2 
 3 # Author:Carr
 4 # Project_Name:Study
 5 # @Time:2018/11/10 下午4:30
 6 # IDE:PyCharm
 7 
 8 #导入操作数据库的API
 9 import pymysql
10 
11 '''
12 自定义函数
13 _host      mysql数据库的地址
14 _username  数据库用户名
15 _pwd       数据库密码
16 _db        数据库名
17 _charset   数据库字符集
18 _port      连接数据库端口
19 '''
20 def connectDatabase(_host,_username,_pwd,_db,_charset,_port = 3306):
21     #pymysql连接数据的方法,需要的参数mysql数据库的地址、数据库用户名、数据库密码、数据库名、数据库字符集、连接数据库端口
22     conn = pymysql.connect(host = _host,user = _username,password = _pwd,db = _db,port = _port,charset = _charset)
23     #返回连接数据库返回值
24     return conn
25 
26 conn = connectDatabase('localhost','root','admin123','student','utf8')
27 
28 conn.close()
连接数据代码

操作数据库,使用python插入数据:

1 #这里拿到数据库的游标,因为下面对数据库操作都需要这个游标
2 cursor = conn.cursor()
3 
4 #编写一个插入数据的sql语句
5 sql = 'insert into stu(name,age,gender) values ("尼古拉斯","22","男");'
6 #执行sql语句,因为我的数据库里使用的utf8的编码集,所以这里需要编码到utf8,这是方式插入数据出现未知的错误
7 cursor.execute(sql.encode('utf8'))
8 #提交操作,如果这里没有提交,是不会写入到数据库的
9 conn.commit()
数据库插入数据

运行程序后,这里没有出现红色的错误文字就说明执行成功,接下里看下数据库是否有了新的数据:(select * from stu;)

看这里出现了我刚刚插入的数据,

这里重要说下是关于python对于数据库查询的方法,因为查询这一块相对于其他的插入删除来说有点难度,但是你跟着我的教程走还是挺好理解的:

在此之前我参考了下其他网友写的文章,也进行了几种查询方式的比较,对于大数据量下咱们使用游标fetchmany方法,因为这种方式在大数据量下查询耗时比较短,那咱们就说下如何使用fetchmany游标查询数据库:

先贴代码:

 1 # -*- coding:UTF-8 -*-
 2 
 3 # Author:Carr
 4 # Project_Name:Study
 5 # @Time:2018/11/10 下午4:30
 6 # IDE:PyCharm
 7 
 8 #导入操作数据库的API
 9 import pymysql
10 
11 '''
12 自定义函数
13 _host      mysql数据库的地址
14 _username  数据库用户名
15 _pwd       数据库密码
16 _db        数据库名
17 _charset   数据库字符集
18 _port      连接数据库端口
19 '''
20 def connectDatabase(_host,_username,_pwd,_db,_charset,_port = 3306):
21     #pymysql连接数据的方法,需要的参数mysql数据库的地址、数据库用户名、数据库密码、数据库名、数据库字符集、连接数据库端口
22     conn = pymysql.connect(host = _host,user = _username,password = _pwd,db = _db,port = _port,charset = _charset)
23     #返回连接数据库返回值
24     return conn
25 
26 conn = connectDatabase('localhost','root','admin123','student','utf8')
27 #这里拿到数据库的游标,因为下面对数据库操作都需要这个游标
28 cursor = conn.cursor()
29 
30 #编写一个查询数据的sql语句
31 sql = 'select * from stu;'
32 yus = []
33 #执行sql
34 cursor.execute(sql)
35 #死循环查询数据,当没有获取到数据的时候跳出循环
36 while True:
37     data = cursor.fetchmany(1)
38     #打印获取到的数据
39     print(data)
40     yus.append(data)
41     if not data:
42         break
43 
44 #提交操作,如果这里没有提交,是不会写入到数据库的
45 conn.commit()
46 
47 #每次进行一次打开的操作,都需要关闭
48 cursor.close()
49 conn.close()
查询代码

这种查询方式是用户指定的,每次查询多少条数据,这里我使用的是每次查询一条数据,死循环查询,当查询不到数据时跳出循环,

这样就查询出来了: 没有办法截屏全部 只能截取部分图片

大家看完教程后,自己在电脑上练习一下,还是很快就能学会的。

如果博客有错误请大家在下面评论出来,

不懂的地方是在下方评论哦!!!

猜你喜欢

转载自www.cnblogs.com/mCarrYoung/p/9940033.html