sql server T-SQL 基础
SQL语言按照用途可以分为如下3类:
定义修改和删除数据库、表、索引和视图等
对数据进行查询(SELECT)、插入(INSERT)、删除(DELETE)、更新(UPDATE)等
对数据库对象的权限管理和事务管理
一、T-SQL语法基础
1.标识符
Select * from book where bname=“C程序”
中的book和bname。
例如: SELECT * FROM " My Table "
例如: SELECT * FROM [My Table]
2.常量
常量是指在程序运行过程中值始终不变的值。
3.变量
在SQL Server中,变量分为局部变量和全局变量
前面有一个@字符,由用户定义和使用。
名称前面有两个@字符,由系统定义和维护。
DECLARE { @local_variable data_type }[,...n]
例如:
DECLARE @grade int,@sex char(2)
set @grade=60
select @sex='女‘
select @grade, @sex
4.运算符
运算符是一种符号,用来指定要在一个或多个表达式中执行的操作。
运算符优先级:
+(正)、-(负)、~(按位NOT)
*、/、%
+(加)、+(连接)、-(减)
=、>、<、>=、<=、<>、!=、!>、!<
^(按位异或)、&(按位与)、|(按位或)
NOT
AND
ALL、ANY、BETWEEN、IN、LIKE、OR、
=(赋值)
5.流程控制语句
控制流语句是用来控制程序执行流程的语句,使用控制流语句可以在程序中组织语句的执行流程,提高编程语言的处理能力。
T-SQL提供控制流关键字,用于控制语句、语句块和存储过程的执行流。
控制流语句 |
说明 |
BEGIN…END |
定义语句块 |
IF…ELSE |
条件处理语句,如果条件成立,执行IF语句; 否则执行ELSE语句 |
CASE |
分支语句 |
WHILE |
循环语句 |
GOTO |
无条件跳转语句 |
RETURN |
无条件退出语句 |
WAITFOR |
延迟语句 |
BREAK |
跳出循环语句 |
CONTINUE |
重新开始循环语句 |
① BEGIN…END语句
BEGIN…END语句用于将多个Transact-SQL语句组合为一个逻辑块。
语法格式为:
BEGIN
{
sql语句|语句块
}
END
IF或ELSE子句需要包含语句块。
② IF…ELSE语句
使用IF…ELSE语句,可以有条件地执行语句。其语法格式如下:
IF Boolean_expression
{sql语句|语句块}
[ELSE
{sql语句|语句块}]
1)简单CASE格式
其语法格式如下:
CASE input_expression
WHEN when_expression THEN result_expression
[…n]
[ELSE else_result_expression]
END
注: input_expression和每个when_expression的数据类型必须相同或隐形转换。
如果未找到匹配值,也没有else子句,则返回null。
2)搜索CASE格式
其语法格式如下:
CASE
WHEN Boolean_expression THEN result_expression
[…n]
[ELSE else_result_expression]
END
注:如果Boolean_expression表达式的值为true,则返回then后的表达式,然后跳出case语句。
④ WHILE语句
WHILE语句可以重复执行若干SQL语句。
其语法格式如下:
WHILE Boolean_expression
{sql语句|语句块}
[BREAK]
{sql语句|语句块}
[CONTINUE]
⑤GOTO语句
GOTO语句可以实现无条件的跳转。其语法格式为:
GOTO lable
⑥ RETURN语句
RETURN [integer_expression]
其中:integer_expression为一个整数值,是return语句要返回的值。
⑦ WAITFOR语句
WAITFOR {DELAY 'time' | TIME 'time'}
⑧try…catch语句
Begin try
{sql_statement|sql_block}
End try
Begin catch
{sql_statement|sql_block}
End catch
6.注释
这些注释字符可与要执行的代码处在同一行,也可另起一行。从双连字符开始到行尾均为注释。
从开始注释对(/*)到结束注释对(*/)之间的全部内容均视为注释部分。可对多行注释。
7.游标的使用
定义该游标的SELECT语句返回的行的集合。
指向这个集合中某一行的指针。
游标的典型使用过程 :
声明游标使用DECLARE CURSOR语句,格式如下:
DECLARE cursor_name [ SCROLL ] CURSOR
FOR select_statement
[ FOR { READ ONLY | UPDATE [ OF column_name [ , …n ] ] } ]
打开游标使用OPEN语句,其语法格式如下:
OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name }
其中:
FETCH [ [ NEXT | PRIOR | FIRST | LAST
| ABSOLUTE { n | @nvar }
| RELATIVE { n | @nvar }
]
FROM
]
{ { [ GLOBAL ] cursor_name } | @cursor_variable_name }
[ INTO @variable_name [ , …n ] ]
@@FETCH_STATUS()函数
该函数报告上一个FETCH语句的状态,其取值和含义如表所示。
取值 |
含义 |
0 |
FETCH语句成功 |
-1 |
FETCH语句失败或此行不在结果集中 |
-2 |
被提取的行不存在 |
@@ROWCOUNT 全局变量
用来提供游标活动信息,它返回受上一语句影响的行数。
关闭游标使用CLOSE语句,其语法格式如下:
CLOSE { { [ GLOBAL ] cursor_name } | cursor_variable_name }
DEALLOCATE { { [ GLOBAL ] cursor_name } | @cursor_variable_name }
sql server T-SQL 基础的更多相关文章
- .NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Ruby/Shell/Agile/CSS/HTML/HTTP/Unix/Linux大量PDF书籍/电子书籍下载, Effective Java 下载
223本电子书籍,囊括了.NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Shell/A ...
- 【SQL Server】SQL触发器经验详解
[SQL Server]SQL触发器经验详解 | 浏览: 4314 | 更新: 2013-01-07 15:33 25 11 全文阅读分步阅读 加入杂志 步骤 1 2 3 4 5 6 7 8 ...
- SQL Server经典sql语句大全(转)
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- PowerDesigner反向数据库时遇到[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。SQLSTATE = 37错误解决方法
逆向工程中,有时会出现如下错误 ... [Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句 SQLSTATE = 37000 解决方案: 1. ...
- [Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效(转)
原帖由 qingyun 于 2010-6-21 15:44 发表 在写pl/sql的时候,有个很重要的注意点:比如:begin update 某个sqlserver的表@dblink名字 .... ...
- (转)[SQL Server] 动态sql给变量赋值(或返回值给变量)
本文转载自:http://blog.csdn.net/xiaoxu0123/article/details/5684680 [SQL Server] 动态sql给变量赋值(或返回值给变量) decla ...
- SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
原文:SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件 从2005开始,就引入了"数据库邮件"功能.并且取代SQLMail.原有SQLMail ...
- SQL Server审计功能入门:SQL Server审核 (SQL Server Audit)
原文:SQL Server审计功能入门:SQL Server审核 (SQL Server Audit) 介绍 Audit是SQL Server 2008之后才有的功能,它能告诉你"谁什么时候 ...
- sql server 与 sql server compact 互相数据导入
从SQL Server 导出数据到 Sql Compact 使用 Sql Server Compact Tool box 从SQL Server Comapct 导出数据到 Sql Server 使 ...
- SQLSERVER 免费对比数据库结构和数据的工具支持:SQL Server 2012, SQL Server 2008 and SQL Server 2005
New xSQL Schema Compare - version 5 Compare the schemas of two SQL Server databases, review differen ...
随机推荐
- apt-cache, apt-get
apt是debian系的软件包的管理工具,他们可以通过搜索在/var/lib/apt/list里的索引文件搜做根据/etc/apt/sources.list里的软件源来在线安装软件,安装的过程还可以自 ...
- 08_Queue(队列UVa 10128)
问题描述:n(1<=n<=13)个身高均不相等的人站成一排,从左向右看能看见L个人,从右向左看能看见R个人,问这个队列有多少种排法? 问题分析: 1.n个人的身高可设为1~n, 2.设d ...
- 树莓派3 安装ubuntu-mate
1.系统安装 1.1.下载ubuntu-mate镜像:https://ubuntu-mate.org/raspberry-pi/ 下载SDFormatterv4:https://www.sdcard. ...
- [转]Oracle分页之二:自定义web分页控件的封装
本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018326.html 上节中,讲述的就是Oracle存储过程分页的使用方式,但是如 ...
- Memcached内存分配优化及使用问题
前几天做了个Memcached的思考,并测试了一些数据,是关于如何提高Memcached内存使用率的问题.在启动memcached的时候可以加-f参数和-n参数.-f指定各slab里面chunk大小的 ...
- 初始化httpclient的几种方式
1.CloseableHttpClient httpclient = HttpClients.createDefault(); 2.DefaultHttpClient client = new Def ...
- Trie树 & 01Trie
指针版 #define MAXNUM 26 //定义字典树结构体 typedef struct Trie { bool flag;//从根到此是否为一个单词 Trie *next[MAXNUM]; } ...
- mac os下得pycharm怎么设置mercurial?
捣鼓了一会儿,最终搞定了. 先把链接贴上来:https://www.jetbrains.com/pycharm/help/mercurial.html 如果你发现你的pycharm在设置mercuri ...
- 第2章 面向对象的设计原则(SOLID):2_里氏替换原则(LSP)
2. 里氏替换原则(Liskov Substitution Principle,LSP) 2.1 定义 (1)所有使用基类的地方必须能透明地使用子类替换,而程序的行为没有任何变化(不会产生运行结果错误 ...
- Unity抗锯齿
Unity抗锯齿设置是针对模型,对模型的阴影的锯齿设置无效,不知道我这样的理解是否正确. 遇到的问题 而我是要对灯光照射在模型上产生的阴影进行抗锯齿,暂时还未研究出解决方案,希望知道的朋友告知一声. ...