关于TSql

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于TSql相关的知识,希望对你有一定的参考价值。


 

1、Sql:结构化查询语言(Structrued  Query  Language)

2、TSql:是Sql语言的另一种版本,且只能在SqlServer中使用。和Sql不同的是,TSql中增加了对变量的声明和使用。

TSql中的几个关键点

1、局部变量的声明declare  @+任意字符   数据类型

2、局部变量的赋值(set 和select 两种方式,区别是什么?)select方式的赋值连接表格的使用而set方式的赋值不行,详细看下面代码

3、局部变量的使用和投影(打印)——select (投影),print(打印)——

4、TSql中的全局变量——看代码(常见的有@@identity:最后一次插入的标识列,@@rowCount:受上一个Sql影响的行数)

5、if语句

  1、流程控制:查询学号20060202的学员信息如果平均成绩不合格就打印姓名和平均成绩,否则只打印学号

       2、多分支语句:分等级打印学生成绩

       3、使用 case语句把bool类型转为有意义中文

       4、使用case分等级打印学生成绩信息

 

--局部变量

/*
declare @name varchar(8)-----name为变量名,varchar为数据类型
--局部变量赋值:
 set @name = 值
 select @name = 值
*/
 
/**/
--0声明和简单的使用变量
declare @name varchar(8)
--select @name = ‘划拉‘
set @name = 划拉
select @name
go



select * from student

--1.声明三个用于储存学号、出生日期、和平均成绩的变量并赋值
    --set方式
declare 
@stuId char(8),@stuBirth smalldatetime,
@stuAvgrade numeric(3,1)
set @stuId = 201201
set @stuBirth = 1988-5-6
select @stuAvgrade = 96.3
select @stuId,@stuBirth,@stuAvgrade
--print @stuId
--print @stuBirth
go
    --select方式
declare 
@stuId char(8),@stuBirth smalldatetime,
@stuAvgrade numeric

select @stuId = stuId, @stuBirth = stuBirth, @stuAvgrade = stuAvgrade from student
where stuName = 丽思
select @stuId,@stuBirth,@stuAvgrade
go


--全局变量



select @@error

@@error   --最后一个T-SQL错误的错误号
@@identity  --最后一次插入的标识列  
/*新增一名老师,同时立刻分配学生
insert into teacher(‘李磊‘)
declare @tid = @@IDENTITY
insert into studet values(‘学生A‘,@tid)
insert into studet values(‘学生B‘,@tid)

select @@identity
*/
 
create table emp
(
    empId int identity(1,1) primary key,
    empName varchar(20)
) 

insert into emp values(张三)
insert into emp values(李四)

select * from emp

select @@identity

  
@@language  --当前使用的语言的名称
@@max_connections --可以创建的同时连接的最大数目
@@rowcount  --受上一个SQL语句影响的行数
@@servername  --本地服务器的名称
@@servicename  --该计算机上的SQL服务的名称
@@timeticks  --当前计算机上每刻度的微妙数
@@transcount  --当前连接打开的事物数
@@version  --SQL Server的版本信息

--2,查询上次自动增长变量值,上一个SQL语句影响的行数

select @@identity
select @@rowcount


--流程控制
--IF语句
--3查询学号20060202的学员信息如果平均成绩不合格就打印姓名和平均成绩,否则只打印学号

declare 
@stuId char(8),
@stuName varchar(10),
@stuAvgrade numeric;

set @stuId = 20060202;
select @stuName = stuName, @stuAvgrade = stuAvgrade from student
where stuId = @stuId 

if @stuAvgrade < 60
begin
    print @stuName;
    print @stuAvgrade;
end

else
    print @stuId;

go

--4多分支语句分等级打印学生成绩

declare 
@stuId char(8),
@stuName varchar(10),
@stuAvgrade numeric;

set @stuId = 20060202;
select @stuName = stuName, @stuAvgrade = stuAvgrade from student
where stuId = @stuId 

if @stuAvgrade >= 90.0
    print 优秀
else if @stuAvgrade >= 80.0
    select 良好
else if @stuAvgrade >= 70.0
    select 中等
else if @stuAvgrade >= 60.0
    select 及格
else
    select 不及格
go

--5使用 case语句把bool类型转为有意义中文

create table employee
(
    empId int identity(1,1) primary key,
    empName varchar(10) not null,
    empSex bit not null
)

insert into employee values(才干,1)
insert into employee values(小彬,1)
insert into employee values(丽丽,0)
insert into employee values(乐乐,0)
    --给列起别名的版本
select empName as 姓名, 性别 =
case empSex 
    when 1 then  
    when 0 then  
end
from employee

    --使用原表列名的写法
select empName, empsex =
case empSex
    when 1 then 
    when 0 then 
end
from employee

--6.使用case分等级打印学生成绩信息

select 学号 = stuId, 姓名 = stuName, 平均成绩 = 
case 
    when stuAvgrade > 90.0 then  优秀
    when stuAvgrade > 80.0 then  良好
    when stuAvgrade > 70.0 then  中等
end
from student

-- while 循环语句

while(1=1)-----条件永远成立
select * from student

 


以上是关于关于TSql的主要内容,如果未能解决你的问题,请参考以下文章

关于代码片段的时间复杂度

关于片段生命周期

关于js----------------分享前端开发常用代码片段

TSQL:外部连接表的计数产生不正确的结果

关于在各浏览器中插入音频文件的html代码片段

springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found(代码片段