Python连接mysql数据库方法汇总

编辑:光环大数据 来源: 互联网 时间: 2017-10-16 10:57 阅读:

 

作为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培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服

你可能也喜欢这些

在线客服咨询

领取资料

X
立即免费领取

请准确填写您的信息

点击领取
#第三方统计代码(模版变量) '); })();
'); })();