SQL研习录(31)——SQL变量详解


版权声明

  • 本文原创作者:清风不渡
  • 博客地址:https://blog.csdn.net/WXKKang

一、变量

1、变量的种类

  变量是由用户定义并可赋值的数据内存空间,变量有局部变量和全局变量两种,局部变量是用来存储指定数据类型的单个数据值的对象,全局变量是由系统提供且预先声明的用来保存数据库(如SQL Server)系统运行状态数据值的变量
  下面就以SQL Server数据库为例,学习一下变量

2、全局变量(系统变量)

  全局变量必须以标记“@@”作为前缀,如@@version
  全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值
  全局变量是由数据库(SQL Server)系统提供并且赋值的变量,名字由“@@”符号开始,并且用户不能建立全局变量,也不能使用set语句去修改全局变量的值。大部分全局变量的值是报告本次数据库系统启动后发生的系统活动状态。通常应该将全局变量的值赋值给同一个批中的局部变量,以便保存和处理
  下面是一些SQL Server数据库中常用的系统变量
在这里插入图片描述
  示例: 下面我们来使用几个系统变量感受一下,代码如下:

-- 返回当前本服务器的连接的数目
print '当前本服务器连接的数目为:'
print @@connections
print ''
-- 返回当前SQL Server服务器的版本和处理器类型
print '当前SQL Server服务器的版本和处理器类型为:'
print @@version
print ''
-- 返回上一条SQL语句影响的数据的行数
print '上一条SQL语句影响的数据的行数为:'
SELECT * FROM student;
print @@rowcount
print ''
-- 返回当前SQL Server服务器的语言
print '当前SQL Server服务器的语言为:'
print @@language

  执行结果如下:
在这里插入图片描述

3、局部变量

  局部变量必须以标记@作为前缀,如@age int
  局部变量:先声明,再赋值
  (1)声明语法

DECLARE @变量名 数据类型 [=默认值]

  注: 如果不加默认值则默认值为NULL
  (2)赋值语法

SET @变量名 =值
或 SELECT @变量名 =值

  区别: 如果是普通的赋值,它们没有区别,如果是将查询语句的结果进行赋值(如下),则有区别:

SET @变量名 =(SELECT …)
或 SELECT @变量名 =(SELECT …)

  当通过set为变量赋值时,如果查询语句返回的不止一个值,那么报错
  当通过select为变量赋值的时候,如果查询语句返回的不止一个值,那么会将最后一个值赋值给该变量
  相对来说,set更加严谨一些,而select更灵活一些

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL查询中,OR是一个逻辑运算符,用于在查询条件中指定多个条件之一成立即可返回结果。可以使用OR运算符将多个条件组合在一起,以便在满足任何一个条件时返回结果。 例如,如果我们想要查询身高与Rose相同或者名字以Rose开头的学生,可以使用OR运算符来实现。以下是一个示例查询语句: ``` SELECT * FROM student WHERE height = (SELECT height FROM student WHERE sname = 'Rose') OR sname LIKE 'Rose%' ``` 这个查询语句首先使用子查询获取到Rose的身高,然后使用OR运算符将身高与Rose相同的条件和名字以Rose开头的条件组合在一起,返回满足任何一个条件的学生记。 另外,OR运算符也可以与其他逻辑运算符(如AND)一起使用,以构建更复杂的查询条件。例如,我们可以查询名字以Rose开头或者身高大于等于170的学生: ``` SELECT * FROM student WHERE sname LIKE 'Rose%' OR height >= 170 ``` 这个查询语句使用OR运算符将名字以Rose开头的条件和身高大于等于170的条件组合在一起,返回满足任何一个条件的学生记。 总之,OR运算符在SQL查询中用于指定多个条件之一成立即可返回结果。可以与其他逻辑运算符一起使用,以构建更复杂的查询条件。 #### 引用[.reference_title] - *1* *2* *3* [SQL语句——查询语句](https://blog.csdn.net/aigo_2021/article/details/123317646)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值