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. Artifact project04:war :Error during artifact deployment. See server log for details

    困扰了我好长时间,我的错误是 先 Run clean  再package就成功了.

  2. java学习之—链表(3)

    /** * 使用链表实现队列 * Create by Administrator * 2018/6/19 0019 * 下午 4:37 **/ public class Link { public l ...

  3. WPF程序中App.Config文件的读与写

    WPF程序中的App.Config文件是我们应用程序中经常使用的一种配置文件,System.Configuration.dll文件中提供了大量的读写的配置,所以它是一种高效的程序配置方式,那么今天我就 ...

  4. PHP的特质Trait使用

    参考: Trait的使用,网站地址https://www.jianshu.com/p/fc053b2d7fd1

  5. Java面向对象之多态的静态和动态实现

    简单而言: 静态多态:即为重载,方法的重载 动态多态:即为重写/覆盖,方法的重写

  6. JDBC 初始。

    package cn.zhouzhou; /* 一.JDBC? 1.(java date base connectivity,java)是一种用于执行SQL语句的java API . 2.jdbc本质 ...

  7. react 自我小计

    1.react中的方法调用,在onClick事件中不需要加小括号. <button onClick={this.show}>方法的调用</button> show(){ con ...

  8. Spring Security 学习总结

    Spring Security Spring Security是基于Spring提供声明式安全保护的安全性框架.Spring Security提供了完整的安全性解决方案,能够在Web请求级别和方法调用 ...

  9. sed 收集

    #删除倒数第二行的最后的逗号 一条命令 sed ':1;$b;N;/InnoDB/!b1;s/,\n)/\n)/'

  10. Codeforces Round #545 Div. 1自闭记

    A:求出该行该列各有多少个比其小的取max,该行该列各有多少个比其大的取max,加起来即可. #include<iostream> #include<cstdio> #incl ...