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数据类型中自动转换。

关闭

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

  1. 先关游标
  2. 再关连接
 
#! /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语言)的更多相关文章

  1. python 连接操作数据库(一)

    一.下面我们所说的就是连接mysql的应用: 1.其实在python中连接操作mysql的模块有多个,在这里我只给大家演示pymysql这一个模块(其实我是感觉它比较好用而已): pymysql是第三 ...

  2. Python:操作数据库

    (一)      前言 本文说明如何连接Oracle.MySQL.sqlserver,以及执行sql.获取查询结果等. (二)      DB-API      DB-API阐明一系列所需对象和数据库 ...

  3. Python连接操作数据库

    步骤: 1.创建与数据库的连接对象: 2.创建游标: 3.通过游标执行语句 4.增删改需要提交(commit)数据 5.关闭连接 如: import MySQLdb   # Python通过MySQL ...

  4. python之操作数据库

    一.操作mysql 首先,python3操作mysql.需要安装第三方模块pymysql,在python2中则使用的是pysqldb.这里使用pymysql. 直接使用pip install pymy ...

  5. python中操作数据库

    python中要操作数据库,要使用该数据库在python中对应的驱动库,本文介绍python操作mysql数据库 1.首先安装pymysql 2.导入库 3.建立连接 4.建立游标 5.发起请求 6. ...

  6. python 连接操作数据库(二)

    一.我们接着上期的博客继续对ORM框架进行补充,顺便把paramiko模块也给大家讲解一下: 1.ORM框架: 在连接操作数据库的第一个博客中也已经说了,sqlalchemy是一个ORM框架,总结就是 ...

  7. python 多线程操作数据库

    如果使用多线程操作数据库,容易引起多用户操作锁表 OperationalError: (2013, 'Lost connection to MySQL server during query') 使用 ...

  8. MySQL学习02(操作数据库)

    操作数据库 结构化查询语句分类 名称 解释 命令 DDL(数据库定义语言) 定义和管理数据对象,例如数据库和数据表 create.drop.alter DML(数据操作语言) 用于操作数据库对象中所包 ...

  9. MySQL sql命令行操作数据库

    数据库命令行操作 命令行操作数据库, [if exists] 可加可不加, 命令行操作一定要加英文分号 ; 结尾 创建数据库 : create database [if not exists] 数据库 ...

随机推荐

  1. Linux系统(二)软件的安装与卸载

    序言 上一篇我们了解啦Linux系统中,根目录下的各个文件夹是做什么用的啦,也学会文件如何压缩打包.那么接下来我们就该用到这个系统啦.用这个系统,就是用这个系统的软件,那么我们对我们需要的软件如何安装 ...

  2. 1305 Pairwise Sum and Divide

    1305 Pairwise Sum and Divide 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 有这样一段程序,fun会对 ...

  3. LruCache原理解析

    LruCache是一个泛型类,它内部采用LinkedHashMap,并以强引用的方式存储外界的缓存对象,提供get和put方法来完成缓存的获取和添加操作.当缓存满时,LruCache会移除较早的缓存对 ...

  4. JS特效——文字打印机

    关键源码如下: 代码一 <!doctype html> <html lang="en"> <head> <meta charset=&qu ...

  5. pl/sql 导出oracle表结构

    tools->export tables 是导出表结构还有数据 tools->export user objects是导出表结构   可以用tools->export tables ...

  6. Android中使用Handler以及CountDownTimer实现包含倒计时的闪屏页面

    上一篇博文<Android中Handler使用浅析>通过实现倒计时闪屏页面的制作引出了Handler的使用方法以及实现原理,博文末尾也提到了实现过程中的Bug,有兴趣的朋友可以点击链接回去 ...

  7. linux 之 tcpdump

    tcpdump详细命令 -i 参数指定监听网口 -c 参数指定监听的数据包数量 -s 参数指定监听数据包大小 -w 参数指定监听数据包写入文件 如果要监听某几台主机数据包 例如10.10.10.10. ...

  8. 【Unity编程】欧拉角与万向节死锁(图文版)

    版权声明:本文为博主原创文章,欢迎转载.请保留博主链接:http://blog.csdn.net/andrewfan 万向节死锁(Gimbal Lock)问题 上文中曾经说过,欧拉旋转的顺规和轴向定义 ...

  9. ACM Fibonacci数 计算

    Fibonacci数 时间限制:3000 ms  |  内存限制:65535 KB 难度:1   描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递 ...

  10. js数组,字符串常用方法汇总(面试必备)

    字符串: 1.concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串.  2.indexOf() – 返回字符串中一个子串第一处出现的索引.如果没有匹配项,返回 -1 .  3.ch ...