使用T_SQL 编写业务逻辑:

如何定义及使用“变量”:

---- 让电脑帮我记住一个名字(王二)

C#:

string   name ;    【定义一个变量】

name = "王二" ;  【变量赋值】

MessageBox.Show(name);  【输出】

T_SQL:(完全颠覆原有语法)

declare  @name varchar(20)  【定义一个变量】

set @name  = '王二'                  【变量赋值】

print  @name                              【输出】

注意:

1、当定义多个变量时,可以使用一个declare ,多个变量之间使用 “,”分割;

2、当需要给多个变量同时赋值时,可以使用“Select” 替换“set”;

3、以@开头是“自定义变量” ,以@@ 开头是“全局变量”(系统变量),全局变量用于公示系统内部运行过程中各种运行信息;

---- 用户不能定义及修改“全局变量”,是能读取!

常用全局变量:

@@ERROR------记录每次执行SQL语句后的结果,如果正常执行,结果为“0”,否则返回各种“错误号”

@@IDENTITY ----记录最后一次在“带有标示列”的表单插入数据后,所获得“自增长数据”

Select 字句的用法:

--1、用于进行数据表单【查询】

select loginPwd from [Admin]

--2、变量赋值【赋值】

declare @password varchar(50)

select @password = '99999'

--3、查询并赋值(确保只查询到一个值)【查询赋值】

declare @pwd varchar(50)

select @pwd = loginPwd from [Admin] where LoginId = '王二'

--4、输出结果集【拼接结果集】

select '王二' as StuName ,23 as StuAge,'男' as StuSex  union

select '李丽',20,'女'  union

select '赵军',23,'男'

注意:

1、结果集,可以不来自表单,而是通过Select直接拼接

2、select * from ,from后面可以不仅仅表名,也可以是一个“结果集”

使用set 与  Select 都可以进行变量赋值,但是有区别:

set

select

set一次只能给一个变量赋值

Select一次可以给多个变量赋值

set赋值时,得到超过一个结果时,

报错

select 赋值时,得到超过一个结果时,

自动保留最后一个值

set赋值出错时,原有数据丢失!

select 赋值失败时,保留原有数据!

如何将一个“结果集”保存下来?

------ 表变量、临时表

1、表变量

定义

declare @temptable Table(name varchar(20) ,age int ,sex nchar(1))

赋值

A:insert into @temptable  values('王军',20,'男')   ---- 单个赋值

B:insert into @temptable  select查询语句          ---- 多个赋值

B_例子:

insert into @temptable  select '王军',20,'男' union

insert into @temptable  select '李军',20,'男'

取值

与普通表单的访问方式一致.

2、临时表

定义

create  table  #表名(......)

赋值

与普通表单操作一致

取值

与普通表单操作一致

表变量

临时表

语法:

declare @变量名    Table(列定义)

create  Table  #表名(列定义)

工作原理:

数据存放在“内存中”;

只能定义后立刻使用(在一个Go之中),使用自动释放

数据保存在系统数据库tempdb中(磁盘上);

在用户的数据连接“断开前”,临时表将一直可以使用

使用场景:

少量结果集需要保存,且后续立刻使用

较大量的临时数据,需要保存时

使用“变量”,对数据使用,有什么影响?

--- 减低了编写SQL业务语句的难度!可以将原来一个SQL语句做的步骤,拆分成多个SQL语句去执行,而将它们之间的数据联系,使用“变量”来保存!

T_SQL语句也可以使用IF 、While进行逻辑分支、循环!

1、将原来的 “{” -----> begin

2、将原来的“}”  ----->  end

Case....End字句:

1、两对半;

Case    <> End

When  <> then

else(落单)

2、Case...end不能单独出现,必须“嵌入”查询或者赋值语句

3、When 后面,只能是为true或false的表达式

4、then 后面,数据类型统一

小贴士:

在T_SQL中的“+”,有两重含义:

1、当 “+”两边都是数字时,进行的“加运算”

2、当“+”两边都是字符时,进行的“字符连接”

3、当两边数据类型不一致时,需要进行类型转换

cast ( 变量  as   类型)

convert (类型 , 变量)

----- 区别:convert能够进行“输出格式”的设定,往往用于“时间类型”和“带小数的类型”

优化MySchool数据库(三)的更多相关文章

  1. 优化MySchool数据库设计之【巅峰对决】

    优化MySchool数据库设计 之独孤九剑 船舶停靠在港湾是很安全的,但这不是造船的目的 By:北大青鸟五道口原玉明老师 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识 ...

  2. 优化MySchool数据库(二)

    优化School数据库(TSQL建库建表建约束) 使用T_sql代码建库.建表.建约束: 建库: Create database HotelManagerSystem on ( ---- 数据文件-- ...

  3. 优化MySchool数据库(一)

    <优化MyShcool数据库>:能够的独立的分析|设计|创建|运营|你的独立的数据库系统 设计--->实现--->TSQL--->查询优化---->性能优化技术-- ...

  4. 优化MySchool数据库设计总结

    数据库的设计   一:什么是数据库设计? 数据库设计就是将数据库中的数据实体以及这些数据实体之间的关系,进行规范和结构化的过程. 二:为什么要实施数据库设计? 1:良好的数据库设计可以有效的解决数据冗 ...

  5. 优化MySchool数据库设计

    第一章 数据库的设计 1.E-R图中: 矩形:实体 椭圆:属性 菱形:关系 直线:连接实体,属性和关系 2.映射基数 一对多 多对一 多对多 3.范式: 第一范式:确保每列的原子性 第二范式:确保表中 ...

  6. accp7.0优化MySchool数据库设计内测笔试题总结

    1) 在SQL Server 中,为数据库表建立索引能够(C ). 索引:是SQL SERVER编排数据的内部方法,是检索表中数据的直接通道 建立索引的作用:大大提高了数据库的检索速度,改善数据库性能 ...

  7. S2--《优化MySchool数据库设计》总结

    第一章    数据库的设计 1.1  数据库设计 数据库中创建的数据库结构的种类,以及在数据实体之间建立的复杂关系是决定数据库系统效率的重要因素. 糟糕的数据库设计表现在以下两个方面: *效率低下 * ...

  8. 优化MySchool数据库(存储过程)

    什么是“存储过程”: ---- 数据库中,用于存储“业务逻辑”的技术!(T-SQL代码当做数据一样保存到数据可) 语法 : [if exists(select * from sysobjects wh ...

  9. 优化MySchool数据库(事务、视图、索引)

    事务.视图.索引: 事务:当生活逻辑中的“一个步骤”,需要使用多条SQL去完成时,必须使用事务来确保其“完整性“. 视图:简化数据库结构,方便你编写SQL语句(简化SQL语句的编写) 索引:提高“数据 ...

随机推荐

  1. 20 个高质量响应式的 HTML/CSS 网站模板

    BisLite: Free HTML Website Templates Professional Responsive HTML5/CSS3 template Respond Wood workin ...

  2. linux专题一之文件描述符、重定向、管道符、tee命令

    本节讨论一下几个问题: 1. 文件描述符. 2. 重定向. 3. 管道符 4. tee的用法. 1. 文件描述符. 在linux系统中一切皆文件.文件夹和设备都是文件.如何用来区别不同的文件呢?这里的 ...

  3. Think different

    Here's to the crazy ones.The misfits.The rebels.The troublemakers.The round pegs in the square holes ...

  4. 【原创】Kakfa utils源代码分析(一)

    Kafka.utils,顾名思义,就是一个工具套件包,里面的类封装了很多常见的功能实现——说到这里,笔者有一个感触:当初为了阅读Kafka源代码而学习了Scala语言,本以为Kafka的实现会用到很多 ...

  5. Windows Phone 8.1中处理后退键的HardwareButtons.BackPressed事件

    在WP8中,处理后退键比较简单,重写OnBackKeyPress事件即可.如经常用的双击后退键退出的功能,用户在MainPage页面第一次点击后退键时,弹出一个对话框"是否退出?" ...

  6. Unicode中文和特殊字符的编码范围

    编程中有时候需要用到匹配中文的正则,一般用 [ \u4e00-\u9fa5]+ 即可搞定.不过这正则对一般的火星文鸟语就不太适用了,甚至全角的标点符号都不包含在内.例如游戏里面的玩家名,普通青年一般都 ...

  7. WinForm 多窗体操作

    1多窗体操作:确定哪个是主窗体 通过窗体进入其他窗体 代码如下 Form2 f2 = new Form2();//f2窗体实例化出来 f2.Show();//进入f2窗体 this.Hide();// ...

  8. c#使用WebClient登录网站抓取登录后的网页

    C#登录网站实际上就是模拟浏览器提交表单,然后记录浏览器响应返回的会话Cookie值,再次发送请求时带着这个会话cookie值去请求就可以实现模拟登录的效果了. 如下类CookieAwareWebCl ...

  9. SQL更改表字段为自增标识

    下面是SQL语句: --删除主键约束 ) select @Constraint_Name = Name from dbo.sysobjects where Xtype = 'PK' and Paren ...

  10. Android Volley框架的使用(2)

    3. 设置请求类型和参数 Volley默认的请求类型是GET,如果需要用POST,可以在构造函数中进行设置.设置参数可以通过重写getParams()方法来实现. private void postR ...