17xie > SQL Server 2000系统管理与开发指南 > 第三章 Transact-SQL语言基础
背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-8547.html    注册17xie 一起来写书 实现您的出书梦想!

第三章  Transact-SQL语言基础

SQL是结构化查询语言(Structure Query Language)的英文缩写,是关系模型的数据库应用语言,由IBM20世纪70年代开发。20世纪80年代初,美国国家标准局(ANSI)制订了SQL标准,被称为SQL-86SQL标准经过多次修改,目前最新的SQL标准是1992年制订的SQL-92Transact-SQL不仅包含了SQL-86SQL-92的大多数功能,而且还发展了许多新的特性,增强了可编程性和灵活性。

本章将介绍Transact-SQL语言的基础知识,包括以下内容:

n         SQL运算符

n         数据类型

n         SQL常用函数

n         SQLSELECT语句

n         SQL的批处理和流程控制语言

3.1  运算符

运算符是用来进行列间或者变量之间的比较和数学运算的。在Microsoft SQL Server 2000中,运算符有算术运算符、字符串运算符、比较运算符和逻辑运算符等。

3.1.1  算术运算符

算术运算符可以用在各种列和变量上,列和变量的数据类型是INTSMALLINTTINYINTFLOATREALMONE或者SMALLMONEY。算术运算符包括加(+)、减(-)、乘(*)、除(/)和取模(%)。运算符如表3-1所示。

3-1  算术运算符

 

 

可以操作的数据类型

+

INTSMALLINTTINYINTFLOATREALMONEY或者SMALLMONEY

-

INTSMALLINTTINYINTFLOATREALMONEY或者SMALLMONEY

*

INTSMALLINTTINYINTFLOATREALMONEY或者SMALLMONEY

/

INTSMALLINTTINYINTFLOATREALMONEY或者SMALLMONEY

%

取模

INTSMALLINTTINYINT

@        需要注意两个方面:一是算术运算符只能和数字变量或者数字列进行运算;取模运算中只能使用INTSMALLINTTINYIINT数据类型。

 

3-1显示了重量提高了30%后的数据。

3-1  使用算术运算符进行查询

3.1.2  字符串运算符

字符串运算符用来实现对字符串的操作,字符串由字母、符号和数字组成。字符串连接运算符可以运算的数据类型有CharVarcharText,以及可以转化成CharVarchar的数据类型。

例如,使用下面的字符串运算符实现两个字符串的连接:

Good luck’+‘to you’!

3.1.3  比较运算符

比较运算符用来比较两个表达式。在Microsoft SQL Server 2000中,比较运算符如表3-2所示。

3-2  比较运算符

运算符

 

=

等于

>

大于

<

小于

>=

大于或等于

<=

小于或等于

<>,!=

不等于

 

 

                                                                                       

运算符

 

!>

不大于

!<

不小于

()

优先级控制符

SQL Server Query Analyzer中执行以下语句:

SELECT * From titles

WHERE price>$15.0

将列出书价高于$15.0的书目,如图3-2所示。

3-2  使用大于号的查询结果

3.1.4  逻辑运算符

使用逻辑运算符可以把多个条件合并起来。逻辑运算符包括ANDORNOT等运算。在Transact-SQL语句中对整数数据进行比较时,首先将它们转化成二进制数,然后再进行比较。

AND运算符只有当所有条件都为真时才返回真,只要有一个条件为假,便返回假;OR运算符只要有一个条件为真,便返回真;NOT运算符取反。三个运算符的优先级为:NOTANDOR

3-3列出了逻辑运算符可以运算的数据类型。

使用逻辑运算符进行比较的语法形式如下:

SELECT select_list

FROM table_list

WHERE [NOT] expression {AND | OR} [NOT] expression

3-3  逻辑运算符可运算的数据类型

左操作数

右操作数

binaryvarbinary

intsmallinttinyint

intsmallinttinyint

intsmallinttinyintbinary

bit

intsmallinttinyintbinary

3.1.5  运算符优先级

在同一个表达式中,可能会包含多种运算符,这就涉及到运算符的优先级问题。运算符的优先级决定了表达式的计算和比较顺序。在SQL Server 2000中, 运算符的优先级从高到低如下所示:

n         括号:()

n         取反运算符:~

n         乘、除、求模运算符:*/%

n         加减运算符:+、-

n         异或运算符:^

n         与运算符:&

n         或运算符 |

n         NOT连接

n         AND连接

n         OR连接

如果优先级相同,则按照从左到右的顺序进行运算。

3.2  数据类型

数据类型表示数据所表示信息的类型。任何一种语言都定义了自己的数据类型,Microsoft SQL Server 2000提供了25种数据类型:Binary[(n)]Varbinary[(n)]Char[(n)]Varchar[(n)]Nchar[(n)]Nvarchar[(n)]DatetimeSmalldatetimeDecimal[(p[s])]Numeric[p(s)]Float[(n)]RealIntSmallintTinyintMoneySmallmoneyBitCursorSysnameTimestampUniqueidentifierTextImageNtext

3.2.1  二进制数据类型

二进制数据类型包括BinaryVmage

Binary数据可以是固定长度的,也可以是可变长度的。

Binary[(n)]n位固定长度的二制数据。n的取值范围是18000。存储空间的大小为n4个字节。

Varbinary[(n)]n为可变长度的二进制数据。n的取值范围是18000。存储空间的大小为n+4个字节。

3.2.2  字符数据类型

字符数据是由字母、数字和符号组合而成的数据。例如,“publisher”、“9454-@co都是合法的字符数据。

字符数据类型包括CharVarcharText

Char是固定长度字符串,最大为8KBVarchar是可变长度字符数据,长度不超过8KBText可以存储超过8KB的字符数据。

3.2.3  日期和时间数据类型

日期和时间数据类型包括DatetimeSmalldatetime。前者存储的日期从175311日到19991231日,每一个值要求8个字节;后者存储从190011日到20791231日,每一个值要求4个字节。

设置日期格式的命令如下:

SET DATEFORMAT{format|@format_var}

其中,format|@format_var是日期的格式。有效参数包括MDYDMYYMDYDMMYDDYM。默认格式为MDY

3.2.4  Unicode数据类型

Unicode数据类型包括NcharNvarcharNtext

Microsoft SQL Server 2000中,Unicode数据以NcharNvarchar Ntext数据类型存放。当列的长度变化时,使用Nvarchar数据类型,最多可以存储4000个字符。当列的长度固定不变时,使用Nchar数据类型,最多也可存储4000个字符。如果需要存储的字符数多于4000,应使用Ntext数据类型存储。

3.2.5  数字数据类型

数字数据类型包括正数、负数、小数和浮点数。

Microsoft SQL Server 2000中,整数的存储类型是IntSmallIntTinyIntInt的存储范围大于SmallInt的存储范围,SmallInt的存储范围大于TInyInt的存储范围。Int数据类型可以存储的范围是从-2 147 483 6482 147 483 647,每个值要求2个字节的存储空间。TinyInt的存储范围从0255,每个值要求1个字节存储空间。

精确小数对应的数据类型是DecimalNumeric

近似小数对应的数据类型是FloatReal

3.2.6  货币数据类型

货币数据类型表示货币数量,在Microsoft SQL Server 2000中,货币数据的数据类型是MoneySmallmoneyMoney数据类型要求8个存储字节,Smallmoney数据类型要求4个存储字节。

3.2.7  特殊数据类型

Microsoft SQL Server 2000中,特殊数据类型有三种:TimestampBitUniqueidentifier

 

Timestamp以二进制格式表示SQL Server活动的先后顺序。

Bit1或者0组成。使用Bit数据类型可以表示真、假、ON或者OFF

Uniqueidentifier以十六进制数字表示一个全局唯一的标识号。

3.2.8  用户自定义数据类型

Microsoft SQL Server 2000中, 用户可以根据需要自定义数据类型。创建用户自定义数据类型可以使用Transact-SQL语句。使用系统存储过程sp-addtype创建用户自定义数据类型的语法形式如下:

sp-addtype{type},[,system_data_type][,‘null_type’]

其中,type是用户定义的数据类型名称。system_data_typeSQL Server的数据类型。null_type表明对空值如何处理。

例如,下面的例子创建了一个不允许为空的数据类型:

USE master

EXEC sp_addtype mmm ‘Varchar(10)’,‘NOT NULL’

下面的例子创建了一个允许为空的数据类型:

USE master

EXEC sp_addtype nnn datertime,‘NULL’

如果要删除用户定义的数据类型,可以使用sp_droptypeP{type}命令。比如,如果要删除上面建立的nnn变量,可以使用如下程序:

USE master

EXEC sp_droptype‘nnn’

3.3   

在数据库的日常维护和管理中,函数的使用非常频繁。使用函数可以帮助用户获得系统的有关信息、进行数学计算、查询、统计等。在SQL Server 2000中,常用的函数有以下几种:

n         字符串函数

n         日期时间函数

n         数学函数

n         转换函数

n         系统函数

n         集合函数

3.3.1  字符串函数

使用字符串函数可以实现对字符串的操作、查找、转换等功能。

字符串函数可以分为以下四大类:

基本字符串函数:UPPERLOWERSPACEREPLICATESTUFFREVERSELTRIMRTRIM


字数:6697    最后更新:11个月以前 [11-29 22:21]徐振成 修改
本页编辑者:徐振成  
[前一页]:nSQLServer  [后一页]:n字符串查找函数:C
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号