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 = ''
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 = '';
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 = '';
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的更多相关文章

  1. T-SQL学习记录

    T-sql是对SQL(structure query language )的升级.可以加函数. 系统数据库:master管理数据库.model模版数据库,msdb备份等操作需要用到的数据库,tempd ...

  2. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...

  3. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...

  4. TSQL 分组集(Grouping Sets)

    分组集(Grouping Sets)是多个分组的并集,用于在一个查询中,按照不同的分组列对集合进行聚合运算,等价于对单个分组使用“union all”,计算多个结果集的并集.使用分组集的聚合查询,返回 ...

  5. T-sql语句查询执行顺序

    前言 数据库的查询执行,毋庸置疑是程序员必备技能之一,然而数据库查询执行的过程绚烂多彩,却是很少被人了解,今天哥哥要带你装逼带你飞,深入一下这sql查询的来龙去脉,为查询的性能优化处理打个基础,或许面 ...

  6. T-SQL 查询XML

    我们经常在SQL Server列中存一些XML来作为配置文件或者是保存特殊信息,那么如何将其展开并查询它或将其呈现为关系数据? 其实在T-SQL 下可以很容易的实现. 示例xml <catalo ...

  7. T-SQL 转义select … like中的特殊字符(百分号)

    众所周知,T-SQL中LIKE运算符使用%符号表示通配符.很多时候可能需要查询包含有%的数据,比如需要查询字段coupon中含有5%的数据.那么如何使用已经有百分号(%)符号的LIKE搜索字符串呢? ...

  8. T-SQL Recipes之Separating elements

    Separating elements Separating elements is a classic T-SQL challenge. It involves a table called Arr ...

  9. T-SQL Recipes之Database Backups

    The Problem 在DBA和T-SQL码奴日常工作中,比如常规检查,服务管理,数据库管理, 是其中最具挑战性的一个领域. 在相似任务中,比如索引碎片管理,统计管理,数据库备份是异常重要的,对任何 ...

  10. T-SQL Recipes之Organizing and Archiving Data

    The Problem 当我们处理存档数据或内存数据时,我们想要自定义命名表名,数据库,架构加上日期,时间,或者应用名时,用标准的TSQL来实现是比较困难的. 假设我们有一张日志表,增长速度异常快.但 ...

随机推荐

  1. 优化CSS重排重绘与浏览器性能

    关于CSS重排和重绘的概念,最近看到不少这方面的文章,觉得挺有用,在制作中考虑浏览器的性能,减少重排能够节省浏览器对其子元素及父类元素的重新渲染:避免过分的重绘也能节省浏览器性能:优化动画,使用3D启 ...

  2. 小程序获取当前页面URL

    var pages = getCurrentPages() //获取加载的页面 var currentPage = pages[pages.length-1] //获取当前页面的对象 var url ...

  3. liunx 运维知识四部分

    一. 权限介绍及文件权限测试 二. 目录权限测试 三. 默认控制权限umask 四. chown修改属性和属组 五. 网站安全权限介绍 六. 隐藏属性介绍 七. 特殊权限s 八. 特殊权限t 九. 用 ...

  4. linux命令logger使用

    先从别的地方抄过来全部的解释,如下: **options (选项):** -d, --udp 使用数据报(UDP)而不是使用默认的流连接(TCP) -i, --id 逐行记录每一次logger的进程I ...

  5. ReCAPTCHA & 手势验证

    手势验证 recaptcha https://www.vaptcha.com/ https://www.vaptcha.com/document https://www.iviewui.com/com ...

  6. MyBatis的XML中使用内部类的方式

    内部类需要使用$符号连接,而不是点.,如 com.pingan.job.openapi.model.SMSESBResult$ReceiveResult$ResultInfo 从CSDN论坛查到的. ...

  7. fiddler 学习笔记1-下载安装、开启、关闭抓包功能

    1 下载安装(安装于C盘之外的空间中) https://www.telerik.com/fiddler 2 开启抓包功能:安装后默认为开启状态 点击 file-capture 或左下角capture ...

  8. Lodop打印控件 打印‘接下一页’‘以下空白’

    Lodop打印控件中,超文本超过设置的打印项高度 或超过纸张,就会自动分页,纯文本通过设置为多页项也可以根据打印项高度自动分页,Lodop中还提供了许多手动分页的方法,对于多页文档中(自动分页或手动分 ...

  9. Web API2 使用默认Identity

    当您选择个人账户在Web API项目模板,项目包含一个令牌授权服务器验证用户凭证和问题.下面的图显示了相同的凭证流的Web API组件. 发送一个未经授权的请求 首先,运行应用程序并单击按钮调用的AP ...

  10. python时间模块time

    时间模块 时间模块主要处理和时间相关的事件,我们可以通过模块获取不同数据类型的时间以便我们需求. 表现时间的三种方式: 在pythn中表现时间的方式主要有三种:时间戳(stamptime).元祖时间( ...