标签:存在 rdb python基础 sys 定义 span 博客 返回值 接下来
这次些的文章是对于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()
这种查询方式是用户指定的,每次查询多少条数据,这里我使用的是每次查询一条数据,死循环查询,当查询不到数据时跳出循环,
这样就查询出来了: 没有办法截屏全部 只能截取部分图片
大家看完教程后,自己在电脑上练习一下,还是很快就能学会的。
如果博客有错误请大家在下面评论出来,
不懂的地方是在下方评论哦!!!
标签:存在 rdb python基础 sys 定义 span 博客 返回值 接下来
原文地址:https://www.cnblogs.com/mCarrYoung/p/9940033.html