连接查询 变量、if else、while
一、连接查询:通过连接运算符可以实现多个表查询。
连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。
常用的两个链接运算符:
1.join on(左右连接)
2.union(上下连接) 注:只有在列的数据类型一致时才能够连接起来
二、变量
SQL语言也跟其他编程语言一样,拥有变量、分支、循环等控制语句。
在SQL语言里面把变量分为局部变量和全局变量,全局变量又称系统变量(@@)。
局部变量:
使用declare关键字给变量声明,语法非常简单:declare @<变量名> <变量类型>
对变量的赋值可以使用set关键字,使用set关键字时对变量的赋值一次只能赋值一个。
我们也可以在查询语句里面对这个变量进行赋值。
1 --局部变量 @变量 数据类型 2 --的定义和使用,临时存储数据,作用范围是函数内部 3 --局部变量是用户可自定义的变量,它的作用范围仅在程序内部。局部变量的名称是用户自定义的,命名的局部变量名要符合SQLserver2012标识符命名规则,局部变量名必须以@开头。 4 declare @hello varchar(60) 5 --变量赋值 为变量赋值的方式一般有两种,一种是使用select语句,一种是使用set语句。 6 --使用select语句赋值SQL: 7 8 use db_tse 9 declare @testname nvarchar(10) 10 select @testname=stname from Student where id='1001' 11 print @testname 12 --说明:首先声明变量testname然后student表里面的id=1001这条数据的stname赋值给@testname,最后print打印出来 13 declare @a int 14 select @a=1 15 print @a 16 17 --给多个变量赋值 18 declare @a int,@b nvarchar(10),@c int 19 select @a=1,@b='Tse先生',@c=2 20 --使用set语句赋值SQL:使用set关键字时对变量的赋值一次只能赋值一个。 21 declare @testname nvarchar(20) 22 set @testname = 'Are you ok?' 23 print @testname 24 25 --全局变量 @@变量 数据类型 26 --全局变量是SQLserver系统内部事先定义好的变量,不用用户参与定义,对用户而言,其作用范围并不局限于某一程序,而是任何程序均可随时调用。全局变量通常用于存储一些SQLserver的配置设定值和效能统计数据。 27 --@@ERROR:返回上一条T-SQL语句所返回的错误代码。如果sqlserver服务器执行完上一条语句后,执行成功没有错误,则返回@@ERROR的值为0。 28 --@@FETCH_STATUS:返回上一次使用游标FETCH操作返回的状态值,且返回值为整型。 29 -- 0 FETCH语句成功 30 -- -1 FETCH语句失败或此行不在结果集中 31 -- -2 被提取的行不存在