python11

一、数据库API(DB API)
1.这 3 个全局变量分别是:
apilevel:用于显示数据库模块的 API 版本号。
threadsafety:指定数据库模块的线程安全等级,该等级值为 0~3
paramstyle:该全局变量指定当 SQL 语句需要参数时,可以使用哪种风格的参数。

2.数据库 API 的核心类
在这里插入图片描述
在这里插入图片描述
3.操作数据库的基本流程

二、 SQLite创建数据表
数据库模式定义语言DDL:(创建表、修改表或删除表)
在这里插入图片描述
三、 DML(数据库操纵语言)

# 导入访问SQLite的模块
import sqlite3
# ①、打开或创建数据库
# 也可以使用特殊名::memory:代表创建内存中的数据库
conn = sqlite3.connect('first.db')
# ②、获取游标
c = conn.cursor()
# ③、调用executemany()方法把同一条SQL语句执行多次
c.executemany('insert into user_tb values(null, ?, ?, ?)',
    (('sun', '123456', 'male'),
    ('bai', '123456', 'female'),
    ('zhu', '123456', 'male'),
    ('niu', '123456', 'male'),
    ('tang', '123456', 'male')))
    
conn.commit()

# ④、关闭游标
c.close()
# ⑤、关闭连接
conn.close()

===================================================================

c.executemany('insert into user_tb values(null, ?, ?, ?)',
    (('sun', '123456', 'male'),
    ('bai', '123456', 'female'),
    ('zhu', '123456', 'male'),
    ('niu', '123456', 'male'),
    ('tang', '123456', 'male')))

上面代码调用 executemany() 方法执行一条 insert 语句,但调用该方法的第二个参数是一个元组,该元组的每个元素都代表执行该 insert 语句一次,在执行 insert 语句时这些元素负责为该语句中的“?”占位符赋值。

c.executemany(‘update user_tb set name=? where _id=?’,
((‘小孙’, 2),
(‘小白’, 3),
(‘小猪’, 4),
(‘小牛’, 5),
(‘小唐’, 6)))

四、fetchone()、fetchmany()和fetchall()用法
由于 select 语句执行完成后可以得到查询结果,因此程序可通过游标的 fetchone()、fetchmany(n)、fetchall() 来获取查询结果。

在这里插入图片描述

运行上面程序,可以看到如下运行结果:

_id name pass gender
--------------------------------
(3, 'bai', '123456', 'female')
bai-->123456
(4, 'zhu', '123456', 'male')
zhu-->123456
(5, 'niu', '123456', 'male')
niu-->123456
(6, 'tang', '123456', 'male')
tang-->123456

上面程序使用 fetchone() 方法每次获取一条记录,这是比较常见的做法。实际上,程序也可以使用 fetchmany(n) 或 fetchall() 方法一次获取多条记录。

五、executescript()用法(附带实例讲解)
在这里插入图片描述
此外,为了简化编程,SQLite 数据库模块还为数据库连接对象提供了如下 3 个方法:
execute(sql[, parameters]):执行一条 SQL 语句。
executemany(sql[, parameters]):根据序列重复执行 SQL 语句。
executescript(sql_script):执行 SQL 脚本。

六、SQLite create_function()方法:注册自定义函数
create_function(name, num_params, func)

create_function 方法包含 3 个参数:
name 参数:指定注册的自定义函数的名字。
num_params:指定自定义函数所需参数的个数。
func:指定自定义函数对应的函数。

在这里插入图片描述
七、create_aggregate()方法:自定义聚集函数
在这里插入图片描述
在这里插入图片描述
八、 create_collation()方法:创建自定义比较函数

create_collation 方法包含两个参数:
name:指定自定义比较函数的名字。
callable:指定自定义比较函数对应的函数。该函数包含两个参数,并对这两个参数进行大小比较,如果该方法返回正整数,系统认为第一个参数更大;如果返回负整数,系统认为第二个参数更大;如果返回 0,系统认为两个参数相等

**在这里插入图片描述**
九、MYSQL
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

callproc()方法:调用数据库存储过程

在这里插入图片描述
上面程序中,第 13 行代码就是调用存储过程的关键代码。使用 MySQL 数据库模块调用存储过程非常简单,存储过程需要几个参数,程序通过 callproc() 方法调用存储过程时就传入一个包含几个元素的元组;对于存储过程的传入参数,该参数对应的元组元素负责为传入参数传值;对于存储过程的传出参数,该参数对应的元组元素随便定义即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值