zoukankan      html  css  js  c++  java
  • Python3---pymysql库____操作数据库

    • 在Python3当中我们使用pymysql来操作数据库。

    (1)链接对象API:

    classpymysql.connections.Connection(host=None, user=None, password='', database=None, port=0, unix_socket=None, charset='', sql_mode=None, read_default_file=None, conv=None, use_unicode=None, client_flag=0, cursorclass=<class 'pymysql.cursors.Cursor'>, init_command=None, connect_timeout=10, ssl=None, read_default_group=None, compress=None, named_pipe=None, no_delay=None, autocommit=False, db=None, passwd=None, local_infile=False, max_allowed_packet=16777216, defer_connect=False, auth_plugin_map={}, read_timeout=None, write_timeout=None, bind_address=None, binary_prefix=False)

    使用MySQL服务器表示一个套接字,创建类实例的方法是调用connect(),将创建一个MySQL链接对象,建立连接可使用的参数如下:

    host:数据库服务器主机名可以是IP或域名

    user:用户登陆名

    password:用户名密码
    database:要使用的数据库名

    port:端口号默认3306

    bind_address:多网口是绑定网络接口,可以是主机名或IP

    unix_socket:指定套接字链接

    read_timeout:读取连接的超时时间

    write_timeout:写入连接的超时时间

    carset:指定字符集
    sql_mode:指定SQL_MODE

    read_defautl_file:指定my.cnf配置文件读取参数

    init_command:建立连接时运行的初始SQL语句

    链接对象使用的方法:

    conn.close()   关闭链接

    conn.commit()  提交更改到数据库服务器

    conn.cursor(cursor=None)  创建一个新的游标来执行查询,cursor指定游标类型:Cursor、SSCursor、DictCursor或SSDictCursor,没有指定即使用光标

    conn.open   如果链接处于打开状态则返回true

    conn.ping(reconnect=True)  检查服务器是否存在,reconnect为True时重新链接

    conn.rellback()   回滚当前事务

    (2)游标对象API

    class pymysql.cursors.Cursor(connection)  :创建与数据库交换的对象,对象表示数据库游标,用于管理提取操作的上下文

    游标的方法:

    cursor.callproc(procname)  查看数据库存储过程

    cursor.close() 关闭游标

    cursor.execute(query,args=None) 执行查询,query查询参数为字符串,args可以是元组,列表或字典,用于查询的参数,返回类型为INT  

    cursor.executemany(query,seq_of_parameters) 多次查询返回结果

    cursor.fetchall()  获取所有行

    cursor.fetchmany(size=None) 获取指定的行数

    cursor.fetchone() 获取下一行

    cursor.max_stmt_length=1024000  executemany()生成的最大语句大小

    cursor.mogrify(query,args=None)  通过调用execute()方法返回发送到数据库的字符串

    (3)其它对象API

    class pymysql.cursors.SSCursor(connection)  :用于返回大量数据的查询

    class pymysql.cursors.DictCursor(connection)  :用于将结果作为字典返回的游标

    class pymysql.cursors.SSDictCursor(connection)  :用于无缓冲的游标,它将结果作为字典返回

    #导入pymysql import pymysql #实例化链接对象,作用是建立Mysql数据库链接 conn = pymysql.connect('localhost','root','Password@2020','test2') #设定游标对象,作用是用于与数据库进行交互操作的对象。 cusor = conn.cursor() #发送sql语句 cusor.execute("select version();") #提交更改以稳定存储 conn.commit() #获取内容 print(cusor.fetchall())

    • pymysql 新建表
    #导入pymysql
    import pymysql
    
    conn = pymysql.connect(
        host = 'localhost',
        user = 'root',
        password = 'Password@2020',
        database = 'test2'
    )
    
    cusor = conn.cursor()
    
    create = 'create table information_test (id int(255), name varchar(255),url varchar(255));'
    
    cusor.execute(create)
    • pymysql 插入单数据
    #导入pymysql
    import pymysql
    
    conn = pymysql.connect(
        host = 'localhost',
        user = 'root',
        password = 'Password@2020',
        database = 'test2'
    )
    
    cusor = conn.cursor()
    
    #insert = 'insert into information_test values(%s,%s,%s) %(i,key,value)'
    
    insert = "insert into information_test values (0,'a','b')"
    
    cusor.execute(insert)
    #提交更改
    conn.commit()
    
    conn.close()
    • 插入字典类型数据
    #导入pymysql
    import pymysql
    
    conn = pymysql.connect(
        host = 'localhost',
        user = 'root',
        password = 'Password@2020',
        database = 'test2'
    )
    
    cusor = conn.cursor()
    
    dict = {'aaron':'www.baidu.com',
            'vicent':'www.baidu2.com',
            'back':'www.baidu3.com'
            }
    i = 1
    for key,value in dict.items():
        insert = "insert into information_test values(%s,'%s','%s')" %(int(i),key,value)
        cusor.execute(insert)
        i += 1
    
    #提交更改
    conn.commit()
    
    conn.close()
    
    ------------------------------------------------------------------------
    
    mysql> select * from information_test;
    +------+--------+----------------+
    | id   | name   | url            |
    +------+--------+----------------+
    |    0 | a      | b              |
    |    1 | aaron  | www.baidu.com  |
    |    2 | vicent | www.baidu2.com |
    |    3 | back   | www.baidu3.com |
    +------+--------+----------------+
    4 rows in set (0.00 sec)
  • 相关阅读:
    阅读任务
    自我介绍
    学习总结
    第十二周课程总结
    第十一周课程总结
    第十周课程总结
    第九周课程总结&实验报告(七)
    第四周课程总结&实验报告
    第3周Java编程总结
    学习总结
  • 原文地址:https://www.cnblogs.com/aaron456-rgv/p/12763302.html
Copyright © 2011-2022 走看看