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)
原文地址:https://www.cnblogs.com/aaron456-rgv/p/12763302.html