Python连接mysql数据库方法汇总
作为Python培训的实力派机构,光环大数据对Python连接mysql数据库方法汇总如下:
首先你要做的还是下载相应的模块并且安装啦,下载地址自己搜,网上有很多,安装的话也很好办,安装之后python的安装目录下的Lib文件夹下的site-packages文件夹下的MySQLdb文件夹,这之中存放的便是该模块的定义。准备工作做好之后我们需要在源码中importMySQLdb
数据库的连接
模块引入之后我们就需要和数据库进行连接了,实例代码如下:
db=MySQLdb.connect("localhost","root","123456","myciti")
这三个关键参数的含义一目了然:第一个为服务器的地址,第二个为用户名,第三个为dbms密码,第四个为要访问的数据库,其实该connect函数的参数不止这些,不过由于其有默认值而且大多数情况下不用修改,因而省略了。这里做如下列表:
host,连接的数据库服务器主机名,默认为本地主机(localhost)。
user,连接数据库的用户名,默认为当前用户。
passwd,连接密码,没有默认值。
db,连接的数据库名,没有默认值。
conv,将文字映射到Python类型的字典。默认为MySQLdb.converters.conversions
cursorclass,cursor()使用的种类,默认值为MySQLdb.cursors.Cursor。
compress,启用协议压缩功能。
named_pipe,在windows中,与一个命名管道相连接。
init_command,一旦连接建立,就为数据库服务器指定一条语句来运行。
read_default_file,使用指定的MySQL配置文件。
read_default_group,读取的默认组。
unix_socket,在unix中,连接使用的套接字,默认使用TCP。
port,指定数据库服务器的连接端口,默认是3306
大家可能会注意到源码中没有用到端口号,这是因为MySQLdb的connect函数的该参数的默认值便是3306,如果你在安装mysql的时候修改了数据库的端口号,那么你就需要在源码中加上该参数的修改值了。
执行sql语句
连接上之后便是执行sql语句了,源代码如下:
importMySQLdb
db=MySQLdb.connect("localhost","root","123456","myciti")
cursor=db.cursor()
sql="""insertintoarticlevalues(0,"woainimahah","http://www.aa.com","2012-9-8","wo","qq","skjfasklfj","2019","up")"""
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
db.close
这里需要注意的是一定要记得commit,如果不提交那么数据库是不会有变化的
将sql语句改变成其他,便可以实现其他静态的操作,如“deletefromarticlewhereid>3”
选择和打印
连接数据库最重要的目的便是读取数据库中的信息,那么如何获取数据库中的数据呢?如何提取有效的信息呢?见如下代码:
下面的程序可以实现打印数据库中article表中所有行的第二列的数据:
importMySQLdb
db=MySQLdb.connect("localhost","root","123456","myciti")
cursor=db.cursor()
cursor.execute("select*fromarticle")
data=cursor.fetchone()
whiledata!=None:
printdata[1]
data=cursor.fetchone()
db.close
我们也可以使用如下代码:
importMySQLdb
db=MySQLdb.connect("localhost","root","123456","myciti")
cursor=db.cursor()
cursor.execute("select*fromarticle")
datas=cursor.fetchall()
fordataindatas:
printdata[1]
printcursor.rowcount,"rowsintatal"
db.close
我们可以从代码中看出上面的各个函数的区别:
fetchone是从数据库表中取出一行记录,第二次调用便取出next行,不断向下走
fetchall取出数据库表中所有行的数据
rowcount读出数据库表中的行数
和java中的占位符一样,python中也需要这些占位符来实现动态的选择。见如下代码:
importMySQLdb
a="down"
b=4
db=MySQLdb.connect("localhost","root","123456","myciti")
cursor=db.cursor()
cursor.execute("select*fromarticlewheretrend='%s'andid<'%d'"%(a,b))
datas=cursor.fetchall()
fordataindatas:
printdata[1]
printcursor.rowcount,"rowsintatal"
db.close
这里的占位符和java中的?占位符还有一点区别,那就是它声明了类型,和C中的格式输出是一样的。注意后面的%
那么返回的data也是一个列表,通过使用[]操作符来访问特定列的数据。
静态插入和动态插入
静态插入上面我们已经讲了,那么下面我们再讲一下动态插入
动态插入也是用占位符来实现的
importMySQLdb
title="wangxinmeiwo"
url="henxiangni"
db=MySQLdb.connect("localhost","root","123456","myciti")
cursor=db.cursor()
sql="""insertintoarticlevalues(0,"%s","%s","2012-9-8","wo","qq","skjfasklfj","2019","up")"""
try:
cursor.execute(sql%(title,url))
db.commit()
except:
db.rollback()
db.close
可以看到这里的占位符和上面的使用方式是一样的
update操作
占位符的使用和上面是一样的
importMySQLdb
title="haoxiangni"
id=11
db=MySQLdb.connect("localhost","root","123456","myciti")
cursor=db.cursor()
sql="""updatearticlesettitle="%s"whereid="%d""""
try:
cursor.execute(sql%(title,id))
db.commit()
except:
db.rollback()
db.close
以上便是python访问数据库所涉及到的主要的操作。感谢光环大数据Python培训的讲师的汇总分享。
大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服!