第四章 T-SQL编程

1、前言
-》此T-SQL编程是基于sql server开发环境
-》关键字:T-SQL编程;游标;视图和索引

2、T-SQL编程基础
-》标识符:常规标识符必须以汉字、字母、下划线_、@ 或 #开头,不能使用SqlServer关键字
-》变量
·声明格式:declare @变量名 数据类型
注:声明局部变量后,该变量被初始化为NULL
例:declare @CurrentDateTime char(30)
·设置(set语句)格式: set|select @变量名 = 值
注:赋予的值必须与声明的值相符
例:select @CurrentDateTime = Getdate()
·输出格式:print|select @变量名
·全局变量: @@ 变量名
注:系统提供且预先声明
例: @@version ——数据库版本
@@identify ——进行插入后调用,返回最近的标识符
@@servername ——服务器名称
@@erro ——返回上一个执行T-SQL的错误号
@@rowcount ——返回上一执行语句的影响行数

3、运算符
-》算术运算符:+、-、*、/、%
-》赋值运算符:=
-》位运算符:
·按位与(&):均为1取1,否则取0;
·按位或(|):一个为1取1,否则取0;
·按位异或(^):不同取1,否则取0.
-》比较运算符:用于判断,其结果位逻辑值:ture、false及unknown
等于(=),大于(>),小于(<)
不等于(<>或!=),不小于(!<),不大于(!>)
大于等于(>=),小于等于(<=)
-》逻辑运算符:all、and或&&、any或some、between、exists、in、like、not或!、or或||
-》字符串连接运算符:@ 变量名 =‘ ‘ + ‘ ‘ + ··· + ‘ ‘
-》一元运算符
-》运算符的优先级

4、流程控制语句
-》begin···end语句:将多个语句组合成一个语句块,并将它们视为一个单元处理,相当于(···)
·格式:begin
语句1
···
end
-》if···else语句:
·格式:if 条件表达式
语句1
else
语句2
-》case语句
·格式一:case 输入表达式
when 表达式1 then 结果表达式 /*如果 输入表达式=表达式1 为ture,则 结果表达式 有效*/
···
[else 表达式]
end
·格式二:case
when 布尔表达式 then 表达式
···
[else 表达式]
end

-》while语句
·格式:while 条件表达式
begin
语句1 [break] /*跳出循环*/
[语句2] [continue] /*跳过continue之后的语句*/
[语句3]
end
-》goto语句:
·格式:标签名:
语句1
···
if 条件表达式
goto 标签名
-》异常处理语句
·格式:begin try
···
end try
begin catch
···
end catch

5、函数
-》系统内置函数
·数学函数
floor(数) 求小于实数的整数
round(数,0) 四舍五入
power(x,y) 求x的y次方
·日期时间函数
getdate() 返回系统当前的日期和时间
day(date_expression) 返回日期表达式中的日
month(date_expression) 返回日期表达式中的月
year(date_expression) 返回日期表达式中的年
·聚合函数
在数据库查询章节
·字符串函数
ascII(char_expression) 返回表达式中最左边一个字符的ascII码值
char(integer_expression) 返回ascII码值对应的字符
lower(char_expression) 大写转为小写字符 upper(char_expression) 小写转为大写
-》用户自定义函数
·标量函数:返回一个确定类型的标量值
--格式:create function 函数名(形参) /* 函数名及形参定义部分,形参格式: @变量名 数据类型 */
returns 数据类型 /*返回参数的类型*/
[as] begin
函数体
return 值
end
·内嵌值表函数:返回值为表的形式
--格式:create function 函数名(形参)
returns table
[as] return select语句
·多语句表值函数:可以看成上面两个函数的结合
--格式:create function 函数名(形参) returns @返回变量名 table
[as] begin
函数体
return
end

6、游标
-》概念
·从包括多条数据记录的结果集中每次提取一条记录的机制
·对查询语句返回的结果集中每一行进行操作,而不是对整个结果集。
-》三种类型:T-SQL游标、API游标、客户游标
-》声明游标
·SQL-92语法格式:
DECLARE 游标名 [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR sql-statement
[for {read only | update [of 列名[,···n]]}]
·参数说明:insensitive表明游标定义所选取的记录存放在临时表中
scroll 表明所有的读取操作(next | prior | first | last | absolute )都可用,不必关闭游再重开游标
read only 表明不允许数据被更新
·例: Declare MyCursor Cursor
FOR Select * FROM tbMyData
-》打开游标
·语法格式: open [global] 游标名 /*global定义游标为全局游标*/
·例:open MyCursor
go
-》读取游标
·语法格式: fetch [next | prior | first | last | absolute{n | @nvar} | relative{n | @var}]
from 游标名
·参数说明:next:返回结果集中当前行的下一行,并增加当前行数为返回行行数;
·例:fetch next from MyCursor
-》关闭游标
·语法格式: open [global] 游标名
go
·参数说明:
·例:close MyCursor
go
-》释放游标:游标不再需要时
·语法格式: deallocate [global] 游标名
go
·参数说明:
·例:deallocate MyCursor
go

7、视图(也称虚拟表)
-》创建视图
·语法格式:create view 视图名 [列名(,···n)]
with 视图属性
as sql语句块
go
-》修改视图
·语法格式:alter view 视图名 [列名(,···n)]
with 视图属性
as sql语句块
go
-》使用视图:
·查询:
例: select * from 视图名
·修改:
例: insert into 视图名 values(‘0110301‘,‘张三‘,‘男‘,20)
-》删除视图: drop view 视图名

8、索引
-》目的:提高系统性能,加快数据的查询速度和减少系统的响应时间
-》索引类型
·聚集索引:对表和视图进行物理排序(表和视图至多1个索引)
·非聚集索引:目录纯粹是目录,正文纯粹是正文的排序
-》创建索引
·语法格式: create [unique][clustered | nonclustered] index 索引名
on 表名或视图名 (列名[asc | desc][,···n])
-》间接创建索引:创建表时,定义主键约束和唯一性约束
-》创建索引视图
·例:创建一个“女学生”视图,并为该视图按“学号”升序创建一个具有唯一性的聚集索引
--创建视图: use 教学库
go
create view 女学生
with schemabinding
as
select 学号,姓名,性别,专业 from dbo.学生表
where 性别=‘女‘
--创建索引:
create unique clustered index 女生索引 on 女学生(学号)
-》查看索引信息:
exec sp_helpindex 表名
或 exec sp_help 表名
-》删除索引:
drop index 表名.索引名

原文地址:https://www.cnblogs.com/ysq2018China/p/9147714.html

时间: 2024-11-10 11:48:38

第四章 T-SQL编程的相关文章

2015/8/17笔记整理 第12章 PL/SQL编程简介1 块 过程 函数

Oracle数据库中包含一种过程化编程语言PL/SQL,PL/SQL是ORACLE对标准数据库语言的扩展. 一.PL/SQL的优点 PL/SQL 不是一个独立的产品,他是一个整合到ORACLE服务器和ORACLE工具中的技术,可以把PL/SQL看作ORACLE服务器内的一个引擎,sql语句执行者处理单个的sql语句,PL/SQL引擎处理PL/SQL程序块.当PL/SQL程序块在PL/SQL引擎处理时,ORACLE服务器中的SQL语句执行器处理pl/sql程序块中的SQL语句. PL/SQL语句—

源码-PL/SQL从入门到精通-第四章-PL/SQL控制语句(基础中的基础)

控制语句对任何一门语言.任何一个程序员而言,都是基础中的基础. 学了PL/SQL,才体会到Java语法的简洁,简直不是一个时代的东西:当然,他们的定位本来就不一样,不能以己之长比之他人之短. --第4章开始 --代码4.1 最简单的IF语句使用示例 DECLARE v_count NUMBER(10) := 0; --定义计数器变量 v_empno NUMBER(4) := 7888; --定义员工编号 BEGIN SELECT COUNT(1) --首先查询指定的员工编号是否存在 INTO v

on java 8 第十四章 流式编程

1 流支持 2 流创建 2.1 随机数流 2.2 int 类型的范围 2.3 generate() 2.4 iterate() 2.5 流的建造者模式 2.6 Arrays 2.7 正则表达式 3 中间操作 3.1 跟踪和调试 3.2 流元素排序 3.3 移除元素 3.4 应用函数到元素 3.5 在 map() 中组合流 4 Optional类 4.1 便利函数 4.2 创建-optional 4.3 optional-对象操作 4.4 optional-流 5 终端操作 5.1 数组 5.2

算法导论第四章分治策略编程实践(二)

在上一篇中,通过一个求连续子数组的最大和的例子讲解,想必我们已经大概了然了分治策略和递归式的含义,可能会比较模糊,知道但不能用语言清晰地描述出来.但没关系,我相信通过这篇博文,我们会比较清楚且容易地用自己的话来描述. 通过前面两章的学习,我们已经接触了两个例子:归并排序和子数组最大和.这两个例子都用到了分治策略,通过分析,我们可以得出分治策略的思想:顾名思义,分治是将一个原始问题分解成多个子问题,而子问题的形式和原问题一样,只是规模更小而已,通过子问题的求解,原问题也就自然出来了.总结一下,大致

现代软件工程 第四章 【结对编程】练习与讨论

4.7.2  性格对合作的影响 人和人不一样,在和别人合作的时候,要注意各人表达观点的方式和思考的方式不尽相同.请看网上关于MBTI的文章,测试并分享各自的MBTI类型,讨论不同性格类型对合作有多大的影响, 在合作的各个阶段应该如何应对. ISTJ 安静.严肃,通过全面性和可靠性获得成功.实际,有责任感.决定有逻辑性,并一步步地朝着目标前进,不易分心.喜欢将工作.家庭和生活都安排得井井有条.重视传统和忠诚. ISFJ 安静.友好.有责任感和良知.坚定地致力于完成他们的义务.全面.勤勉.精确,忠诚

第三章 PL/SQL编程

3.1 PL/SQL基础知识    3.1.1 什么是PL/SQL?        PL/SQL是结合Oracle过程语言和结构化查询语言的一种扩展语言        3.1.1.1 PL/SQL体系结构(教材76页图3.2)        3.1.1.2 PL/SQL块简介             定义:PL/SQL是一种块结构语言,它将一组语句放在一个块中.            组成:声明部分.执行部分.异常处理部分.            结构:[DECLARE]            

第四章 中级SQL

4.1 连接表达式 4.1.1 连接条件 on是另一种形式的连接,其中可以指定任意的连接条件.on条件允许在参与连接的关系上设置通用的谓词,该谓词的写法与where子句谓词类似. 1 select* 2 from student join takes on student.ID = takes.ID; on条件有两个优点,首先,被称为外连接的这类连接来说,on条件的表现与where条件是不同的.其次,如果在on子句中指定连接条件,并在where子句中出现其余的条件,这样的SQL查询通常更容易懂.

数据库系统原理(第四章:SQL与关系数据库基本操作 )

一.SQL概述 sql是结构化查询语言(Structured Query Language,SQL)是专门用来与数 据库通信的语言,它可以帮助用户操作关系数据库. SQL的特点: SQL不是某个特定数据库供应商专有的语言: SQL简单易学 :SQL强大.灵活,可以进行非常复杂和高级的数据库操作 SQL的组成: 数据查询 数据定义语言(Data Definition Language,DDL) 数据操纵(DML) 数据控制(DCL) *******************数据定义语言*******

matlab学习笔记第四章——统计和MATLAB编程介绍

1.柱状图: >> x = [55,63,69,70,75,78,82,84,85,88,90,96,100]; >> y = [1,2,1,6,4,7,2,1,3,2,4,2,1]; >> bar(x,y) 2.我们可以使用barh命令产生水平的柱状图. 3.通过调用mean函数,MATLAB会告诉我们一组数据的均值是多少. 4.

java第四章编程题(初学篇)

代码: 1 /* 2 test.java 3 */ 4 package test; 5 public class test { 6 public static void main(String args[] ) 7 { 8 CPU ccp= new CPU(); 9 HardDisk hhd=new HardDisk(); 10 PC pc =new PC(); 11 ccp.setSpeed(2200); 12 hhd.setAmount(200); 13 pc.setCPU(ccp); 14