T_SQL与子查询的一些用法

 

  • T_SQL
    1. 定义变量:(局部变量)
      1. Declare @变量名 数据类型
    2. 系统变量:(全局变量)
      1. 以@@变量名  开始
    3. 赋值
      1. Set @变量名 = ‘我是值’
      2. Select @变量名 = ‘我是值’
    4. 获取值
      1. Select @变量名
    5. 变量的作用域:
      1. 在结束符go之前里面,就是go~go之间

 

  • T_SQL条件判断语句
    1. If……else……语句
      1. 语法:
        • If(条件)

Begin

SQL语句

End

 

例如:

If exists (select * from sys.databases where name = ‘数据库名’)

Begin

Drop database ‘数据库名’

End

 

  1. 数据类型的转换
    1. 关键字:convert
    2. 语法:convert(int,’列名’,style), 第一个参数是数据类型,第二个参数是要转换的列名,第三个参数是规定时间、日期输出的格式;
  2. while循环:
    1. While(条件)

Begin

sql语句

End

例如:

Declare @i int

Set @i = 5

While(@i<10)

Begin

Print @i

Set @i = @i + 1

End

 

  1. case……when……then……语句
    1. 语法:

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……;这里只是查询出来的数据,表的本质是没有变的

  1. 函数isnull()用于处理空值
    1. 第一个参数就是列名,第二个参数是将该列中的空值替换成的字符

例如:

      •  

Select * from where isnull(name,’’) = zz;

      •  

Select 8 from where name = ‘zz’

 

第一种写法比第二种写法好些,第一种写法可以将null转换成空字符串在判断,为什么只有自己去用来才能够体会

  1. 子查询:将查询出来的结果当作其他查询语句的条件
    1. 标量值:当只有条件只有只有一个值时,用where进行筛选时,可以用”=”进行判断
    2. In与not in :就是当条件有多个值时就用这个

例如;

Select * from student  where stuno in (1,2,3,4)

查询学生学号为1,2,3,4的学生信息

    1. Exists 与 not exists
      • 使用场景,子查询结果结果较大时与有索引时

例如:

Select * from student as stu  where  exists  (select * from class as cla where  stu.stuid = cla.classid)

查询学生ID与班级里学生ID相同的学生信息

 

 

  • 视图
    1. 创建视图

Create view  视图名

As

SQL语句

Go

视图名以V_开头

作用:提高代码的重用率

 

当视图创建好后就可以将该视图当作物理表来用

 

猜你喜欢

转载自blog.csdn.net/qq_42653574/article/details/81916490