MySQL---连接器(python如何操作数据库媒介,基…
2018-06-17 23:34:34来源:未知 阅读 ()
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)
执行上面的代码
tuple@MyVM:~/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:具有更好的东西,希望能够跟大家多多交流学习;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python数据库-MySQL单表查询基本操作(50) 2019-07-24
- python数据库-MySQL数据库的介绍及安装(47) 2019-07-24
- python数据库-MySQL数据库的增删改查基本操作(49) 2019-07-24
- python数据库-MySQL安装问题总结(48) 2019-07-24
- 数据库之MySQL与Python交互 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash