- T_SQL
- 定义变量:(局部变量)
- Declare @变量名 数据类型
- 系统变量:(全局变量)
- 以@@变量名 开始
- 赋值
- Set @变量名 = ‘我是值’
- Select @变量名 = ‘我是值’
- 获取值
- Select @变量名
- 变量的作用域:
- 在结束符go之前里面,就是go~go之间
- 定义变量:(局部变量)
- T_SQL条件判断语句
- If……else……语句
- 语法:
- If(条件)
- 语法:
- If……else……语句
Begin
SQL语句
End
例如:
If exists (select * from sys.databases where name = ‘数据库名’)
Begin
Drop database ‘数据库名’
End
- 数据类型的转换
- 关键字:convert
- 语法:convert(int,’列名’,style), 第一个参数是数据类型,第二个参数是要转换的列名,第三个参数是规定时间、日期输出的格式;
- while循环:
- While(条件)
Begin
sql语句
End
例如:
Declare @i int
Set @i = 5
While(@i<10)
Begin
Print @i
Set @i = @i + 1
End
- case……when……then……语句
- 语法:
Select *,case 列名 when 0 then ‘男’
When 1 then ‘女’
End
From student
这样写的话是在表后面添加一列,如果是想查询出来的数据只有‘男’与‘女’
需要这样写
Select name,age,address,case 列名 when 0 then ‘男’
When 1 then ‘女’
End
From student
就是将0与1的那一列没有查询出来,用case语句代替了
注意:不要忘记end,如果条件中存在中文,最好是用if……else……;这里只是查询出来的数据,表的本质是没有变的
- 函数isnull()用于处理空值
- 第一个参数就是列名,第二个参数是将该列中的空值替换成的字符
例如:
Select * from where isnull(name,’’) = zz;
Select 8 from where name = ‘zz’
第一种写法比第二种写法好些,第一种写法可以将null转换成空字符串在判断,为什么只有自己去用来才能够体会
- 子查询:将查询出来的结果当作其他查询语句的条件
- 标量值:当只有条件只有只有一个值时,用where进行筛选时,可以用”=”进行判断
- In与not in :就是当条件有多个值时就用这个
例如;
Select * from student where stuno in (1,2,3,4)
查询学生学号为1,2,3,4的学生信息
-
- Exists 与 not exists
- 使用场景,子查询结果结果较大时与有索引时
- Exists 与 not exists
例如:
Select * from student as stu where exists (select * from class as cla where stu.stuid = cla.classid)
查询学生ID与班级里学生ID相同的学生信息
- 视图
- 创建视图
Create view 视图名
As
SQL语句
Go
视图名以V_开头
作用:提高代码的重用率
当视图创建好后就可以将该视图当作物理表来用