transact-sql通常缩写为t-sql,或者tsql,是microsoft和sybase对sql的专有扩展。transact-sql对sql标准进行扩展,以包含sql标准中不包含的额外特性。
下面是一个简单的t-sql语句的例子:
create database movies;
这是一个简单的t-sql示例。这将创建一个名为movies的新数据库。
但是,t-sql提供了在此语句中包含的其他选项,例如数据库文件应该位于何处、这些文件的大小、它们的最大大小应该是多少,等等。
t-sql的一些特性包括:
1、程序编程
2、局部变量
3、支持字符串处理、数据处理、数学等多种功能
4、对delete和update语句的更改。特别是,它们允许添加from子句,这允许包含连接。
5、t-sql有一个bulk insert批量插入语句,允许你以用户指定的格式将数据文件导入数据库表或视图。
上述扩展的主要好处之一是,在使用t-sql和sql时,你有更多的可编程性。例如,存储过程允许你将编程逻辑合并到数据库中。你可以将一个或多个参数传递给存储过程,存储过程将返回一个输出,该输出根据参数的值而变化。
t-sql还包含大量内置函数,以及支持用户定义的函数。
一个内置函数的例子
下面是另一个基本的例子,这次使用的是t-sql的内置函数之一:
select getdate();
输出:
2018-05-06 23:30:37.003
在本例中,我们使用t-sql的getdate()函数返回当前日期和时间。这与select语句一起使用,select语句是返回数据的常用sql语句。
我们也可以用这个函数作为另一个函数的参数。这里有一个例子:
select format(getdate(), 'mmm');
结果:
may
t-sql的历史
虽然transact-sql(和sql server)最广为人知的名称是microsoft,但它实际上是microsoft和sybase于1987年开始合作的结果。这一伙伴关系于1994年解散。
此后,t-sql继续得到两家公司发布的数据库产品的支持,但是,每家公司都按照自己的方向开发了自己的数据库产品。因此,sybase t-sql和microsoft t-sql之间存在一些差异。
t-sql和gui工具
transact-sql是sql server的核心。sql server中的大多数操作都是使用t-sql完成的。即使您使用gui工具(如ssms或dbeaver)而实际上不进行任何编程,这也是正确的。无论何时使用应用程序与sql server交互,应用程序都会在后台使用t-sql执行指定的任务。
但sql server并不是唯一支持transact-sql的数据库管理系统。microsoft azure sql数据库也支持t-sql。应用程序使用的大多数t-sql特性在microsoft sql server和azure sql数据库中都得到了完全支持(尽管有一些例外)。
关于go命令
任何使用过t-sql的人都可能熟悉go命令。这个关键字通常放在一批语句的末尾。例如,上面的第一个例子也可以这样写:
create database movies;
go
然而,go命令实际上不是transact-sql的一部分。事实上,go命令甚至不能占用transact-sql语句的同一行。
go是sqlcmd和osql实用程序以及sql server management studio代码编辑器可以识别的命令之一,这些命令可以促进批处理和脚本的可读性和执行。go命令将一批transact-sql语句的结束信号发送给sql server实用程序。
sql server实用程序将go解释为一个信号,表示它们应该将当前这批transact-sql语句发送到sql server的一个实例。当前这批语句由自上次执行操作以来输入的所有语句组成,如果这是第一次执行操作,则由自特别会话或脚本开始执行以来输入的所有语句组成。
其他专有sql扩展
transact-sql不是sql标准的唯一扩展。各种数据库系统都有自己的扩展。例如,oracle使用一种私有的过程语言pl/sql, postgresql使用一种过程语言pl/pgsql。
尽管专有sql扩展有其优点(比如扩展功能),但它们也有缺点。一个主要缺点是,如果你需要将数据库从一个系统移植到另一个系统,它们可能会使事情变得困难。例如,如果你的组织突然决定使用oracle而不是sql server,你可能需要遍历所有sql server代码并为oracle重写它。这还要求你熟悉这两个系统的语法。
相关推荐:《mysql教程》
以上就是什么是t-sql?的详细内容。