函数基本概念

使用来实现某些功能运算和完成各种特定操作的重要手段
优点:
1、提高了语句的重用性、共享性和可移植性
2、可以减少重复编写程序段的工作量,提高程序可读性
3、能够实现较快的执行速度,能够减少网络流量
分类:系统定义函数和用户定义函数
其中系统定义函数:数学函数、日期函数、聚集函数、系统函数等

系统自定义函数

聚集函数

image.png
例题:查询学生的总人数
select count() from student
select count(
) 学生总人数 from student
注意:
1、聚集函数不能用在where子句中;
2、聚集函数可以用于select子句和group by子句中的having子句中。

用户自定义函数

image.png
用户定义函数是由一个或多个sql语句组合的子程序,一般也是为了方便代码重用。
用户自定义函数可以被创建(create function)、修改(alter function)、和删除(drop function)。
https://blog.csdn.net/tlammon/article/details/81876951
https://blog.csdn.net/stevenson_aspdotnet/article/details/81624897?depth_1-

  1. create function<函数名称>
  2. (
  3. --函数的参数(可以多个)
  4. <@param1,sysname,@p1><data_type_for_param1,,int>)
  5. returns
  6. <@表变量名> table
  7. (
  8. --返回的虚拟表中的字段、字段名、类型
  9. <column_1,sysname,c1><data_type_for_column1,,int>)
  10. as
  11. begin
  12. --函数体,里面可以定义一些变量,总之最后返回的应该是个结果集
  13. return
  14. end
  15. go

创建函数

例题:在数据库中创建名为CalNum的用户自定义函数,使新学分在原有基础上减1,并绑定在course表上。

  1. --第一步:创建用户定义函数
  2. create function CalNum
  3. (@X decimal(6,0))
  4. returns decimal(6,0)
  5. as
  6. begin
  7. return(@X-1)
  8. end
  9. go
  10. --第二部:course表中新增列,进行用户函数邦定
  11. alter table course
  12. add ReNum AS
  13. dbo.CalNum(credit)
  14. go
  15. --第三步:进行测试
  16. select renum,credit from Course