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',#连接的数据库
}
连接函数:所有连接器都有的函数,名字叫
connectfrom 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:具有更好的东西,希望能够跟大家多多交流学习;
MySQL---连接器(python如何操作数据库媒介,基于python语言)的更多相关文章
- python 连接操作数据库(一)
一.下面我们所说的就是连接mysql的应用: 1.其实在python中连接操作mysql的模块有多个,在这里我只给大家演示pymysql这一个模块(其实我是感觉它比较好用而已): pymysql是第三 ...
- Python:操作数据库
(一) 前言 本文说明如何连接Oracle.MySQL.sqlserver,以及执行sql.获取查询结果等. (二) DB-API DB-API阐明一系列所需对象和数据库 ...
- Python连接操作数据库
步骤: 1.创建与数据库的连接对象: 2.创建游标: 3.通过游标执行语句 4.增删改需要提交(commit)数据 5.关闭连接 如: import MySQLdb # Python通过MySQL ...
- python之操作数据库
一.操作mysql 首先,python3操作mysql.需要安装第三方模块pymysql,在python2中则使用的是pysqldb.这里使用pymysql. 直接使用pip install pymy ...
- python中操作数据库
python中要操作数据库,要使用该数据库在python中对应的驱动库,本文介绍python操作mysql数据库 1.首先安装pymysql 2.导入库 3.建立连接 4.建立游标 5.发起请求 6. ...
- python 连接操作数据库(二)
一.我们接着上期的博客继续对ORM框架进行补充,顺便把paramiko模块也给大家讲解一下: 1.ORM框架: 在连接操作数据库的第一个博客中也已经说了,sqlalchemy是一个ORM框架,总结就是 ...
- python 多线程操作数据库
如果使用多线程操作数据库,容易引起多用户操作锁表 OperationalError: (2013, 'Lost connection to MySQL server during query') 使用 ...
- MySQL学习02(操作数据库)
操作数据库 结构化查询语句分类 名称 解释 命令 DDL(数据库定义语言) 定义和管理数据对象,例如数据库和数据表 create.drop.alter DML(数据操作语言) 用于操作数据库对象中所包 ...
- MySQL sql命令行操作数据库
数据库命令行操作 命令行操作数据库, [if exists] 可加可不加, 命令行操作一定要加英文分号 ; 结尾 创建数据库 : create database [if not exists] 数据库 ...
随机推荐
- sizeof和strlen的区别和联系总结
link:http://blog.csdn.net/ghevinn/article/details/9974967 strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头 ...
- Java Web(七) JSTL标签库
在之前我们学过在JSP页面上为了不使用脚本,所以我们有了JSP内置的行为.行为只能提供一小部分的功能,大多数的时候还是会用java脚本,接着就使用了EL表达式,基本上EL表达式看似能满足我们的要求,它 ...
- MySQL入门笔记(一)
一.数据类型 1. 整型 2. 浮点型 3. 字符型 4. 日期时间型 二.数据库操作 1. 创建库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_nam ...
- 使用yum安装cmake
一.搜索yum源中的CMake,查看源中最新的版本是什么,使用命令[root@localhost ~]# yum search cmake ,如果搜索出的结果过多可以配合grep命令来控制搜索结果. ...
- TCP/IP协议(零)TCP/IP参考模型
我们先浏览一下TCP/IP的参考模型,对网络模型有一个大致的了解,后续着重学习OSI参考模型. TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型. 1.结构 TCP/ ...
- 每天一个Linux命令(21)--find命令之xargs
在使用 find 命令的 -exec 选项处理匹配到的文件时, find 命令将所有匹配到的文件一起传递给 exec 执行,但有些系统对能够传递给 exec 的命令长度有限制,这样在 find 命令运 ...
- PHP字符串三种定义方式
PHP的字符串有三种定义方式:单引号 .双引号 .定界符 1.单引号:指定一个简单字符串的最简单的方法是用单引号(字符 ')括起来. 在被单引号括起来的字符串中,要再表示一个单引号,需要用反斜线(\ ...
- 阿里云开发之OSS数据迁移
最近由于项目需求,需要将一个aliyun账号下的oss数据导入到两一个aliyun账号下的oss,经过一番坎坷,最终搞定. 1.查看oss数据迁移官方文档,我是在本地windows电脑上进行操作的,先 ...
- Git如何检出指定目录或文件
系统版本:Window 10,Git 版本:2.7.1 对于大型 Git 仓库,每次执行 Git 命令,都需要经过漫长的等待,特别是要经常执行的 git status 命令.下面是一个例子... 从 ...
- Reverse Words in a String leetcode
Given an input string, reverse the string word by word. For example,Given s = "the sky is blue& ...