python 数据库,sql与python区别是什么有什么联系
各位老铁们好,相信很多人对python 数据库都不是特别的了解,因此呢,今天就来为大家分享下关于python 数据库以及sql与python区别是什么有什么联系的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
如何使用python对数据库(mysql)进行操作
一、数据库基本操作
1.想允许在数据库写中文,可在创建数据库时用下面命令
create database zcl charset utf8;2.查看students表结构
desc students;3.查看创建students表结构的语句
show create table students;4.删除数据库
drop database zcl;5.创建一个新的字段
alter table students add column nal char(64);PS:本人是很讨厌上面这种“简单解释+代码”的博客。其实我当时在mysql终端写了很多的实例,不过因为当时电脑运行一个看视频的软件,导致我无法Ctrl+C/V。现在懒了哈哈~~
二、python连接数据库python3不再支持mysqldb。其替代模块是PyMySQL。本文的例子是在python3.4环境。
1.安装pymysql模块
pip3 install pymysql2.连接数据库,插入数据实例
import pymysql
#生成实例,连接数据库zcl
conn= pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
#生成游标,当前实例所处状态
cur= conn.cursor()
#插入数据
reCount= cur.execute('insert into students(name, sex, age, tel, nal) values(%s,%s,%s,%s,%s)',('Jack','man',25,1351234,"CN"))
reCount= cur.execute('insert into students(name, sex, age, tel, nal) values(%s,%s,%s,%s,%s)',('Mary','female',18,1341234,"USA"))
conn.commit()#实例提交命令
cur.close()
conn.close()
print(reCount)查看结果:
mysql> select* from students;+----+------+-----+-----+-------------+------+
| id| name| sex| age| tel| nal|
+----+------+-----+-----+-------------+------+
| 1| zcl| man| 22| 15622341234| NULL|
| 2| alex| man| 30| 15622341235| NULL|
+----+------+-----+-----+-------------+------+
2 rows in set3.获取数据
import pymysql
conn= pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
cur= conn.cursor()
reCount= cur.execute('select* from students')
res= cur.fetchone()#获取一条数据
res2= cur.fetchmany(3)#获取3条数据
res3= cur.fetchall()#获取所有(元组格式)
print(res)
print(res2)
print(res3)
conn.commit()
cur.close()
conn.close()输出:
(1,'zcl','man', 22,'15622341234', None)
((2,'alex','man', 30,'15622341235', None),(5,'Jack','man', 25,'1351234','CN'),(6,'Mary','female', 18,'1341234','USA'))
()三、事务回滚事务回滚是在数据写到数据库前执行的,因此事务回滚conn.rollback()要在实例提交命令conn.commit()之前。只要数据未提交就可以回滚,但回滚后ID却是自增的。请看下面的例子:
插入3条数据(注意事务回滚):
import pymysql
#连接数据库zcl
conn=pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
#生成游标,当前实例所处状态
cur=conn.cursor()
#插入数据
reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s,%s,%s,%s,%s)',('Jack','man', 25, 1351234,"CN"))
reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s,%s,%s,%s,%s)',('Jack2','man', 25, 1351234,"CN"))
reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s,%s,%s,%s,%s)',('Mary','female', 18, 1341234,"USA"))
conn.rollback()#事务回滚
conn.commit()#实例提交命令
cur.close()
conn.close()
print(reCount)未执行命令前与执行命令后(包含回滚操作)(注意ID号):未执行上面代码与执行上面代码的结果是一样的!!因为事务已经回滚,故students表不会增加数据!
mysql> select* from students;+----+------+--------+-----+-------------+------+
| id| name| sex| age| tel| nal|
+----+------+--------+-----+-------------+------+
| 1| zcl| man| 22| 15622341234| NULL|
| 2| alex| man| 30| 15622341235| NULL|
| 5| Jack| man| 25| 1351234| CN|
| 6| Mary| female| 18| 1341234| USA|
+----+------+--------+-----+-------------+------+
4 rows in set执行命令后(不包含回滚操作):只需将上面第11行代码注释。
mysql> select* from students;+----+-------+--------+-----+-------------+------+
| id| name| sex| age| tel| nal|
+----+-------+--------+-----+-------------+------+
| 1| zcl| man| 22| 15622341234| NULL|
| 2| alex| man| 30| 15622341235| NULL|
| 5| Jack| man| 25| 1351234| CN|
| 6| Mary| female| 18| 1341234| USA|
| 10| Jack| man| 25| 1351234| CN|
| 11| Jack2| man| 25| 1351234| CN|
| 12| Mary| female| 18| 1341234| USA|
+----+-------+--------+-----+-------------+------+
7 rows in set总结:虽然事务回滚了,但ID还是自增了,不会因回滚而取消,但这不影响数据的一致性(底层的原理我不清楚~)
四、批量插入数据import pymysql
#连接数据库zcl
conn= pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
#生成游标,当前实例所处状态
cur= conn.cursor()
li= [
("cjy","man",18,1562234,"USA"),
("cjy2","man",18,1562235,"USA"),
("cjy3","man",18,1562235,"USA"),
("cjy4","man",18,1562235,"USA"),
("cjy5","man",18,1562235,"USA"),
]
#插入数据
reCount= cur.executemany('insert into students(name,sex,age,tel,nal) values(%s,%s,%s,%s,%s)', li)
#conn.rollback()#事务回滚
conn.commit()#实例提交命令
cur.close()
conn.close()
print(reCount)pycharm下输出: 5
mysql终端显示:
mysql> select* from students;#插入数据前+----+-------+--------+-----+-------------+------+
| id| name| sex| age| tel| nal|
+----+-------+--------+-----+-------------+------+
| 1| zcl| man| 22| 15622341234| NULL|
| 2| alex| man| 30| 15622341235| NULL|
| 5| Jack| man| 25| 1351234| CN|
| 6| Mary| female| 18| 1341234| USA|
| 10| Jack| man| 25| 1351234| CN|
| 11| Jack2| man| 25| 1351234| CN|
| 12| Mary| female| 18| 1341234| USA|
+----+-------+--------+-----+-------------+------+
7 rows in set
mysql> mysql> select* from students;#插入数据后+----+-------+--------+-----+-------------+------+
| id| name| sex| age| tel| nal|
+----+-------+--------+-----+-------------+------+
| 1| zcl| man| 22| 15622341234| NULL|
| 2| alex| man| 30| 15622341235| NULL|
| 5| Jack| man| 25| 1351234| CN|
| 6| Mary| female| 18| 1341234| USA|
| 10| Jack| man| 25| 1351234| CN|
| 11| Jack2| man| 25| 1351234| CN|
| 12| Mary| female| 18| 1341234| USA|
| 13| cjy| man| 18| 1562234| USA|
| 14| cjy2| man| 18| 1562235| USA|
| 15| cjy3| man| 18| 1562235| USA|
| 16| cjy4| man| 18| 1562235| USA|
| 17| cjy5| man| 18| 1562235| USA|
+----+-------+--------+-----+-------------+------+
12 rows in set学完的东西要及时总结,有些东西忘记了阿~_~
sql与python区别是什么有什么联系
一、性质不同
1、sql:是一种特殊目的的编程语言,是一种数据库查询和程序设计语言。
2、python:Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990年代初设计,作为一门叫做ABC语言的替代品。
二、作用不同
1、sql:用于存取数据以及查询、更新和管理关系数据库系统。
2、python:Python提供了高效的高级数据结构,还能简单有效地面向对象编程。
三、特点不同
1、sql:不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。
2、python:Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
参考资料来源:
百度百科-Python(计算机编程语言)
百度百科-结构化查询语言(SQL)
python库有哪些
Python比较常见的库有:Arrow、Behold、Click、Numba、Matlibplot、Pillow等:
1、Arrow
Python中处理时间的库有datetime,但是它过于简单,使用起来不够方便和智能,而Arrow可以说非常的方便和智能。它可以轻松地定位几个小时之前的时间,可以轻松转换时区时间,对于一个小时前,2个小时之内这样人性化的信息也能够准确解读。
2、Behold
调试程序是每个程序员必备的技能,对于脚本语言,很多人习惯于使用print进行调试,然而对于大项目来说,print的功能还远远不足,我们希望有一个可以轻松使用,调试方便,对变量监视完整,格式已于查看的工具,而Behold就是那个非常好用的调试库。
3、Click
现在几乎所有的框架都有自己的命令行脚手架,Python也不例外,那么如何快速开发出属于自己的命令行程序呢?答案就是使用Python的Click库。Click库对命令行api进行了大量封装,你可以轻松开发出属于自己的CLI命令集。终端的颜色,环境变量信息,通过Click都可以轻松进行获取和改变。
4、Numba
如果你从事数学方面的分析和计算,那么Numba一定是你必不可少的库。Numpy通过将高速C库包装在Python接口中来工作,而Cython使用可选的类型将Python编译为C以提高性能。但是Numba无疑是最方便的,因为它允许使用装饰器选择性地加速Python函数。
5、Matlibplot
做过数据分析,数据可视化的数学学生一定知道matlab这个软件,这是一个收费的数学商用软件,在Python中,Matlibplot就是为了实现这个软件中功能开发的第三方Python库。并且它完全是免费的,很多学校都是用它来进行数学教学和研究的。
6、Pillow
图像处理是任何时候我们都需要关注的问题,平时我们看到很多ps中的神技,比如调整画面颜色,饱和度,调整图像尺寸,裁剪图像等等,这些其实都可以通过Python简单完成,而其中我们需要使用的库就是Pillow。
7、pyqt5
Python是可以开发图形界面程序的。而pyqt就是一款非常好用的第三方GUI库,有了它,你可以轻松开发出跨平台的图形应用程序,其中qtdesigner设计器,更是加速了我们开发图形界面的速度。
除了上述介绍的之外,Python还有很多库,比如:Pandas、NumPy、SciPy、Seaborn、Keras等。
python常用的数据库有哪些
1、数据收集:(1)Scrapy:协助使用者自动提取网页所需信息,并将其整理为表格或JSON格式的数据结构;(2)Selenium:使用者在感兴趣的网站上已经进行了交互行为之后,Seleniumn一般能派上用场;(3)BeautifulSoup:用来收集网站内容的Python库,更适合应用于规模相对较小的问题或一次性任务。
2、数据清理和转化:(4)Pandas:必须学习的,使用者可以运用Pandas操控处于Pandas数据框架内的数据,而且其内置巨量的函数,帮助使用者进行数据转换;(5)Numpy:必须学习的,Numpy将Python的对象列表拓展成了全面的多维度序列,而且其内置海量的数学函数;(6)Spacy:帮助使用者将自由文本转化为结构型数据,支持多种语言版本。
3、数据可视化:(7)Matplotlib:最全面的Python数据可视化库;(8)Plotly:只需要写最少的代码就能得出最多彩缤纷的图像。
4、数据模块化:(9)Scikit Learn:高级分析师,开启机器学习之旅,有六大主要模块:数据预处理,维度缩减,数据回归,数据分类,数据聚类分析,模型选择;(10)Tensorflow:由谷歌推出的来源机器学习库,是一个基于网页自动生成的仪表盘,它将数据学习流和结果进行了可视化处理,这一功能对于排错和展示都十分有用;(11)PyTorch:由Facebook发布的一个开源库,用作Python的公共机器学习框架。
5、音频和图像识别:(12)OpenCV:是最常用的图像和视频识别库,能让Python在图像和视频识别领域完全替代Matlab,不仅支持Python,还支持JAVA和Matlab;(13)Librosa:是一个非常强大的音频和声音处理Python库,可以从音频段中提取各个部分,例如节奏以及节拍。
6、网页:(14)Django:开发网页服务后端,设计理念是能用几行代码就建立一个网站的高级框架;(15)Flask:是一个用于Python的轻量级网页开发框架。
好了,文章到这里就结束啦,如果本次分享的python 数据库和sql与python区别是什么有什么联系问题对您有所帮助,还望关注下本站哦!