旅游网站建设电子商务的困惑,网站建设外包发展情况,放单网站,采购网站模板目录创建连接 pymsql.connect() 方法的可传参数连接对象 conn pymsql.connect() 方法游标对象 cursor() 方法使用示例创建数据库表插入数据操作数据查询操作数据更新操作数据删除操作SQL中使用变量封装使用简单使用#xff1a;
import pymysqldb pymysql.connect(host,user…
目录创建连接 pymsql.connect() 方法的可传参数连接对象 conn pymsql.connect() 方法游标对象 cursor() 方法使用示例创建数据库表插入数据操作数据查询操作数据更新操作数据删除操作SQL中使用变量封装使用简单使用
import pymysqldb pymysql.connect(host,user,password,database)
cursor db.cursor()
try:cursor.execute(SELECT * FROM employees LIMIT 200)results cursor.fetchall()print(results)
except Exception as e:print(查询失败 str(e))创建连接 pymsql.connect() 方法的可传参数
pymsql.connect()的可传参数
参数说明user数据库用户名password数据库用户密码host数据库连接地址database要连接的数据库名称port端口号默认3306charset要连接的数据库的字符编码可以在终端登陆mysql后使用 \s 查看默认connect_timeout连接数据库的超时时间(默认值10最小值1最大值31536000)unix_socket可以选择使用unix套接字而不是TCP/IP默认Nonesql_mode要使用的默认sql_mode默认Noneread_default_file指定my.cnf文件以从[client]部分下读取这些参数默认Noneconv要使用的转换词典而不是默认词典默认Noneuse_unicode是否默认为unicode字符串默认Trueclient_flag要发送到MySQL的自定义标志。在常量.CLIENT中查找潜在值默认0cursorclass要使用的自定义游标类默认Cursorinit_command建立连接时要运行的初始SQL语句默认Noneread_default_group配置文件中要读取的组默认Noneautocommit自动提交模式。无表示使用服务器默认值。默认值Falselocal_infile布尔值以启用LOAD DATA local命令。默认值Falsemax_allowed_packet发送到服务器的数据包的最大大小字节。默认值16MB。仅用于限制“LOAD LOCAL INFILE”数据包的大小小于默认值16KBdefer_connect在构造时不显式连接-等待连接调用。默认值Falseauth_plugin_map处理插件的类的插件名称字典默认Noneread_timeout读取超时时间默认Nonewrite_timeout写入超时时间默认Nonebind_address当客户端具有多个网络接口时请指定连接到主机的接口。参数可以是主机名或IP地址默认Nonebinary_prefix在字节和字节数组上添加二进制前缀默认Falseprogram_name程序名称默认Noneserver_public_keySHA256身份验证插件公钥值。默认Nonessl类似于mysql_ssl_set()参数的参数字典默认Nonessl_ca包含PEM格式ca证书的文件路径默认Nonessl_cert包含PEM格式客户端证书的文件的路径默认Nonessl_disabled禁用TLS的布尔值默认Nonessl_key包含客户端证书的PEM格式私钥的文件路径默认Nonessl_verify_cert设置为true以检查服务器证书的有效性默认Nonessl_verify_identity设置为true以检查服务器的标识默认Nonecompress不支持named_pipe不支持passwd已弃用数据库的别名db已弃用密码别名
连接对象 conn pymsql.connect() 方法
方法说明conn.cursor()创建并返回游标conn.commit()提交当前事务conn.rollback()回滚当前事务conn.close()关闭connection
游标对象 cursor() 方法
方法说明execute()用于执行一个数据库的查询命令executemany(query, args)针对一个查询运行多个数据fetchone()获取结果集的下一行fetchmany(size)获取结果集中的size行数据fetchall()获取结果集中的所有行rowcount最近一次execute返回数据/影响的行数close()关闭游标
使用示例
创建数据库表
import pymysql# 打开数据库连接
db pymysql.connect(hostlocalhost,userroot,password,databaselaomao)# 使用 cursor() 方法创建一个游标对象 cursor
cursor db.cursor()# 使用 execute() 方法执行 SQL如果表存在则删除
cursor.execute(DROP TABLE IF EXISTS EMPLOYEE)# 使用预处理语句创建表
sql CREATE TABLE employees (employee_id int primary key auto_increment,employee_name varchar(20) DEFAULT NULL,email varchar(25) NOT NULL,birthday datetime null) ENGINEInnoDB DEFAULT CHARSETutf8;cursor.execute(sql)# 关闭数据库连接
db.close()插入数据操作
import pymysql# 打开数据库连接
db pymysql.connect(hostlocalhost,userroot,password,databaselaomao)# 使用 cursor() 方法创建一个游标对象 cursor
cursor db.cursor()# SQL 插入语句
sql INSERT INTO ssm.employees (employee_name, email, birthday)VALUES (乐昌,905364660qq.com,2008-08-18 00:00:00),(老猫,123123.com,2020-02-22 06:06:06)try:# 执行sql语句cursor.execute(sql)# 提交到数据库执行db.commit()
except:# 如果发生错误则回滚db.rollback()
# 关闭数据库连接
db.close()数据查询操作
import pymysql# 打开数据库连接
db pymysql.connect(hostlocalhost,userroot,password,databaselaomao)# 使用 cursor() 方法创建一个游标对象 cursor
cursor db.cursor()# SQL 查询语句
sql SELECT * FROM employees LIMIT 200try:# 执行SQL语句cursor.execute(sql)# 获取所有记录列表results cursor.fetchall()for row in results:employee_id row[0]name row[1]email row[2]birthday row[3]# 打印结果print(employee_id%s, name%s, email%s, birthday%s % (employee_id, name, email, birthday))
except:print(Error: unable to fetch data)# 关闭数据库连接
db.close()# 输出
employee_id1, name乐昌, email905364660qq.com, birthday2008-08-18 00:00:00
employee_id2, name老猫, email123123.com, birthday2020-02-22 06:06:06数据更新操作
import pymysql# 打开数据库连接
db pymysql.connect(hostlocalhost,userroot,password,databaselaomao)# 使用 cursor() 方法创建一个游标对象 cursor
cursor db.cursor()# SQL 更新语句
sql UPDATE ssm.employees SET employee_name 彦祖 WHERE employee_id 1try:# 执行SQL语句cursor.execute(sql)# 提交到数据库执行db.commit()
except:# 发生错误时回滚db.rollback()# 关闭数据库连接
db.close()数据删除操作
import pymysql# 打开数据库连接
db pymysql.connect(hostlocalhost,userroot,password,databaselaomao)# 使用 cursor() 方法创建一个游标对象 cursor
cursor db.cursor()# SQL 删除语句
sql DELETE FROM employees WHERE employee_id 2try:# 执行SQL语句cursor.execute(sql)# 提交到数据库执行db.commit()
except:# 发生错误时回滚db.rollback()# 关闭数据库连接
db.close()SQL中使用变量 birthday 2008-08-18 00:00:00sql SELECT * FROM employees WHERE birthday birthday LIMIT 10
print(sql)# 打印
SELECT * FROM employees WHERE birthday 2008-08-18 00:00:00 LIMIT 10封装使用
#!/usr/bin/python3import pymysqldef conn():连接MySQL数据库try:conn pymysql.connect(host,user,password,database)conn.set_charset(utf8)return connexcept Exception:raise Exception(数据库连接失败)def query(sql):print(sql:sql)db conn()cursor db.cursor()try:cursor.execute(sql)result cursor.fetchall()if result: return resultreturn [none]except Exception as e:db.rollback()print(查询失败, str(e))finally:cursor.close()db.close()
if __name__ __main__:select_data query(SELECT * FROM tb_name LIMIT 20)print(select_data)