任务1 SQLite数据库应用-创建表
创建数据库d:\s15t1.db,添加名为"tb"的数据表。表字段从键盘输入。创建成功,输出"Finished"。否则输出"Failed"。
要求:
1、程序保存到:s15t5.py
3、程序执行效果:
输入字段:sid,name,age
输出:Finished
【参考与提示】
1、创建SQLite数据库的主要步骤:
(1)导入sqlite3库
(2)创建db数据库连接对象。格式:
变量名=sqlite3.connect(数据库文件)
(3)创建游标对象。格式:
变量名=连接对象.cursor( )
(4)操作数据库。格式:
游标对象.execute(SQL命令串)
(5)提交事务:连接对象.commit( )
(6)关闭游标和连接:对象.close( )
2、创建数据表的基本SQL语句(为字符串,需通过游标的内置函数execute执行):
create table 表名(字段序列)
任务2 SQLite数据库应用-从数据表读取数据
已知数据库ps15t2.db有表名为"stinfs"的数据表,字段为sid,name,score,分别表示学号、姓名和成绩([0,100]上的整数)。输入一个整数m,输出所有成绩与m的和。如果m输入无效,约定m的值为12。
要求:
1、程序保存到:s15t2.py
3、程序执行效果:
输入一个整数:10
输出:nums=705
【参考与提示】
SQLite能够进行统计计算:
(1)COUNT(*)计算记录数量:
SELECT COUNT(*) FROM st
(2)SUM(列名):计算指定列数值的和。
(3)AVG(列名):计算指定列数值平均值。
(4)MAX(列名):找出指定列中的最大值。
(5)MIN(列名):找出指定列中的最小值。
示例(cur为游标对象):
cur.execute("select max(score) from stinfs")
a=cur.fetchone()[0]#得到成绩最大值
任务3 SQLite数据库应用-记录添加、修改与删除
已知数据库ps15t3.db有表名为"books"的数据表,字段为bname,editor,pub,分别表示书名、作者和出版社。对books表完成以下操作。全部操作成功完成,输出"end:succeed"。否则输出"end:failed"。
1、删除书名为"C++"的全部记录。
2、将记录中的出版社"KX"修改为"DPW"。
3、从键盘依次输入书名、作者和出版社,将其添加到表中。
要求:
1、程序保存到:s15t3.py
2、程序执行效果:
输入书名、作者和出版社:C#编程 LBin DS
输出:end:succeed
【参考与提示】
1、添加记录:
insert into 表名 values(值序列)
2、删除记录:
delete from 表名 where 条件
3、修改记录:
update from 表名 set 字段=值 where 条件
任务4 SQLite数据库应用-记录查询
已知数据库ps15t4.db有表名为"sales"的数据表,字段为month,profit,分别表示月份、利润。均为整数。输入一个整数m,输出第m季度的平均利润(四舍五入取整)。如果m不是[1,4]上的整数,约定m=4。
要求:
1、程序保存到:s15t4.py
3、程序执行效果:
输入一个整数:1
输出:第1季度平均利润=14
【参考与提示】
1、实现记录查询的SQL语句基本格式:
select * from 表名 where 条件
条件中可使用以下操作符:
(1)in:where month in (5,6)
(2)between:where month between 3 and 8
可使用avg函数求平均值。如:
select avg(profit) from ...
2、查询结果由游标对象的fetchone函数返回。如:v=cur.fetchone()[0]
任务5 SQLite数据库应用-排序
已知数据库ps15t4.db有表名为"sales"的数据表,字段为month,profit,分别表示月份、利润。均为整数。输入一个整数m,输出第1个月至第m月利润最低的月份。如果m不是[1,12]上的整数,约定m=12。
要求:
1、程序保存到:s15t5.py
3、程序执行效果:
输入一个整数:3
输出:3月利润最低=12
【参考与提示】
求解思路:
1、选择月份并按利润升序排序:
(1)select语句中,where子句确定月份。
(2)order by子句确定排序的字段和方式。
2、查询结果由游标对象的fetchone函数返回。如:v=cur.fetchone()。返回值应为包含二个元素的元组:第一个元素为月份,第二个元素为利润。

