1、上大学数据库上机作业数据库系统与应用上机习题* 第二部分、SQL查询单表查询二、使用购进凭证数据库 。(由老师提供复制,内含“商品信息表”和“购进凭证表”)只显示购进凭证表中凭证号、单价、数量;并输出一个计算字段“金额”,计算金额的公式是:单价数量。(注:不是增加字段)USE 购进凭证SELECT 凭证号,单价,数量,(单价*数量)AS 金额FROM 购进凭证表加入筛选条件:只输出“饼干”大类商品。USE 购进凭证SELECT 商品编号,品名,大类编号,大类名FROM 商品信息表WHERE 大类名=饼干除了“饼干”,再同时输出“酒类”商品;再同时输出“饮料”、“糖果”商品。USE 购进凭证SE
2、LECT * FROM 商品信息表WHERE 大类名 in(饼干,酒类,饮料,糖果)ORDER BY 大类编号 ASC按大类名排序、同一大类的单价从大到小排序。USE 购进凭证SELECT 凭证号,商品编号,单价,数量,大类名,部门名称FROM 购进凭证表ORDER BY 大类名,单价 DESC清除原筛选条件,重设条件:只输出单价不在10至30元之间的酒类商品。USE 购进凭证SELECT 凭证号,商品编号,单价,量,大类名,部门名称FROM 购进凭证表WHERE 大类名=酒类, 单价 not between 10 and 30统计所有商品的总数量、总金额。USE 购进凭证SELECT SUM
3、(数量)AS总数量,SUM(单价*数量)AS 总金额 FROM 购进凭证表 统计饼干大类的总数量、总金额。USE 购进凭证SELECT 大类名,SUM(数量)AS总数量,SUM(单价*数量)AS 总金额 FROM 购进凭证表 WHERE 大类名=饼干GROUP BY 大类名统计饼干、糖果大类的总数量、总金额。USE 购进凭证SELECT SUM(数量)AS总数量,SUM(单价*数量)AS 总金额 FROM 购进凭证表WHERE 大类名 =饼干 OR 大类名 =糖果统计饼干大类和糖果大类各自的总数量、总金额。USE 购进凭证SELECT 大类名,SUM(数量)AS总数量,SUM(单价*数量)AS
4、 总金额 FROM 购进凭证表WHERE 大类名 =饼干 OR 大类名 =糖果GROUP BY 大类名统计各大类各自的总数量、总金额。USE 购进凭证SELECT 大类名,SUM(数量)AS总数量,SUM(单价*数量)AS 总金额 FROM 购进凭证表GROUP BY 大类名统计购进凭证表中的凭证张数。USE 购进凭证SELECT COUNT(*)AS 凭证张数FROM 购进凭证表 统计各大类的凭证张数。USE 购进凭证SELECT 大类名,COUNT (*)AS 凭证张数FROM 购进凭证表 GROUP BY 大类名三、利用上次上机的学生_课程数据库1. 求计算机学院学生的学号和姓名USE
5、学生课程SELECT 学号,姓名,单位FROM 学生WHERE 单位=计算机学院2. 求选修了课程的学生学号 (利用select命令中DISTINCT选项)USE 学生课程SELECT DISTINCT 学号FROM 选课3. 求选修了C1课程的学生学号和成绩,并对查询结果按成绩降序排列,如果成绩相同则按学号升序排列.USE 学生课程SELECT 学号,课程号,成绩FROM 选课WHERE 课程号=C1ORDER BY 成绩 DESC4. 在选课表中添加一条记录(S7,C1,89),再运行上小题的查询,看结果是否正确USE 学生课程INSERT INTO 选课 VALUES(S7,C1,89)
6、5. 求选修课程C1且成绩在80-90分之间的学生学号和成绩USE 学生课程SELECT 学号,课程号,成绩FROM 选课WHERE 课程号=C1AND 成绩 BETWEEN 80 AND 906. 求选修课程C1且成绩在80-90分之间的学生学号和成绩,将成绩乘以系数0.8输出USE 学生课程SELECT 学号,课程号,(成绩*0.8)AS 成绩FROM 选课WHERE 课程号=C1AND 成绩 BETWEEN 80 AND 907. 求计算机学院的所有学生以及自动化学院姓张的学生信息USE 学生课程SELECT *FROM 学生WHERE 姓名 LIKE 张% AND 单位=自动化学院 OR 单位=计算机学院8. 求缺少了成绩的学生的学号和课程号USE 学生课程SELECT 学号,课程号FROM 选课WHERE 成绩 IS NULL2