《SQL Server数据库项目9教学ppt课件.pptx》由会员分享,可在线阅读,更多相关《SQL Server数据库项目9教学ppt课件.pptx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SQL Server 数据库项目9教学课件PART 01项目1初识数据库PART 02项目2SQL Server 2017的安装与使用PART 03项目3数据库操作PART 05项目5查询操作PART 06项目6T-SQL语言PART 07项目7视图操作目录 CONTENTSPART 04项目4数据表操作PART 08项目8数据完整性PART 09项目9存储过程PART 10项目10触发器PART 11项目11备份与恢复PART 12项目12数据库安全PART 09项目9存储过程 9.1 创建存储过程 9.2 创建带参数的存储过程 9.3 管理存储过程任务9.1 创建存储过程9.1 创建存储过
2、程【任务描述】日常操作数据表的过程中,我们会重复使用一些SQL语句,如果每次使用时都重新编写,不但麻烦而且十分容易出错。SQLServer2017提供的存储过程功能正好可以解决这个问题。存储过程(StoredProcedure)是大型数据库系统中的一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户可以通过指定存储过程的名字来执行它。本任务要求创建一个简单的存储过程pr_student,利用这个存储过程显示表student_table中的数据。【任务分析】本任务创建的仅仅是一个最简单的存储过程,该过程并无实际意义,但是完成这个任务便可了解存储过程从创建到执行的全过程。完成该任务需要
3、做到以下几点:(1)找准入口,即进入编写存储过程的界面。(2)编写存储过程的程序,了解存储过程中包含的常规语句。(3)执行存储过程,验证程序的正确性。9.1 创建存储过程【任务实现】通过图形方式创建存储过程。步骤01:启动SSMS,依次展开“student”“可编程性”节点,右击“存储过程”,在弹出的快捷菜单中选择“新建”“存储过程”,如图9-1所示。9.1 创建存储过程步骤02:打开“新建存储过程”编辑窗口,系统已经生成了默认的语句,如图9-2 所示。9.1 创建存储过程语句说明如下:(1)USEstudent:用于打开数据库,对数据库中的表操作前必须打开数据库。(2)GO:用于执行上一条句
4、“USEstudent”。(3)CREATEPROCEDURE:用于创建存储过程。(4)pr_student:存储过程的名称,习惯上用存储过程(procedure)的前两个字母pr作为存储过程名称的前辍。(5)AS:其下面是该存储过程要执行的语句。用户也可将其删除,然后自行书写存储过程定义。步骤03:定义完存储过程后,单击“执行”按钮保存存储过程,系统提示“命令已经完成”,则表示已经存储该过程。步骤04:运行存储过程。先单击工具栏上的“新建查询”按钮,再在命令窗口输入新建的存储过程名称,然后单击工具栏上的“执行”按钮即可,如图9-3所示。也可以输入EXECpr_student来运行存储过程。9
5、.1 创建存储过程【相关知识】1.存储过程的优点存储过程的优点主要有以下几个方面:(1)执行效率更高。存储过程建立之后,便被编译并储存到数据库中,使用时直接调用即可。相对于分析并编写SQL语句来说,效率自然要高得多。(2)安全性更好。需要执行的语句变成存储过程后,就成为存储表的一个安全机制。当一个数据表没有设权限,而对该数据表的操作又需要进行权限控制时,可以将存储过程作为存取通道,对不同权限的用户应用不同的存储过程。(3)存储过程可以设置参数,可以根据传入参数的不同,重复使用同一个存储过程,从而提高语句的优化率和可读性。2.存储过程的分类(1)系统存储过程。系统存储过程是SQL Server
6、2017 系统自带的、已经编好的存储过程,使用时直接调用即可。系统存储过程以sp_ 开头。(2)本地存储过程。本地存储过程是由用户创建的用于实现某一特定功能的存储过程,通常我们所说的存储过程指本地存储过程。(3)扩展存储过程。扩展存储过程是用户使用外部程序语言编写的存储过程。扩展存储过程以xp_ 开头。9.1 创建存储过程4.通过命令创建存储过程创建存储过程的语句很简单,具体如下:CREATE PROC|PROCEDURE SCHEMA_name.procedure_name parameter data_type=default OUTPUT,.n WITH,.n ASBEGIN END9.
7、1 创建存储过程5.存储过程实例【例9-1】编写存储过程,查询数据表Student_table 中年龄大于19岁的学生。CREATE PROCEDURE Pr_stu_ageASSELECT*FROM Student where year(getdate()-year(birth)19GOEXEC Pr_stu_age执行结果如图9-4所示。9.1 创建存储过程【例9-2】编写存储过程,统计数据表Student_table 中学生的总数。CREATE PROCEDURE Pr_stu_countASSELECT COUNT(*)FROM Student_table where year(get
8、date()-year(birth)19GOEXEC Pr_stu_count执行结果如图9-5所示。9.1 创建存储过程【例9-3】编写存储过程,统计数据表Student_table 中姓“张”的学生的总数。CREATE PROCEDURE Pr_NameASSELECTcount(Name)as姓张的学生人数fromstudent_tablewhereNamelike张%GOEXEC Pr_Name执行结果如图9-6所示。9.1 创建存储过程【例9-4】编写存储过程,查询数据表Student中的第3到第4条数据。CREATE PROCEDURE Pr_3_to 4ASselect top
9、2*from Student_table where Name not in(select top 2 Name from Student_table)GOEXEC Pr_3_to 4 执行结果如图9-7所示。9.1 创建存储过程6.系统存储过程实例【例9-5】利用系统存储过程查看当前数据的所有数据文件属性。【例9-6】利用系统存储过程将表名student_table改为stu_table。【例9-7】利用系统存储过程查看所使用的SQLServer信息。【例9-8】利用系统存储过程查看username用户的信息。EXEC sp_helpfileEXEC sp_rename student_ta
10、ble,stu_tableEXEC sp_server_infoEXEC sp_who username任务9.2 创建带参数的存储过程9.2 创建带参数的存储过程【任务描述】通过任务9.1的学习,相信大家已经发现存储过程的实现很简单,功能却很强大,但这仅是冰山一角,存储过程还可以带参数实现更为强大的功能。本任务要求设计一个存储过程,用于返回字段中的最大值。该存储过程包含两个参数:一个输入参数,一个输出参数。【任务分析】本任务带了输入、输出两个参数创建存储过程,输入参数将数据值传递到存储过程,输出参数则将数据值传给用户。完成该任务需要做到以下几点:(1)定义存储过程参数。(2)存储过程输入参数。(3)存储过程输出参数。9.2 创建带参数的存储过程【任务实现】步骤01:启动SSMS,依次展开“student”“可编程性”节点,右击“存储过程”,在弹出的快捷菜单中选择“新建”“存储过程”。步骤02:删除一些不相关的信息,由于没有写出要在哪个数据库中创建该存储过程,因此切记要在图9-8所示的红色方框中选中该数据库,如图9-8所示。步骤03:存储过程编写好之后,单击“执行”按钮,即是调试存储过程,也是保存存储过程,如图9-9所示。