码迷,mamicode.com
首页 > 数据库 > 详细

关于TSql

时间:2018-04-29 01:30:33      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:优秀   使用   error   stun   err   select   AC   --   lang   


 

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

标签:优秀   使用   error   stun   err   select   AC   --   lang   

原文地址:https://www.cnblogs.com/fllowerqq/p/8969885.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!