SQL Server(六)

您所在的位置:网站首页 sql语言中运算符分为 SQL Server(六)

SQL Server(六)

2024-06-20 15:47| 来源: 网络整理| 查看: 265

--来源《21天学通SQL Server》1 Transact-SQL概述 Transact-SQL语言是SQL Server为用户提供的一种编程语言,是对标准SQL的实现和扩展,它具有标准SQL的主要特点,同时增加了变量、运算符、函数和流程控制等语言元素,使得其功能更加强大。1.1 Transact-SQL与标准SQL Transact-SQL又简称T-SQL,它是微软公司在SQL Server数据库管理系统中对标准SQL的实现和扩展,是使用SQL Server的核心,所有与SQL Server实例通信的应用程序,其实都是通过发送T-SQL语句到服务器来完成对数据库的操作的。 T-SQL与标准SQL稍有不同,SQL是结构化查询语言(Structured Query Language),是目前关系型数据库管理系统中使用得最广泛的查询语言。T-SQL是在SQL上发展而来的,T-SQL在SQL的基础上添加了变量、运算符、函数、注释和流程控制等,是标准SQL语言的扩展。因此,标准SQL是几乎所有关系型数据库都支持的语言,而T-SQL是Microsoft SQL Server支持的语言。1.2 Transact-SQL的语法约定2 加入注释2.1 单行注释 单行注释使用“--”标记,即在语句或者说明文字的最前面加上“--”标记。

--先插入一条记录 INSERT a(c1,c2) VALUES ('11111','22222') --查看插入记录之后表的内容 SELECT * FROM a

2.2多行注释 多行注释使用“/* ……*/”标记

/* 下面代码可以完成以下操作: 1、查看a表中所有的记录内容 2、向表a插入数据 3、查看插入后的结果 */ SELECT * FROM a INSERT a(c1,c2) VALUES ('33333','44444') SELECT * FROM a

3 Transact-SQL运算符 T-SQL所使用的运算符可以分为算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符、字符串连接运算符和一元运算符7种。3.1 算术运算符 算术运算符是对两个表达式执行数学运算,这两个表达式可以是精确数字型或近似数字型。其中“+”、“-”运算符也可以用datetime和smalldatetime值进行算术运算。3.2 赋值运算符 T-SQL里只有一个赋值运算符,等号(=),赋值运算符的作用是给变量赋值,也可以使用赋值运算符在列标题和定义列值的表达式之间建立关系。3.3 位运算符 位运算符是在两个表达式之间按位进行逻辑运算,这两个表达式可以是整数或二进制数据类型。3.4 比较运算符 比较运算符用于判断两个表达式是否相同,返回true或false的布尔数据类型。除了text、ntext和image数据类型的表达式外,比较运算符可以用于所有的表达式。3.5 逻辑运算符 逻辑运算符用于对某些条件进行判断,判断其为true或false,与比较运算符一样,返回的是布尔数据类型。3.6 字符串连接运算符 T-SQL里只有一个字符串连接运算符,加号(+),例如:'123'+'a'结果就是123a3.7 一元运算符 一元运算符只能对一个表达式进行操作。3.8 运算符的优先级4 Transact-SQL中的常量和变量 常量的格式取决于它所表示的值的数据类型,数据类型不同,常量也会有不同的表达方式。T-SQL中的变量可以分为局部变量和全局变量两种,局部变量是以@开头命名的变量,全局变量是以@@开头命名的变量。4.1 常量 在T-SQL中,有字符串常量(例如“11111”),整数常量(例如5),货币常量($10),日期常量,二进制常量等各种常量。并且,可以用多种方式来使用常量,例如下面几种用法。 (1)作为算术表达式中的常量,例如:

SELECT 产品名称,单价+$10 AS 价格 FROM 产品

(2)在WHERE子句中,作为比较字段的数据值,例如:

SELECT * FROM 产品 WHERE 单价 > $10

(3)为变量赋值,例如:

DECLARE @abc int SET @abc = 123

(4)在Update的set子句或Insert的values子句里指定字段的数据值,例如:

UPDATE a SET c2= '55555' WHERE c1= '11111'

(5)在print或raiserror语句里指定输出的消息文本,例如:

PRINT ‘完成操作’

(6)作为条件语句(如If语句、case函数)中要判断的值,例如:

IF @@ERROR > 0 PRINT N '出错了'

4.2 局部变量 局部变量是由用户自定义的变量,这些变量可以用来存储数值型、字符串型等数据,也可以存储函数或存储过程返回来的值。

(1)DECLARE语句可以用来声明局部变量:

DECLARE     { @local_variable [AS] data_type }     [ ,...n]

其中参数说明如下。 ● @local_variable:局部变量名称。 ● data_type:局部变量的数据类型,但不能是text、ntext或image数据类型。 (2)用SET语句和SELECT语句可以为变量赋值:

SET @local_variable = value SELECT @local_variable = value

(3)用SELECT语句和PRINT语句可以显示变量内容,其语法代码如下。

SELECT @local_variable PRINT @local_variable

【例1】定义局部变量,并给其赋值,最后显示变量内容。  

--定义局部变量name和age DECLARE @name nvarchar(10) DECLARE @age int --给变量name和age赋值 SET @name = '张三' SELECT @age = 20 --显示变量name和age的内容 PRINT @name PRINT @age

使用SELECT语句对变量赋值比使用SET语句的范围要广且灵活,可以将查询结果赋值给变量。【例2】使用SELECT语句给变量赋值。  

DECLARE @name nchar(20) SELECT @name = sname     FROM stu_info     WHERE sno = ‘0006’ PRINT '学生姓名:' + @name

4.3 全局变量 全局变量是由系统提供的,用于存储一些系统信息。用户只可以使用全局变量,不可以自定义全局变量。【例3】使用全局变量ROWCOUNT显示SELECT语句运行后得到的记录数。  

SELECT * FROM stu_info PRINT '一共查询了' + CAST( @@ROWCOUNT AS varchar(5)) + '条记录'

5 流控制语句 5.1 BEGIN…END语句 Transact_SQL使用BEGIN和END来标记一个程序语句块的开始和结束。它经常与IF…ELSE和WHILE循环一起使用。

BEGIN 语句1 语句2 语句3 …… END

5.2 IF…ELSE语句  

IF条件 BEGIN 语句块1 END [ELSE BEGIN 语句块2 END]

说明: ● 如果条件为真,则执行语句块1,不执行语句块2。 ● 如果条件为假,则执行语句块2,不执行语句块1。 ● 语句块1和语句块2永远不会同时执行。 ● ELSE部分为可选。 在IF或ELSE中还可以嵌套其他IF语句。【例4】下面的程序用于求两数之商,如果除数不为0,则求出正确结果,如果为0,则给出提示。  

DECLARE @x real,@y real,@z real SELECT @x=9,@y=5 IF @y0 BEGIN     SELECT @z=@x/@y     PRINT '结果为:'+CAST(@z AS char) END ELSE     PRINT '除数不能为零!'

如果给变量@y赋值为0,则运行结果:

说明:如果IF或ELSE中只有一条语句,则可以省略BEGIN和END标记。5.3 WHILE语句

WHILE循环条件 BEGIN 语句块(循环体) END

【例5】编程计算1+2+3+…+100的结果。

DECLARE @x int,@s int SELECT @x=1,@s=0 WHILE @x


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3