mysql连接器python使用_MySQL---连接器(python如何操作数据库媒介,基于python语言)...

MySQL — 连接器

连接器的概念

它们往往是一类Python包,或者是一类已经写好的Python库。这些库提供了我们Python去连接数据库服务器的基本功能。

? 既然它是一个包,那么我们首先学会导入这个包

#! /usr/bin/env python3

# coding: utf-8

?

from mysql import connector

print(‘导入成功‘)

执行以上代码

$ python3 test_connector.py

导入成功

表示我们成功导入了相关的包或者模块

连接器语法

要学习连接器语法,我们可以参考:https://dev.mysql.com/doc/connector-python/en/

连接

连接有两个部分,不可或缺:

连接信息: 主机、端口、用户名、密码和数据库名

db_config = {

‘host‘: ‘localhost‘,#主机

‘port‘: 3306,#端口

‘user‘: ‘???‘,#用户

‘passwd‘: ‘???‘,#密码

‘db‘: ‘python‘,#连接的数据库

}

连接函数:所有连接器都有的函数,名字叫connect

from mysql.connector import connect

注意:该函数反回的是一个代表着连接的对象,我们可以把这个连接对象看成是客户端。

游标

游标是从一个特定的连接中获取的,cnn中有一个cursor方法,可以返回一个游标对象。

cur = cnn.cursor()

操作数据库都是通过游标来进行,一个连接可以产生多个游标。

游标,其中有一个execute方法,只需要把我们需要执行的SQL语句当作参数传入其中,就可以让连接器指挥MySQL服务器执行语句。

注意: execute并没有返回值

那么,查处来的星系在哪呢?

其实,查出来的信息就在我们的游标中。

由于,我们查出来的数据都是以行的形式出现的(查出来的是一条条记录),全部存在游标里,当我们迭代这个游标的时候,我们其实是依次的拿到了其中的行(记录),每次输出我们的迭代项的时候,我们就是输出了其中的一行。

#! /usr/bin/env python3

# coding: utf-8

?

from mysql.connector import connect

?

db_config = {

‘host‘: ‘localhost‘,

‘port‘: 3306,

‘user‘: ‘???‘,

‘passwd‘: ‘???‘,

‘db‘: ‘mysql‘, # 相当于自动USE

}

?

cnn = connect(**db_config)

cur = cnn.cursor()

print(cur.execute(‘SELECT Host, User, authentication_string FROM user‘))

?

for i in cur:

print(i)

执行上面的代码

[email protected]:~/testgit/learning_connector$ python3 test_cursor.py

None

(bytearray(b‘localhost‘), bytearray(b‘root‘), b‘*81BCF9486900824FB0A3746219755FC21C50D058‘)

(bytearray(b‘localhost‘), bytearray(b‘mysql.sys‘), b‘*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE‘)

(bytearray(b‘localhost‘), bytearray(b‘debian-sys-maint‘), b‘*599D0C45E62D3A9D58D74C0C5008688F13738AE5‘)

(bytearray(b‘%‘), bytearray(b‘tuple‘), b‘*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9‘)

连接器,会自动帮我们,在Python的数据类型,和Mysql数据类型中自动转换。

关闭

使用连接器,和使用文件一样,一定要记得关闭,顺序是

先关游标

再关连接

#! /usr/bin/env python3

# coding: utf-8

?

from mysql.connector import connect

?

db_config = {

‘host‘: ‘localhost‘,

‘port‘: 3306,

‘user‘: ‘???‘,

‘passwd‘: ‘???‘,

‘db‘: ‘python‘, # 相当于自动USE

}

?

cnn = connect(**db_config)

cur = cnn.cursor()

?

sql_1 = ‘‘‘

CREATE TABLE `from_connector` (

`id` int PRIMARY KEY auto_increment,

`name` varchar(20) NOT NULL

)

‘‘‘

?

sql_2 = ‘‘‘

SHOW TABLES

‘‘‘

?

cur.execute(sql_1)

cur.execute(sql_2)

for i in cur:

print(i)

cur.close()

cnn.close()

ps:具有更好的东西,希望能够跟大家多多交流学习;

原文:http://www.cnblogs.com/ivanpan/p/6671089.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值