为了账号安全,请及时绑定邮箱和手机立即绑定

请问关于sql里的var函数是干什么的?

请问关于sql里的var函数是干什么的?

慕尼黑5688855 2019-09-20 15:15:39
sql里的var函数是干什么的
查看完整描述

4 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体有哪些聚合函数呢?我们来一一看一下:

  1. AVG  返回指定组中的平均值,空值被忽略。

  2. 例:select  prd_no,avg(qty) from sales group by prd_no


  3. 2. COUNT  返回指定组中项目的数量。

  4. 例:select  count(prd_no) from sales 


  5. 3. MAX  返回指定数据的最大值。

  6. 例:select  prd_no,max(qty) from sales group by prd_no 


  7. 4. MIN  返回指定数据的最小值。

  8. 例:select  prd_no,min(qty) from sales group by prd_no


  9. 5. SUM  返回指定数据的和,只能用于数字列,空值被忽略。

  10. 例:select  prd_no,sum(qty) from sales group by prd_no


  11. 6. COUNT_BIG  返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。

  12. 例:select  count_big(prd_no) from sales


  13. 7. GROUPING  产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.

  14. 例:select  prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup


  15. 8. BINARY_CHECKSUM  返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。

  16. 例:select  prd_no,binary_checksum(qty) from sales group by prd_no


  17. 9. CHECKSUM_AGG  返回指定数据的校验值,空值被忽略。

  18. 例:select  prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no


  19. 10. CHECKSUM  返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。


  20. 11. STDEV  返回给定表达式中所有值的统计标准偏差。

  21. 例:select  stdev(prd_no) from sales


  22. 12. STDEVP  返回给定表达式中的所有值的填充统计标准偏差。

  23. 例:select  stdevp(prd_no) from sales


  24. 13. VAR  返回给定表达式中所有值的统计方差。

  25. 例:select  var(prd_no) from sales


  26. 14. VARP  返回给定表达式中所有值的填充的统计方差。

  27. 例:select  varp(prd_no) from sales



查看完整回答
反对 回复 2019-09-22
?
交互式爱情

TA贡献1712条经验 获得超3个赞

var...开头的数据类型用来保存可变长度的数据的,以VARCHAR型和CHAR举例来说:假如你向一个长度为四十个字符的VARCHAR型字段中输入数据BIll GAtES。当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。 现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。VARCHAR型字段较突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要。不知这么解释能否明白?


查看完整回答
反对 回复 2019-09-22
?
富国沪深

TA贡献1790条经验 获得超9个赞

前面的是参数, 是调用这个存储过程的时候从外部输入进来的。
declare 是声明变量。
比如说,
这个存储过程是,只要你把学号输入进来,
就能查询这个学生的班级。
那么在这个存储过程里面, 学号就是参数。
你给什么学号, 它就返回给你相应的班级。
又或者你也可以做成, 只要你输入学号, 这个存储过程就会将这个学生删除。




查看完整回答
反对 回复 2019-09-22
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

sql中declare是声明的意思,就是声明变量的,这个一般是用在函数和存储过程中的。比如说,这个存储过程是,只要你把学号输入进来,就能查询这个学生的班级。那么在这个存储过程里面, 学号就是参数。你给什么学号, 它就返回给你相应的班级。又或者你也可以做成, 只要你输入学号, 这个存储过程就会将这个学生删除。

mysql存储过程中,定义变量有两种方式:
1.使用set或select直接赋值,变量名以 @ 开头.
例如:set @var=1;
可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量。
2.以 DECLARE 关键字声明的变量,只能在存储过程中使用,称为存储过程变量,例如:
DECLARE var1  INT DEFAULT 0;  
主要用在存储过程中,或者是给存储传参数中。
两者的区别是:
在调用存储过程时,以DECLARE声明的变量都会被初始化为 NULL。而会话变量(即@开头的变量)则不会被再初始化,在一个会话内,只须初始化一次,之后在会话内都是对上一次计算的结果,就相当于在是这个会话内的全局变量。

在存储过程中,使用动态语句,预处理时,动态内容必须赋给一个会话变量。
例:
set @v_sql= sqltext;
PREPARE stmt FROM @v_sql;  
EXECUTE stmt;     
DEALLOCATE PREPARE stmt;

有的时候在查询更新数据库的时候,需要多条语句的查询,因此需要多次修改

declare可以满足多次执行,但数据只修改一次。

declare @local_variable data_type

DECLARE: 定义变量,变量第一个字母是“@”

声明时需要指定变量的类型,

可以使用set和select对变量进行赋值,

在sql语句中就可以使用@local_variable来调用变量 

声明中可以提供值,否则声明之后所有变量将初始化为NULL。




查看完整回答
反对 回复 2019-09-22
  • 4 回答
  • 0 关注
  • 591 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信