一 使用变量
  变量是可以存储数据值的对象,SQL中的变量分为局部变量和全局变量。局部变量的使用是先声明,再赋值。全局变量由系统定义和维护可以直接使用。
 
1 局部变量
  局部变量的名称必须以@标记作为前缀
 语法:declare @变量名 数据类型

局部变量的赋值有两种方法:使用SET语句或select语句.

语法:Set @variable_name = value 或者 select @variable_name =value

Set 赋值语句一般用于赋给变量指定的数据常量,
select赋值语句一般用于从表中查询数据,然后在赋给变量。
注:Select语句需要确保筛选的记录不多于一条,否则把最后一条记录的值赋给变量。

例句:
declare @name varchar(8)
set @name='小白'
select * from stuinfo where stuname=@name
declare @stuno int
select @stuno=stuno from stuinfo where stuname=@name
select * from stuinfo where stuno=@stuno+1 or stuno=@stuno-1
 
2 全局变量
  Sql server 中的所有全局变量都使用两个@标志作为前缀。
 
变量    含义      
@@error    最后一个sql错误的错误号      
@@language    当前使用的语言名称      
@@connections    Sql Server自上次启动以来尝试的连接数      
@@max_connections    可以创建的同时连接的最大数目      
@@rowcount    受上一个sql语句影响的行数      
@@servername    本地服务器名称      
@@servicename     该计算机上的sql 服务名称      
@@version    Sql server的版本信息

二 输出语句
 输出语句用来显示处理的数据结果,常用的输出语句有两种。
语法: print  局部变量或字符串
       Select 局部变量as自定义列名

第二种方法也就是查询语句的特殊应用
例句:
print '服务器名称:'+@@servername
select @@servername as 服务器名称

三 逻辑控制语句
 1 if else 条件语句
 语法: if 条件
          语句或语句块
        Else
          语句或语句块
 如果有多条语句,需要使用语句块,语句块使用begin..end表示

declare @avgage float;
select @avgAge=avg(stuage) from stuinfo
 if (@avgage>20)
   begin
    print '平均年龄大于岁,年龄最大的为'
    select top 1 stuname from stuinfo order by stuage desc
   end
 else
   begin
    print '平均年龄不到岁,年龄最小的为'
    select top 1 stuname from stuinfo order by stuage
   end

2 while循环语句
 While循环语句可以根据某些条件重复执行一条sql语句或一个语句块,通过使用while关键字,可以确保只要指定的条件为true,就会重复执行语句,可以在while循环中使用continue和break关键字来控制语句的执行。
 语法:while  (条件)
          语句或语句块
         [break]
   使用break关键字从最内层的while循环中退出

declare @avgage float,@avg int;
select @avgage = avg(stuage) from stuinfo
 while (@avgage < 25)
      begin
        select @avg=count(*) from stuinfo where stuage < 25
        if @avg > 0
           update stuinfo set stuage=stuage+1
        else
         break
  end
go
select avg(stuage) from stuInfo

3 case多分支语句
 语法:case
           When 条件1 then 结果1
           When 条件2 then 结果2
           Else
      End

select * from stuinfo;
select stuname,stuage = case
        when stuage < 18 then '未成年'
        when stuage between 18 and 20 then '年轻人'
        when stuage >25 then '中年人'
       end
from stuinfo
 
4 批处理语句
 批处理语句是一条或多条sql 语句的集合,sql server 将批处理语句编译成一个可执行单元,此单元称为执行计划。一般将一些逻辑相关的操作语句放在同一批语句中,以GO关键字标志着批处理的结束,GO不是sql语句,它可以由任何用户执行。

转载于:https://blog.51cto.com/390503/289557

SQL2005 学记笔记(9)相关推荐

  1. SQL2005学记笔记(4)

    五 SQL语言由:数据定义语言(DDL),数据操作语言(DML)和数据控制语言(DCL)组成. 1)数据定义语言(DDL)    create table,alter table和drop table ...

  2. 学记笔记 $\times$ 巩固 · 期望泛做$Junior$

    最近泛做了期望的相关题目,大概\(Luogu\)上提供的比较简单的题都做了吧\(233\) 好吧其实是好几天之前做的了,不过因为太颓废一直没有整理-- \(Task1\) 期望的定义 在概率论和统计学 ...

  3. 二十一、Hadoop学记笔记————kafka的初识

    这些场景的共同点就是数据由上层框架产生,需要由下层框架计算,其中间层就需要有一个消息队列传输系统 Apache flume系统,用于日志收集 Apache storm系统,用于实时数据处理 Spark ...

  4. Spring学记笔记

    一.spring配置和简介 1. spring概述 前置:创建spring项目 1.导入空项目 2.创建maven模块 3.将模块添加为web project structure-> 4.修改目 ...

  5. LINUX学记笔记17

    使用Postfix与Dovecot部署邮件系统 电子邮件系统 20世纪60年代,美苏两国正处于冷战时期.美国军方认为应该在科学技术上保持其领先的地位,这样有助于在未来的战争中取得优势.美国国防部由此发 ...

  6. LINUX学记笔记4

    今日学习内容为:管道符.重定向与环境变量 1.输入.输出重定向 简而言之,输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中.在日常的学习和工作中,相较于 ...

  7. JavaScript学习之ES6 ES2015学记笔记(五)-解构(destructuring)

    本文主要介绍ES6中的结构赋值 什么是解构赋值? 解构赋值允许你使用类似数组或对象字面量的语法将数组和对象的属性赋给各种变量.这种赋值语法极度简洁,同时还比传统的属性访问方法更为清晰.传统访问数组如下 ...

  8. LINUX学记笔记16

    使用Bind提供域名解析服务 DNS域名解析服务 相较于由数字构成的IP地址,域名更容易被理解和记忆,所以我们通常更习惯通过域名的方式来访问网络中的资源.但是,网络中的计算机之间只能基于IP地址来相互 ...

  9. 学计算机理论课要记笔记吗,学生应该用笔记本电脑记笔记吗?

    几年前的九月,我照例给全日制教育技术学专业一年级的硕士研究生讲授<教育技术学基本理论研究>课程. 开学第一次上课,当我走进教室开始讲课过程中,我吃惊地发现,所有的同学都使用纸笔记笔记,并且 ...

最新文章

  1. 5G UE — CPE
  2. 在angularjs应用中如何做选择评星的效果
  3. Telerik for Winform 2010版下载、安装、初次使用
  4. 密码控件安全技术浅析及攻击实例
  5. 方法有多少个参数才算多?
  6. python中的get函数_python之函数用法get()
  7. 谈谈button标签和input标签的区别
  8. 什么是 ARM 架构处理器?
  9. 什么是大平层?大平层比别墅好吗?
  10. pickle使用实例
  11. 计算机视觉入门和进阶学习
  12. VB.NET C++ VB 编程语言
  13. spss20安装许可证代码_Spss 23软件下载与安装
  14. chartControl
  15. 基于Arduino的智能环境监测与反馈系统
  16. Latex自定义图表序号
  17. 浏览器地址栏的组成部分
  18. 笔记本连接显示器后没有声音_笔记本连外接显示器没声音怎么办
  19. 企业宣传类PPT模板
  20. android开发微信分享隐藏logo,前两天刚刚做了微信分享自定义logo和文字,做个标记,从零开始记录...

热门文章

  1. magento 1.9 用户无法登录 magento 1.9 customer can not login
  2. Magento教程 17:Magento功能导览(1) 会员功能
  3. 实现动态验证码的思路
  4. PHP XML操作类 xml2array -- 含节点属性
  5. iPad网页开发教程及规则
  6. 浅谈ajax中get与post的区别,以及ajax中的乱码问题的解决方法
  7. php中获取上一页的url地址
  8. golang搭建微服务遇到的问题(不断更新)
  9. Java—List集合详解
  10. JVM—调优参数学习