关系数据库管理系统SQLServer.ppt
《关系数据库管理系统SQLServer.ppt》由会员分享,可在线阅读,更多相关《关系数据库管理系统SQLServer.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章第七章 SQL Server 2000 SQL Server 2000 语法基础语法基础 7.1SQL Server简介7.2SQLServer的数据类型7.3 T-SQL语言第7章SQLServer2000语法基础本章简单介绍了关系数据库管理系统SQLServer的数据类型,主要介绍了T-SQL语言的语法基础,包括标识符、语法规则、运算符、变量、函数、流程控制语句等,让读者对关系数据库管理系统SQLServer2000的查询语言-T-SQL语言有一个基本的了解,从而进一步利用数据库进行开发打好基础。7.1SQLServer简介SQLServer是使用客户机/服务器(C/S)体系结构的关
2、系型数据库管理系统(RDBMS)。1988年推出了第一个OS/2版本,1992年,SQLServer移植到NT上后,Microsoft成了这个项目的主导者,1994年以后,Microsoft专注于开发、推广SQLServer的WindowsNT版本1996年,Microsoft公司推出了SQLServer6.5版本,1998年,推出了SQLServer7.0版本,2000年推出了SQLServer2000。SQLServer2000常见的版本有:企业版(EnterpriseEdition)、标准版(StandardEdition)、个人版(PersonalEdition)和开发人员版(Deve
3、loperEdition)。企业版:一般作为数据库服务器使用。标准版:一般用于小型的工作组或部门。个人版:主要适用于移动用户。开发人员版:适用于应用程序开发。7.2SQLServer的数据类型 数据类型是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。SQL Server 2000 提供了以下常见的数据类型:1二进制数据类型 二进制数据包括 Binary、Varbinary 和 Image。Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的,Bina
4、ry(n)是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储容量的大小是 n+4 个字节。Varbinary(n)是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储容量的大小是 n+4个字节,不是n 个字节。在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。2字符数据类型 字符数据是由任何字母、符号和数字任意组合而成的数据,字符数据的类型包括 Char、Varchar
5、和 Text。Varchar 是变长字符数据,其长度不超过 8KB。Char 是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使用Text数据类型存储。例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在SQL Server 中。3Unicode 数据类型 Unicode 数据类型包括 Nchar,Nvarchar 和Ntext。在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。在 SQL Server安装过程中,允许选择一种
6、字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所占用的空间是使用非 Unicode 数据类型所占用的空间大小的两倍。在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar 字符类型,这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用 Nchar 字符类型,同样,这时最多可以存储4000 个字符。
7、当使用 Ntext 数据类型时,该列可以存储多于 4000 个字符。4日期和时间数据类型 日期和时间数据类型包括 Datetime 和 Smalldatetime两种类型,日期和时间数据类型由有效的日期和时间组成。例 如,有 效 的 日 期 和 时 间 数 据 包 括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。前一个数据类型是日期在前,时间在后一个数据类型是霎时间在前,日期在后。在 Microsoft SQL Server中,日期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时,所存储的日期范围是从
8、1753 年 1 月 1 日开始,到9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。使用 Smalldatetime 数据类型时,所存储的日期范围是 1900年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字节)。日期的格式可以设定。设置日期格式的命令如下:Set DateFormat format|format _var|其中,format|format_var 是日期的顺序。有效的参数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默认情况下,日期格式为MDY。例如,当执行 Set DateFormat YMD 之后
9、,日期的格式为年 月 日 形式;当执行 Set DateFormat DMY 之后,日期的格式为日 月 年 形式 5数字数据类型 数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数)和整数,整数由正整数和负整数组成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整数存储的数据类型是Int,Smallint和 Tinyint。Int 数据类型存储数据的范围大于 Smallint 数据类型存储数据的范围,而 Smallint 据类型存储数据的范围大于Tinyint 数据类型存储数据的范围。使用 Int 数据的存储数据的范围是从-2 147 48
10、3 648 到 2 147 483 647(每一个值要求4个字节存储空间)。使用 Smallint 数据类型时,存储数据的范围从-32 768 到 32 767(每一个值要求2个字节存储空间)。使用Tinyint 数据类型时,存储数据的范围是从0 到255(每一个值要求1个字节存储空间)。精确小数的数据在 SQL Server 中的数据类型是 Decimal 和 Numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。在SQL Server 中,近似小数数据的数据类型是 Float 和 Real。例如,三分之一这个分数记作.3333333,当使用近似数据类型时能准确表示。因此,从
11、系统中检索到的数据可能与存储在该列中数据不完全一样。6货币数据表示正的或者负的货币数量。在 Microsoft SQL Server 中,货币数据的数据类型是Money 和 Smallmoney,Money数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个存储字节。7特殊数据类型 特殊数据类型包括前面没有提过的数据类型。特殊的数据 类 型 有 3种,即 Timestamp、Bit 和 Uniqueidentifier。7.3T-SQL语言 在SQLServer中,使用的是T-SQL语言,T-SQL是ANSLSQL的加强版语言,它提供了标准的SQL命令,另外,还对ANSLS
12、QL命令做了许多扩充,提供类似Basic、Pascal和C等第三代语言的基本功能,如变量说明、程序流程控制、语言功能函数等。但是,因为SQLServer与其他编程工具的定位点不同,所以这些命令的功能侧重于处理SQLServe中的数据,其他功能仍需要前端设计工具(如FoxPro、Delphi、PowerBuilder和VisralBasic等)来处理。因此,一般称SQLServe、Oracle和Informix等数据库系统为“数据库存引擎”。由于T-SQL的基础是ANSISQL,关于ANSLSQL语言我们已在第4章介绍过。因此,本节只是介绍一下T-SQL语言的基本语法知识。7.3.1 标识符 在
13、数据库的兼容级别设置为80时,常规标识符遵守以下的命名规则:(1)标识符长度可以从1到128个字符,局部临时标识符的长度是不以超过116个字符的。(2)标识符的首字符必须为字母、“-”、#符号,其中字母可以是拉丁字符的大小写az和AZ,以及其他语言的字母符号。标识符中的和#具有特殊意义。当标识符为开头时,它表示局部变量或参数,以两个为开始符时,它表示一个全局变量。当标识符以#开始时,它表示一个临时数据库对象。()标识符第一个字符后面的字符可以为UnicodeStandard所定义的字符、数字、#或符号。()标识符内不能嵌入空格和特殊符号。()标识符不能与关键字同名,无论是大写还是小写版本。7.
14、3.2 语法规则、运算符、变量 1注释 在SQL Server中,有两种类型的注释字符:(1)单行注释:使用两个连在一起的减号“-”作为注释符;(2)多行注释:使用“/*/”作为注释符。2.运算符 (1)算术运算符 算术运算符包括加(+)、减()、乘(*)、除(/)和取余(%)(2)赋值运算符 Transact-SQL中只有一个赋值运算符,即等号(=)(3)位运算符 位运算符包括按位与(&)、按位或(|)、按位异或()和求反()。位运算符用来对整型数据或者二进制数据(image数据类型除外)之间执行位操作。要求在位运算符左右两侧的操作数不能同时是二进制数据。(4)比较运算符 比较运算符包括:等
15、于(=)、大于()、大于或等于(=)、小于()、小于或等于(=)、不等于(或!=)、不小于(!),其中!=、!、!不是ANSI标准的运算符。(5)逻辑运算符 逻 辑 运 算 符 包 括 与(AND)、或(OR)和 非(NOT)等运算符。逻辑运算返回布尔值,值为TRUE或FALSE。(6)字符串连接运算符(+)连接运算符“+”用于连接两个或两个以上的字符或二进制串、列名或者串和列的混合体,将一个串加入到另一个串的末尾。其语法如下:+(7)运算符的优先级 括号:();乘、除、求模运算符:*,/,%;加减运算符:,;比较运算符:=,=,=,!=,!,!;位运算符:,&,|;逻辑运算符:NOT;逻辑运
16、算符:AND;逻辑运算符:OR。3变量 (1)全局变量 全局变量是SQL Server系统内部使用的变量,其作用范围并不局限于某一程序,而是任何程序均可随时调用全局变量通常存储一些SQL Server的配置设定值和效能统计数据。用户可在程序中用全局变量来测试系统的设定值或transact-SQL命令执行后的状态值。在使用全局变量时应该注意以下几点:全局变量不是由用户的程序定义的,它们是在服务器级定应义的。用户只能使用预先定义的全局变量。引用全局变量时,必须以标记符“”开头。全局变量对用户来说是只读的。局部变量的名称不能与全局变量的名称相同。(2)局部变量 局部变量是用户可自定义的变量,它的作用
17、范围仅在程序内部。在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用。局部变量必须以“”开头,而且必须先用DECLARE命令说明后才可使用。其说明形式如下:DECLARE 变量名 变量类型 变量名 变量类型 其中变量类型可以是SQL Server 2000支持的所有数据类型,也可以是用户自定义的数据类型。在Transact-SQL中不能像在一般的程序语言中一样使用“变量=变量值”来给变量赋值。必须使用SELECT或SET命令来设定变量的值,其语法如下:SELECT局部变量=变量值 SET 局部变量=变量值 【例7.1】声明一个长度为10 个字符的变量“id”并赋值decl
18、areidchar(10)selectid=10010001 【注意】可以在Select命令查询数据时,在Select命令中直接将列值赋给变量。【例7.2】查询编号为“10010001”的员工和工资,将其分别赋予变量name和wage。use pangu declarename char(30)wage money selectname=e_name,wage=e_wage from employee where emp_id=10010001 selectname as e_name,wage as e_wage 运行结果如下:e_name e_wage-张三 8000.00007.3.3
19、函数1系统函数 系统函数用于获取有关计算机系统、用户、数据库和数据库对象的信息。系统函数可以让用户在得到信息后,使用条件语句,根据返回的信息进行不同的操作。与其它函数一样,可以在SELECT 语句的SELECT和WHERE子句以及表达式中使用系统函数。2字符串函数 字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、BINARY、和VARBINARY 数据类型以及可以隐式转换为CHAR 或VARCHAR的数据类型。可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用字符串函数。常用的字符串函数有:(1)字符转换函数 有以下几种字符
20、转换函数:ASCII()ASCII()函数返回字符表达式最左端字符的ASCII 码值。ASCII()函数语法如下:ASCII()【例7.3】select ascii(123)as 123,ascii(123)as 123,ascii(abc)as abc 运行结果如下:123 “123”“abc”-49 49 97 【注意】在ASCII()函数中,纯数字的字符串可不用括起来,但含其它字符的字符串必须用括起来使用,否则会出错。CHAR()CHAR()函数用于将ASCII 码转换为字符。其语法如下:CHAR()如果没有输入0 255 之间的ASCII 码值,CHAR()函数会返回一个NULL 值。
21、LOWER()LOWER()函数把字符串全部转换为小写,其语法如下:LOWER()【例7.4】select lower(Abc),lower(ABC)运行结果为:abc abc UPPER()UPPER()函数把字符串全部转换为大写,其语法如下:UPPER(character_expression)【例7.5】select upper(Abc),lower(abc)运行结果为:ABC abc STR()STR()函数把数值型数据转换为字符型数据,其语法如下:STR(,length,)自变量length 和decimal 必须是非负值,length 指定 返回的字符串的长度,decimal 指定
22、返回的小数位数。如果没有指定长度,缺省的length 值为10,decimal 缺省值为0。小数位数大于decimal 值时,STR()函数将其下一位四舍五入。指定长度应大于或等于数字的符号位数+小数点前的位数+小数点位数+小数点后的位数。如果 小数点前的位数超过了指定的长度,则返回指定长度的“*”【例7.6】select str(123),str(123456,5),str(-123.456,8,3),str(123.456,5),str(123.456,8,2)运行结果如下:-123 *-123.456 123 123.46 (2)去空格函数 去空格函数有如下两种:LTRIM()LTRIM
23、()函数把字符串头部的空格去掉,其语法如下:LTRIM()【例7.7】select ltrim(123)运行结果如下:-123 RTRIM()RTRIM()函数把字符串尾部的空格去掉,其语法如下:RTRIM()【例7.8】Select rtrim(123 )运行结果如下:-123 提示:在许多情况下,往往需要得到头部和尾部都没有空格字符的字符串,这时可将上两个函数嵌套使用。【例7.9】select rtrim(ltrim(abcd )运行结果如下:-abcd(3)取子串函数 取子串函数如下所示:LEFT()LEFT()函数返回部分字符串,其语法如下:LEFT(,)LEFT()函数返回的子串是从
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 管理 系统 SQLServer
限制150内