优化MySchool数据库(三)
使用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数据库(三)的更多相关文章
- 优化MySchool数据库设计之【巅峰对决】
优化MySchool数据库设计 之独孤九剑 船舶停靠在港湾是很安全的,但这不是造船的目的 By:北大青鸟五道口原玉明老师 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识 ...
- 优化MySchool数据库(二)
优化School数据库(TSQL建库建表建约束) 使用T_sql代码建库.建表.建约束: 建库: Create database HotelManagerSystem on ( ---- 数据文件-- ...
- 优化MySchool数据库(一)
<优化MyShcool数据库>:能够的独立的分析|设计|创建|运营|你的独立的数据库系统 设计--->实现--->TSQL--->查询优化---->性能优化技术-- ...
- 优化MySchool数据库设计总结
数据库的设计 一:什么是数据库设计? 数据库设计就是将数据库中的数据实体以及这些数据实体之间的关系,进行规范和结构化的过程. 二:为什么要实施数据库设计? 1:良好的数据库设计可以有效的解决数据冗 ...
- 优化MySchool数据库设计
第一章 数据库的设计 1.E-R图中: 矩形:实体 椭圆:属性 菱形:关系 直线:连接实体,属性和关系 2.映射基数 一对多 多对一 多对多 3.范式: 第一范式:确保每列的原子性 第二范式:确保表中 ...
- accp7.0优化MySchool数据库设计内测笔试题总结
1) 在SQL Server 中,为数据库表建立索引能够(C ). 索引:是SQL SERVER编排数据的内部方法,是检索表中数据的直接通道 建立索引的作用:大大提高了数据库的检索速度,改善数据库性能 ...
- S2--《优化MySchool数据库设计》总结
第一章 数据库的设计 1.1 数据库设计 数据库中创建的数据库结构的种类,以及在数据实体之间建立的复杂关系是决定数据库系统效率的重要因素. 糟糕的数据库设计表现在以下两个方面: *效率低下 * ...
- 优化MySchool数据库(存储过程)
什么是“存储过程”: ---- 数据库中,用于存储“业务逻辑”的技术!(T-SQL代码当做数据一样保存到数据可) 语法 : [if exists(select * from sysobjects wh ...
- 优化MySchool数据库(事务、视图、索引)
事务.视图.索引: 事务:当生活逻辑中的“一个步骤”,需要使用多条SQL去完成时,必须使用事务来确保其“完整性“. 视图:简化数据库结构,方便你编写SQL语句(简化SQL语句的编写) 索引:提高“数据 ...
随机推荐
- 算法实例-C#-快速排序-QuickSort
算法实例 ##排序算法Sort## ### 快速排序QuickSort ### bing搜索结果 http://www.bing.com/knows/search?q=%E5%BF%AB%E9%80% ...
- 孙鑫MFC学习笔记8:对话框编程(下)
1.在按钮上没有字体设置,但是在对话框上有字体设置 2.让按钮进行消息响应 *1.创建按钮 *2.创建从按钮继承的类 *3.关联对象 3.属性页编程 *1.在对话框资源中新建属性页 *2.为属性页创建 ...
- Calling startActivity() from outside of an Activity
在Activity中使用startActivity()方法不会有任何限制,因为Activity重载了Context的startActivity()方法.但是如果是在其他地方(如Widget或Servi ...
- Java 读取Properties文件时应注意的路径问题
1. 使用Class的getResourceAsStream()方法读取Properties文件(资源文件)的路径问题: InputStream in = this.getClass().getRe ...
- [转]JavaScript程序编码规范
原文:http://javascript.crockford.com/code.html 作者:Douglas Crockford 译文:http://www.yeeyan.com/articles/ ...
- 数据操作语言DML与运算符
数据操作语言DML(添加,修改,删除) 1.添加数据 insert into insert into 表名 (字段列表) values (值列表),值列表要和字段列表按顺序匹配. insert int ...
- 第 25 章 CSS3 过渡效果
学习要点: 1.过渡简介 2.transition-property 3.transition-duration 4.transition-timing-function 5.transition-d ...
- IT职业思考 谈谈IT外包公司
个人能力强才是王道 1. 为什么像BAT.HP.IBM.华为这些大公司还需要外包,他们已经有那么多的技术人员 一个公司,如果没有那么多项目,光养这些技术人员,实际的经营成本确实不低,但是这些技术人员又 ...
- 我的css笔记
1.css的使用方法 内嵌样式 <p style="font-size:20pt;color:red;">这个Style定义<p> <!--里面的文字 ...
- 缓存MEMCACHE 使用原子性操作add,实现并发锁
memcache中Memcache::add()方法在缓存服务器之前不存在key时, 以key作为key存储一个变量var到缓存服务器.我们使用add来向服务器添加一个键值对应,如果成功则添加,否则说 ...