欧阳老师 发表于 2020-9-5 09:25:04

大工20春《sql数据库系统及应用》辅导资料十三

SQL数据库系统及应用辅导资料十三主    题:第七章Transact-SQL(二)
学习时间:2020年6月22日--6月28日“不忘初心、牢记使命”主题理论学习:我们党要始终成为时代先锋、民族脊梁,始终成为马克思主义执政党,自身必须始终过硬。全党要更加自觉地坚定党性原则,勇于直面问题,敢于刮骨疗毒,消除一切损害党的先进性和纯洁性的因素,清除一切侵蚀党的健康肌体的病毒,不断增强党的政治领导力、思想引领力、群众组织力、社会号召力,确保我们党永葆旺盛生命力和强大战斗力。
摘选自《决胜全面建成小康社会,夺取新时代中国特色社会主义伟大胜利》内    容:第七章Transact-SQL
这周我们将继续学习课件第七章(Transact-SQL存储过程)。本节的学习要求及需要掌握的重点内容如下:
1. 了解什么是存储过程,其类别及优点
2. 掌握管理存储过程的方法Transact-SQL存储过程
1、存储过程概述
存储过程(Stored Procedure)是在数据库服务器端执行的T-SQL语句集合,经编译后存储在数据库服务器中。
用户在编程过程中只需要给出存储过程的名称和必要的参数就可以方便地调用它们。
存储过程可以提高应用程序的处理能力,提高应用程序效率,降低编写数据库应用程序的难度。
-可嵌套使用,支持代码重用
-接受并使用参数动态执行其中的SQL语句
-比一般的SQL语句执行速度快
-具有安全特性和所有权链接以及可以附加到它们的证书。
-允许模块化程序设计
-可以减少网络通信流量
-参数化存储过程有助于保护应用程序抵御注入攻击存储过程的类别:
1)系统存储过程    以sp_为前缀,主要存储在MASTER数据库中。
2)用户自定义存储过程
3)扩展存储过程   可以动态加载和运行DLL(动态链接库)的数据库对象。2、存储过程管理
创建存储过程:使用管理器创建,使用Transact-SQL创建
CREATE PROC 过程名[;分组编号]
[[@p1 类型][=default]],...]


AS sql语句示例:
/
执行存储过程
]
{[@return_status=
{procedure_name[;number]|@p_name}]
}
[[@parameter=]{value|@variable |}[,...]]

示例:
/查看和修改存储过程:使用管理器,使用Transact-SQL
使用系统存储过程
   (sp_helptext,sp_depends,sp_help)
   (alter procedure)
       示例:
/删除存储过程:使用管理器,使用Transact-SQL
drop procedure {procedure}[,…]重要考点名词解释
1.存储过程:Stored Procedure,是在数据库服务器端执行的T-SQL语句集合,经编译后存储在数据库服务器中。综合训练
1.检索students表、course表和sc表中的所有纪录。
SELECT * FROM student
SELECT * FROM course
SELECT * FROM sc
也可以将三个表的操作合并为一条语句,使结果在一个表中显示:
        SELECT student.*, course.*, sc.* FROM student, course, sc2.检索student表中学生的部分信息,包括学号、学生姓名和所属院系。
        SELECT sno, sname, sdept FROM student3.检索student表中学生的Sno、Sname、Sage和Sdept,结果中各列的标题分别指定为学号、学生姓名、年龄和所属院系。
        SELECT sno as 学生学号, sname 学生姓名, sage '年龄' ,sdept "所属院系"       FROM student4.查询sc表中的学生成绩,并且显示折算后的分数。(折算方法:原始分数*1.2)
        SELECT sno,grade AS 原始分数, grade*1.2 AS 折算后分数 FROM sc5.从student表中查询所有的院系信息,并去掉重复信息。
        SELECT DISTINCT sdeptFROM student6.查询student表中前10个学号。
        SELECT TOP 10 * FROM student7.在student表中查询信息系(IM)的学生。
        SELECT * FROM student WHERE sdept=N'IM' 显示的全为信息系的同学8.在student表中查询年龄在小于18或者大于22,并且籍贯是辽宁大连的学生信息。
        SELECT * FROM student
       WHERE (sage<18 or sage>22) and snativeplace=N‘大连'9.在students表中查询姓“赵”的学生信息。
        SELECT * FROM student WHERE sname like N'赵%'10.查询缺少单科成绩的学生的信息。
        SELECT * FROM sc WHERE grade IS NULL11.查询student表中全体女学生的情况,要求结果按照年龄降序排列。
SELECT * FROM student WHERE ssex=N'女' ORDER BY sage DESC12. 统计查询student表中学生的总人数。
        SELECT COUNT(*) FROM student13.查询选修01课程学生的最高分,最低分和平均分
        SELECT MAX(grade) as '01课程最高分',MIN(grade) as '01课程最低分', AVG(grade) as '01课程平均分'
                FROM sc WHERE cno='01'14.求student表中各个专业的学生人数。
        SELECT sdept,COUNT(*) as '学生人数' FROM student                GROUP BY sdept15.查询sc表中选修了两门课并且成绩均不及格的学生的学号
分析:我们将SC表中的成绩不及格的学生按照学号分组,对各个分组进行筛选,找出纪录数大于2的学生学号,进行结果输出。
        SELECT sno FROM sc WHERE grade<60
                GROUP BY sno HAVING COUNT(*)>2
转载注明 奥鹏无忧答案网
页: [1]
查看完整版本: 大工20春《sql数据库系统及应用》辅导资料十三