存储过程实例及函数相关

简介:
 
  1. /*获取在指定系中选修某一门课程的学生基本信息和成绩,并按成绩降序排列*/  
  2. CREATE PROC STU_GRADE  
  3. @SDEPT VARCHAR(50),  
  4. @CNAME VARCHAR(10)  
  5. AS   
  6. SELECT STUDENT.SNO 学号,STUDENT.SNAME 姓名,STUDENT.SGENTLE 性别,COURSE.CNAME 课程名,COURSE.CGRADE 学分,SC.GRADE 成绩  
  7. FROM STUDENT JOIN SC  
  8. ON STUDENT.SNO = SC.SNO  
  9. JOIN COURSE  
  10. ON COURSE.CNO = SC.CNO  
  11. WHERE STUDENT.SDEPT=@SDEPT  
  12. AND COURSE.CNAME=@CNAME  
  13. ORDER BY SC.GRADE DESC 
  14.  
  15. EXEC STU_GRADE '计算机','操作系统' 
  16. EXEC STU_GRADE '计算机','数据结构' 
  17.  
  18. /*模糊查询*/  
  19. CREATE PROC STU_SNAME  
  20. @SNAME VARCHAR(50)/*在创建存储过程中的变量的时候,变量的类型与长度最好与数据表中的一致,否则可能查不出数据;像这里如果写成10的话就查不出来数据*/  
  21. AS 
  22. SELECT *   
  23. FROM STUDENT  
  24. WHERE SNAME LIKE @SNAME  
  25.  
  26. EXEC STU_SNAME '张%' 
  27. set statistics io on 
  28. set nocount on 
  29. set statistics time on 
  30. set ansi_nulls on 
  31. select * into qlei from student  
  32.  
  33. --以下说明了set ansi_nulls on的用法:  
  34. select * from qlei where sname is null 
  35. select * from qlei where sname is not null 
  36.  
  37. set ansi_nulls on 
  38. select * from qlei where sname = null 
  39. select * from qlei where sname<>null 
  40.  
  41. set ansi_nulls off 
  42. select * from qlei where sname = null 
  43. select * from qlei where sname<>null 
  44.  
  45. --以下说明了SET QUOTED_IDENTIFIER ON的用法  
  46. set quoted_identifier on 
  47. select * into "user" from qlei  
  48. select * from "user" where sno='990028' 
  49. select * from [userwhere sno='990028' 
  50.  
  51. set quoted_identifier off 
  52. select * from user where sno='990028'--这样写报错  
  53. select * from [userwhere sno='990028' 
  54. select * from [userwhere sno="990028" 
  55.  
  56. --以下是sql中函数的创建及使用方法  
  57. create function test(@Num varchar(20))--@Num 参数  
  58. returns varchar(50) --返回值类型  
  59. as   
  60. begin   
  61. declare @MSG varchar(20)  
  62. if(@Num =1)  
  63.     select @MSG ='正确' 
  64. else 
  65.     select @MSG ='错误' 
  66. return @MSG   
  67. end   
  68. --调用函数  
  69. select dbo.test(2)  
  70.  
  71. --创建返回table类型的函数  
  72. create function GetAllStudents()  
  73. returns table 
  74. as 
  75. return (select * from student)  
  76. --调用函数  
  77. select * from GetAllStudents()--这里只能这样写,不能写成像上面的那种形式  

 本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/420259,如需转载请自行联系原作者

相关文章
|
6月前
|
存储 SQL NoSQL
mysql存储过程和存储函数
mysql存储过程和存储函数
|
6月前
|
存储 SQL 数据库
面试题20: 存储过程和函数的区别
面试题20: 存储过程和函数的区别
|
6月前
|
存储 数据库
MySQL-函数和存储过程区别
MySQL-函数和存储过程区别
70 0
|
5月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(2)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
5月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(1)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
6月前
|
存储 SQL 关系型数据库
MySQL技能完整学习列表7、存储过程和函数——1、存储过程(Stored Procedures)的创建和执行——2、函数(Functions)的创建和使用
MySQL技能完整学习列表7、存储过程和函数——1、存储过程(Stored Procedures)的创建和执行——2、函数(Functions)的创建和使用
72 0
|
4月前
|
存储 SQL 数据库
MySQL设计规约问题之为什么要避免使用存储过程、触发器和函数
MySQL设计规约问题之为什么要避免使用存储过程、触发器和函数
|
6月前
|
存储 Java 数据库
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(二)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
75 0
|
5月前
|
存储 SQL 关系型数据库
MySQL存储过程和存储函数的使用
MySQL的存储过程和存储函数在功能和用法上有明显的区别。存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,通过指定名称和参数(如果有)来调用执行,可以返回多个值或结果集,但不直接返回值。而存储函数则是一个有返回值的特殊存储过程,它返回一个值或表对象,可以直接嵌入SQL语句中使用,如SELECT语句中。两者都是为了提高SQL代码的重用性和性能,但使用场景和方式有所不同。
4292 4
|
5月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(3)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】