zoukankan      html  css  js  c++  java
  • 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)

    执行上面的代码

    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:具有更好的东西,希望能够跟大家多多交流学习;
  • 相关阅读:
    sql查询重复记录、删除重复记录方法大全
    查询字段所在的表/视图
    查询某张表被哪些存储过程或者视图用到的sql语句
    SQL中char、varchar、nvarchar的区别
    JS快速获取图片宽高的方法
    Git代码冲突常见解决方法
    HTML__图片轮播ion-slide-box
    oracle列出两个日期间所有日期
    myeclipse 8.0 注册码
    网页中图片旋转的几种实现方式
  • 原文地址:https://www.cnblogs.com/ivanpan/p/6671089.html
Copyright © 2011-2022 走看看