关系数据库管理系统SQLServer.ppt
《关系数据库管理系统SQLServer.ppt》由会员分享,可在线阅读,更多相关《关系数据库管理系统SQLServer.ppt(54页珍藏版)》请在装配图网上搜索。
第七章SQLServer2000语法基础,7.1SQLServer简介7.2SQLServer的数据类型7.3T-SQL语言,第7章SQLServer2000语法基础本章简单介绍了关系数据库管理系统SQLServer的数据类型,主要介绍了T-SQL语言的语法基础,包括标识符、语法规则、运算符、变量、函数、流程控制语句等,让读者对关系数据库管理系统SQLServer2000的查询语言-T-SQL语言有一个基本的了解,从而进一步利用数据库进行开发打好基础。,7.1SQLServer简介SQLServer是使用客户机/服务器(C/S)体系结构的关系型数据库管理系统(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)和开发人员版(DeveloperEdition)。企业版:一般作为数据库服务器使用。标准版:一般用于小型的工作组或部门。个人版:主要适用于移动用户。开发人员版:适用于应用程序开发。,7.2SQLServer的数据类型数据类型是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。SQLServer2000提供了以下常见的数据类型:1二进制数据类型二进制数据包括Binary、Varbinary和Image。Binary数据类型既可以是固定长度的(Binary),也可以是变长度的,Binary(n)是n位固定的二进制数据。其中,n的取值范围是从1到8000。其存储容量的大小是n+4个字节。Varbinary(n)是n位变长度的二进制数据。其中,n的取值范围是从1到8000。其存储容量的大小是n+4个字节,不是n个字节。在Image数据类型中存储的数据是以位字符串存储的,不是由SQLServer解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF和JPEG格式把数据存储在Image数据类型中。,2字符数据类型字符数据是由任何字母、符号和数字任意组合而成的数据,字符数据的类型包括Char、Varchar和Text。Varchar是变长字符数据,其长度不超过8KB。Char是定长字符数据,其长度最多为8KB。超过8KB的ASCII数据可以使用Text数据类型存储。例如,因为Html文档全部都是ASCII字符,并且在一般情况下长度超过8KB,所以这些文档可以Text数据类型存储在SQLServer中。3Unicode数据类型Unicode数据类型包括Nchar,Nvarchar和Ntext。在MicrosoftSQLServer中,传统的非Unicode数据类型允许使用由特定字符集定义的字符。在SQLServer安装过程中,允许选择一种字符集。使用Unicode数据类型,列中可以存储任何由Unicode标准定义的字符。在Unicode标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所占用的空间是使用非Unicode数据类型所占用的空间大小的两倍。,在SQLServer中,Unicode数据以Nchar、Nvarchar和Ntext数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar字符类型,这时最多可以存储4000个字符。当列的长度固定不变时,应该使用Nchar字符类型,同样,这时最多可以存储4000个字符。当使用Ntext数据类型时,该列可以存储多于4000个字符。4日期和时间数据类型日期和时间数据类型包括Datetime和Smalldatetime两种类型,日期和时间数据类型由有效的日期和时间组成。例如,有效的日期和时间数据包括“4/01/9812:15:00:00:00PM”和“1:28:29:15:01AM8/17/98”。前一个数据类型是日期在前,时间在后一个数据类型是霎时间在前,日期在后。在MicrosoftSQLServer中,日期和时间数据类型包括Datetime和Smalldatetime两种类型时,所存储的日期范围是从1753年1月1日开始,到9999年12月31日结束(每一个值要求8个存储字节)。使用Smalldatetime数据类型时,所存储的日期范围是1900年1月1日开始,到2079年12月31日结束(每一个值要求4个存储字节)。,日期的格式可以设定。设置日期格式的命令如下:SetDateFormatformat|format_var|其中,format|format_var是日期的顺序。有效的参数包括MDY、DMY、YMD、YDM、MYD和DYM。在默认情况下,日期格式为MDY。例如,当执行SetDateFormatYMD之后,日期的格式为年月日形式;当执行SetDateFormatDMY之后,日期的格式为日月年形式5数字数据类型数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数)和整数,整数由正整数和负整数组成,例如39、25、0-2和33967。在MicrsoftSQLServer中,整数存储的数据类型是Int,Smallint和Tinyint。Int数据类型存储数据的范围大于Smallint数据类型存储数据的范围,而Smallint据类型存储数据的范围大于Tinyint数据类型存储数据的范围。使用Int数据的存储数据的范围是从-2147483648到2147483647(每一个值要求4个字节存储空间)。使用Smallint数据类型时,存储数据的范围从-32768到32767(每一个值要求2个字节存储空间)。使用Tinyint数据类型时,存储数据的范围是从0到255(每一个值要求1个字节存储空间)。,精确小数的数据在SQLServer中的数据类型是Decimal和Numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。在SQLServer中,近似小数数据的数据类型是Float和Real。例如,三分之一这个分数记作.3333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。6货币数据表示正的或者负的货币数量。在MicrosoftSQLServer中,货币数据的数据类型是Money和Smallmoney,Money数据类型要求8个存储字节,Smallmoney数据类型要求4个存储字节。7特殊数据类型特殊数据类型包括前面没有提过的数据类型。特殊的数据类型有3种,即Timestamp、Bit和Uniqueidentifier。,7.3T-SQL语言在SQLServer中,使用的是T-SQL语言,T-SQL是ANSLSQL的加强版语言,它提供了标准的SQL命令,另外,还对ANSLSQL命令做了许多扩充,提供类似Basic、Pascal和C等第三代语言的基本功能,如变量说明、程序流程控制、语言功能函数等。但是,因为SQLServer与其他编程工具的定位点不同,所以这些命令的功能侧重于处理SQLServe中的数据,其他功能仍需要前端设计工具(如FoxPro、Delphi、PowerBuilder和VisralBasic等)来处理。因此,一般称SQLServe、Oracle和Informix等数据库系统为“数据库存引擎”。由于T-SQL的基础是ANSISQL,关于ANSLSQL语言我们已在第4章介绍过。因此,本节只是介绍一下T-SQL语言的基本语法知识。,7.3.1标识符在数据库的兼容级别设置为80时,常规标识符遵守以下的命名规则:(1)标识符长度可以从1到128个字符,局部临时标识符的长度是不以超过116个字符的。(2)标识符的首字符必须为字母、“-”、#符号,其中字母可以是拉丁字符的大小写az和AZ,以及其他语言的字母符号。标识符中的和#具有特殊意义。当标识符为开头时,它表示局部变量或参数,以两个为开始符时,它表示一个全局变量。当标识符以#开始时,它表示一个临时数据库对象。()标识符第一个字符后面的字符可以为UnicodeStandard所定义的字符、数字、#或符号。()标识符内不能嵌入空格和特殊符号。()标识符不能与关键字同名,无论是大写还是小写版本。,7.3.2语法规则、运算符、变量1注释在SQLServer中,有两种类型的注释字符:(1)单行注释:使用两个连在一起的减号“-”作为注释符;(2)多行注释:使用“/*/”作为注释符。2.运算符(1)算术运算符算术运算符包括加(+)、减()、乘(*)、除(/)和取余(%)(2)赋值运算符Transact-SQL中只有一个赋值运算符,即等号(=)(3)位运算符位运算符包括按位与(&)、按位或(|)、按位异或()和求反()。位运算符用来对整型数据或者二进制数据(image数据类型除外)之间执行位操作。要求在位运算符左右两侧的操作数不能同时是二进制数据。,(4)比较运算符比较运算符包括:等于(=)、大于()、大于或等于(=)、小于(或!=)、不小于(!),其中!=、!、!+,(7)运算符的优先级括号:();乘、除、求模运算符:*,/,%;加减运算符:,;比较运算符:=,=,!=,!,!=表达式的最小整数返回的数据类型与表达式相同可为NTEGER/MONEY/REAL/FLOAT类型FLOOR(numeric_expression)返回bprintab-打印字符串abelseifbcprintbcelseprintcb运行结果如下bc【注意】在Transact-SQL中最多可嵌套32级,2BEGINEND其语法如下:BEGINENDBEGINEND用来设定一个程序块,将在BEGINEND内的所有程序视为一个单元执行BEGINEND经常在条件语句,如IFELSE中使用。在BEGINEND中可嵌套另外的BEGINEND来定义另一程序块。,3CASECASE命令有两种语句格式:CASEWHENTHENWHENTHENELSEEND或CASEWHENTHENWHENTHENELSEENDCASE命令可以嵌套到SQL命令中。,【例7.25】在一个名为gzgl的数据库中,调整教职工的工资,职称为“教授1”的上调10%,职称为“副教授”的上调8%,职称为“讲师”的上调6%,其它上调4%。usegzglupdatezcgzbsetgzgs=casewhenzhicheng=教授thengzgs*1.1whenzhicheng=副教授thengzgs*1.08whenzhicheng=讲师thengzgs*1.06elsegzgs*1.04end【注意】执行CASE子句时,只运行第一个匹配的子句。,4WHILECONTINUEBREAK其语法如下:WHILEBEGINBREAKCONTINUE命令行或程序块ENDWHILE命令在设定的条件成立时会重复执行命令行或程序块。CONTINUE命令可以让程序跳过CONTINUE命令之后的语句,回到WHILE循环的第一行命令。BREAK命令则让程序完全跳出循环,结束WHILE命令的执行。WHILE语句也可以嵌套。,利用WHILECONTINUEBREAK语句对1到100进行求和declareCountint,SumintselectSum=0,Count=1whileCount=100beginselectSum=Sum+CountselectCount=Count+1endprintSumgo运行结果如下5050,5WAITFOR其语法如下:WAITFORDELAY|TIME|ERROREXIT|PROCESSEXIT|MIRROREXITWAITFOR命令用来暂时停止程序执行,直到所设定的等待时间已过或所设定的时间已到才继续往下执行。其中时间必须为DATETIME类型的数据,如:11:15:27,但不能包括日期各关键字含义如下:DELAY用来设定等待的时间最多可达24小时;TIME用来设定等待结束的时间点;ERROREXIT直到处理非正常中断;PROCESSEXIT直到处理正常或非正常中断;MIRROREXIT直到镜像设备失败。,【例7.26】等待2小时3分零5秒后才执行SELECT语句waitfordelay02:03:05select*fromBookRecord【例7.27】等到下午5点55分才执行SELECT语句waitfortime17:55:00select*fromBookRecord6GOTO语法如下:GOTO标识符GOTO命令用来改变程序执行的流程,使程序跳到标有标识符的指定的程序行再继续往下执行。作为跳转目标的标识符可为数字与字符的组合,但必须以“:”结尾,如12:或a_1:。在GOTO命令行,标识符后不必跟“:”。,【例7.28】利GOTEO语句实现分行打印字符1、2、3、4declareiintselecti=1bh_1:printiselecti=i+1whileijreturn1elsereturn-1如果没有指定返回值,SQLServer系统会根据程序执行的结果返回一个内定值。如果运行过程产生了多个错误,SQLServer系统将返回绝对值最大的数值;如果此时用户此时定义了返回值,则以返回用户定义的值。RETURN语句不能b返回NULL值。,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 管理 系统 SQLServer
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文