资源描述
Click To Edit Master Title Style,Click to edit Master text styles,Second level,Third level,4th level,5th level,SQL Server,数据库管理与开发,湖北国土资源职业学院信息工程系,Click To Edit Master Title Style,Click to edit Master text styles,Second level,Third level,4th level,5th level,SQL Server,数据库管理与开发,湖北国土资源职业学院信息工程系,第,4,章,T-SQL,语言基础,教学提示,:,SQL,语言是结构化查询语言,(Structure Query Language),的英文缩写,,Transact-SQL,是由国际标准化组织,(ISO),和美国国家标准学会,(ANSI),发布的,SQL,标准中定义的语言的扩展。用户使用,SQL,编写应用程序可以完成所有的数据库管理工作。,教学要求,:通过本章的学习,应掌握以下内容,T-SQL,语言的基础知识,主要包括数据类型、常量和变量、函数与表达式、批处理和流程控制语句。,第4章 T-SQL语言基础教学提示:SQL语言是结构化查询语,1,数据类型与常量,2,局部变量和全局变量,3,常用,函数,1.1,数据类型,1.2,常量,2.1 SELECT,语句无源查询,2.2,局部变量,2.3,全局变量,第,4,章,T-SQL,语言基础,(1),3.1 数学函数,3.2 字符串函数,3.3 日期时间函数,3.4 聚合函数,3.5 系统函数,3.6 系统统计函数,1 数据类型与常量1.1 数据类型2.1 SELECT语句,第,4,章,T-SQL,语言基础,1,类型与常量,2,变量,3,函数,4,本节小结,1.1 数据类型,1.2 常量,1 数据类型与常量,在,T-SQL,编程语言中常量、变量、表中的列、函数的自变量与函数值、过程参数及返回代码、表达式等都具有,数据类型,,数据类型可分为,精确数字,(,整数、位型、货币型、十进制,),与近似数字,、,日期时间,、,字符与二进制,(,字符、,Unicode,、二进制,),和,特殊数据类型。,第4章 T-SQL语言基础1类型与常量1.1 数据类型1 数,第,4,章,T-SQL,语言基础,1.1,数据类型,1,类型与常量,数据类型,常量,2,变量,3,函数,4,本节小结,类型,名称,取值范围,字节数,整数,bigint,、,int,、,smallint,、,tinyint,(922,亿亿,),(21,亿,),(32768),(0-255),8,4,2,1,位型,Bit,由,0,和,1,表示真、假。,1/8,货币型,money,、,smallmoney,(922,万亿,),(21,万,),,,精确到万分之一。,8,4,十进制,Decimal,、,Numeric,10,38,-,1,,最大位数,38,位,、或,浮点数,float,、,real,(1.79E+308)(3.40E+38),(),(),(),数据类型,是指数据所代表信息的类型。,Microsoft SQL Server,2000,中定义了,24,种数据类型,同时允许用户自定义数据类型。,第4章 T-SQL语言基础1.1 数据类型1类型与常量类型名,第,4,章,T-SQL,语言基础,1.1,数据类型,1,类型与常量,数据类型,常量,2,变量,3,函数,4,本节小结,类型,名称,取值范围,字节数,日期,时间,Datetime,、,smalldatetime,1753.1.1-9999.12.31,精确到,3.33,毫秒,1900.1.1-2079.12.31,,,精确到分钟,单字节字符,char/varchar/text,定,/,变长单字节字符,最长,8000,;,Unicode,字符,nchar/nvarchar/ntext,定,/,变长双字节字符,,最长,4000,;,二进制数据,Binary/varbinary/image,定,/,变长二进制数据,,最长,8000,;变长二进制数据,特殊,类型,timestamp,SQL,活动的先后顺序。,uniqueidentifier,全局唯一标识,第4章 T-SQL语言基础1.1 数据类型1类型与常量类型名,第,4,章,T-SQL,语言基础,1.1,数据类型,说明:,1,表中,n,表示字符串长度;,2,位型数据存储格式:如果一个表中有,8,个以内的,bit,列,这些列用一个字节存储。如果表中有,9,到,16,个,bit,列,这些列用两个字节存储。依此类推。,3,十进制数据存储精度:最高为,38,位;,4,日期时间类型:没有指定小时以上精度的数据,自动时间为,00:00:00,。,5,单字节字符串数据类型:一个字符,(,半个汉字,),一个字节,定长,char,:空间不足截断尾部,空间多余空格填充;,变长,varchar,:空间不足截断尾部,多余空间不填空格;,1,类型与常量,数据类型,常量,2,变量,3,函数,4,本节小结,第4章 T-SQL语言基础1.1 数据类型说明:1类型与常量,第,4,章,T-SQL,语言基础,1.1,数据类型,6,双字节字符串数据类型,,unicode,字符类型,(N,代表国际语言,National Language),一个字符,/,汉字占两个字节,定长字符串,(nchar),:,空间不足截断尾部,空间多余空格填充;,变长字符串,(nvarchar),:空间不足截断尾部,多余空间不填空格;,变长字符串,(ntext),:存储大小是所输入字符,/,汉字个数的两倍,(,以字节为单位,),。,7,二进制数据类型:存储,Word,文档、声音、图表、图像,(,包括,GIF,、,BMP,文件,),等数据。,在,SQL Server,中,除上述,24,种数据类型外,允许用户在系统数据类型的基础上建立自己定义的数据类型。但值得注意的是每个数据库中所有用户定义的数据类型名称必须唯一。建立自己定义的数据类型则需要使用系统存储过程,sp_addtype,来建立。,1,类型与常量,数据类型,常量,2,变量,3,函数,4,本节小结,第4章 T-SQL语言基础1.1 数据类型 6双,第,4,章,T-SQL,语言基础,1.2,常量,常量,也称为字面值或标量值,是表示一个特定数据值的符号。常量的值在程序运行过程中不会改变的。,1,类型与常量,数据类型,常量,2,变量,3,函数,4,本节小结,类型,说明,例如,整型常量,没有小数点和指数,E,60,,,25,,,-365,实型常量,decimal,或,numeric,带小数点的常数,,float,或,real,带指数,E,的常数,15.63,、,-200.25,+123E-3,、,-12E5,字符串常量,单引号引起来,学生,,,this is database,双字节,字符串,前缀,N,必须是大写,单引号引起来,N,学生,第4章 T-SQL语言基础1.2 常量 常量也称,第,4,章,T-SQL,语言基础,1.2,常量,1,类型与常量,数据类型,常量,2,变量,3,函数,4,本节小结,类型,说明,例如,日期型常量,单引号,(),引起来,6/5/03,,,May 12 2008,,,19491001,货币型常量,精确数值型数据,前缀,$,$380.2,二进制常量,前缀,0 x,。,0 xAE,、,0 x12Ef,、,0 x69048AEFDD010E,全局唯一,标识符,前缀,0 x,单引号,(),引起来,0 x6F9619FF8B86D011B42D00C04FC964FF,6F9619FF-8B86-D011-B42D-00C04FC964FF,第4章 T-SQL语言基础1.2 常量1类型与常量类型说明例,第,4,章,T-SQL,语言基础,2.1 SELECT语句无源查询,2.2,局部变量,2.3,全局变量,2 局部变量和全局变量,1,类型与常量,2,变量,3,函数,4,本节小结,变量,可分为,局部变量和全局变量,。,局部变量,是用来存储指定数据类型的单个数据值的对象,,全局变量,是由系统提供且预先声明的用来保存,SQL Server,系统运行状态数据值的变量。,无源,select,语句,是用来查询常量、变量、函数、表达式值的语句。,第4章 T-SQL语言基础2.1 SELECT语句无源查询2,第,4,章,T-SQL,语言基础,2.1 SELECE,语句无源查询,SQL,查询分析器,是一种,图形工具,。在查询分析器中,用户可以对单个,SQL,语句或由,SQL,语句编写的脚本进行编写调试。,1,类型与常量,2,变量,无源查询,局部变量,全局变量,3,函数,4,本节小结,第4章 T-SQL语言基础2.1 SELECE语句无源查询,第,4,章,T-SQL,语言基础,2.1 SELECE,语句无源查询,SQL查询分析器常用快捷键表,1,类型与常量,2,变量,无源查询,局部变量,全局变量,3,函数,4,本节小结,快捷键,功能,快捷键,功能,CTRL+A,全选,F3,重复查找,CTRL+C,复制,CTRL+H,替换,CTRL+V,粘贴,CTRL+SHIFT+L,使选定内容为小写,CTRL+X,剪切,CTRL+SHIFT+U,使选定内容为大写,CTRL+Z,撤消,CTRL+F5,分析查询并检查语法,TAB,增大缩进,F5,执行查询,SHIFT+TAB,减小缩进,ALT+BREAK,取消查询,CTRL+SHIFT+C,注释代码,F1,查询分析器帮助,CTRL+SHIFT+R,删除注释,SHIFT+F1,对所选,SQL,语句的帮助,CTRL+F,查找,F8,显示,/,隐藏对象浏览器,第4章 T-SQL语言基础2.1 SELECE语句无源查询S,第,4,章,T-SQL,语言基础,2.1 SELECE,语句无源查询,SELECT,语句无源查询就是最简单的语句。,SELECT,常量,|,变量,|,函数,|,表达式,as,别名,n,所谓无源查询就是使用,SELECT,语句来查询不在表中的数据。无源查询实质上就是在客户机屏幕上显示出常量、变量或表达式的值。,1,类型与常量,2,变量,无源查询,局部变量,全局变量,3,函数,4,本节小结,【,例,4.1】,使用,SELECT,语句查看常量。,第4章 T-SQL语言基础2.1 SELECE语句无源查询S,第,4,章,T-SQL,语言基础,2.2,局部变量,1,类型与常量,2,变量,无源查询,局部变量,全局变量,3,函数,4,本节小结,变量,是由用户定义并可赋值的实体。变量有全局变量和局部变量两种。,局部变量,用,DECLARE,语句声明,声明时它被初始化为,NULL,,并由,SET,语句或,SELECT,语句赋值,它只能用在声明该变量的过程实体中,即使用范围是定义它的批、存储过程和触发器等。其名字由一个,符号开始,。,定义,:,DECLARE,局部变量名 数据类型,n,赋值,:,SET,局部变量名,=,表达式,n,SELECT,局部变量名表达式,【,例,4.2】,使用,SELECT,语句查询局部变量。,第4章 T-SQL语言基础2.2 局部变量1类型与常量变量是,第,4,章,T-SQL,语言基础,2.3,全局变量,全局变量,全局变量由,SQL Server,系统提供并赋值的变量,名字由,符号开始。用户不能建立全局变量,也不可能使用,SET,语句去修改全局变量的值。通常应该将全局变量的值赋给在同一个批中的局部变量,以便保存和处理。全局变量分为两类:,与连接有关,的全局变量,如:,rowcount,影响的行数;,与系统内部信息有关,的全局变量。如,version SQL,的版本号。,1,类型与常量,2,变量,无源查询,局部变量,全局变量,3,函数,4,本节小结,第4章 T-SQL语言基础2.3 全局变量,第,4,章,T-SQL,语言基础,2.3,全局变量,SQL,常用的全局变量表,1,类型与常量,2,变量,无源查询,局部变量,全局变量,3,函数,4,本节小结,名称,说明,connections,返回当前到本服务器的连接的数目。,rowcount,返回上一条,T-SQL,语句影响的数据行数。,error,返回上一条,T-SQL,语句执行后的错误号。,procid,返回当前存储过程的,ID,号,remserver,返回登录记录中远程服务器的名字。,spid,返回当前服务器进程的,ID,标识。,version,返回当前,SQL Server,服务器的版本和处理器类型。,language,返回当前,SQL Server,服务器的语言。,【,例,4.3】,使用,SELECT,语句查询全局变量。,第4章 T-SQL语言基础2.3 全局变量 SQL常用的全局,第,4,章,T-SQL,语言基础,3.1 数学函数,3.2 字符串函数,3.3 日期时间函数,3.4 聚合函数,3.5 系统函数,3.6 系统统计函数,3,常用,函数,1,类型与常量,2,变量,3,函数,4,本节小结,在,T-SQL,编程语言中,函数,可,分系统定义函数和用户定义函数。,本节介绍的是系统定义函数中最常用的,数学函数、字符串函数、日期时间函数、聚合函数、系统函数、系统统计函数,的最常用的部分。,第4章 T-SQL语言基础3.1 数学函数3 常用函数1类型,第,4,章,T-SQL,语言基础,3.1,数学函数,数学函数,对作为函数参数提供的输入值执行计算,返回一个数字值。,SQL Server 2000,中定义了,23,种数学函数,表,4.4,是数值处理中最常用的数学函数。,1,类型与常量,2,变量,3,函数,数学函数,字符串函数,日期时间函数,聚合函数,系统函数,系统统计函数,4,本节小结,函数,名称,ROUND(,数字表达式,小数位数,),四舍五入,FLOOR(,数字表达式,),整数函数,CEILING(,数字表达式,),整数函数,RAND(),随机函数,【,例,4.4】,使用,SELECT,语句查询数学函数。,第4章 T-SQL语言基础3.1 数学函数数学函数对作为函数,第,4,章,T-SQL,语言基础,3.2,字符串函数,字符串函数,对字符串输入值执行操作,返回一个字符串或数字值。,1,类型与常量,2,变量,3,函数,数学函数,字符串函数,日期时间函数,聚合函数,系统函数,系统统计函数,4,本节小结,名称,函数,ASCII,码,ASCII,(,字符表达式,),字符,CHAR,(,数字表达式,),统一代码,UNICODE,(,字符表达式,),字符,NCHAR,(,数字表达式,),小写,LOWER,(,字符表达式,),大写,UPPER,(,字符表达式,),长度,LEN,(,字符表达式,),空格,SPACE,(,数字表达式,),【,例,4.5】,字符、编码函数,【,例,4.6】,长度、大小写函数,第4章 T-SQL语言基础3.2 字符串函数字符串函数对字符,第,4,章,T-SQL,语言基础,3.2,字符串函数,1,类型与常量,2,变量,3,函数,数学函数,字符串函数,日期时间函数,聚合函数,系统函数,系统统计函数,4,本节小结,【,例,4.7】,字符串函数,【,例,4.8】,字符串函数,名称,函数,截取,左,字串,LEFT,(,字符表达式,整数,),截取,右,字串,RIGHT,(,字符表达式,整数,),截取,中间,字串,SUBSTRING,(,字符表达式,起始点,n),求子串位置,CHARINDEX(,字符表达式,1,字符表达式,2,开始位置,),剪去,左,空格,LTRIM,(,字符表达式,),剪去,右,空格,RTRIM,(,字符表达式,),重复字串,REPLICATE,(,字符表达式,n),倒置字串,REVERSE,(,字符表达式,),数值转字串,STR,(,数字表达式,),第4章 T-SQL语言基础3.2 字符串函数1类型与常量【例,第,4,章,T-SQL,语言基础,3.3,日期时间函数,1,类型与常量,2,变量,3,函数,数学函数,字符串函数,日期时间函数,聚合函数,系统函数,系统统计函数,4,本节小结,对日期和时间输入值执行操作,返回一个字符串、数字或日期和时间值。,【,例,4.9】,日期函数,【,例,4.10】,日期函数,名称,函数,现在日期时间,GETDATE,(),年,YEAR,(,日期型表达式,),月,MONTH,(,日期型表达式,),日,DAY,(,日期型表达式,),日期 部分,DATEPART,(,格式串,日期型表达式,),日期 加,DATEADD,(,格式串,数值,日期,),日期 差,DATEDIFF,(,格式串,日期,1,日期,2),第4章 T-SQL语言基础3.3 日期时间函数1类型与常量对,第,4,章,T-SQL,语言基础,3.4,聚合函数,聚合函数,对一组值执行计算并返回单一的值。除,COUNT,函数之外,聚合函数忽略空值,聚合函数主要用于,select,语句,group by,子句、,compute by,子句,具体例子请参阅第,6,章,查询与视图。,1,类型与常量,2,变量,3,函数,数学函数,字符串函数,日期时间函数,聚合函数,系统函数,系统统计函数,4,本节小结,名称,最大,最小,求和,平均,计数,函数,MAX,MIN,SUM,AVG,COUNT,第4章 T-SQL语言基础3.4 聚合函数 聚合,第,4,章,T-SQL,语言基础,3.5,系统函数,系统函数,返回有关,SQL Server,中的状态值、对象和设置的信息。,1,类型与常量,2,变量,3,函数,数学函数,字符串函数,日期时间函数,聚合函数,系统函数,系统统计函数,4,本节小结,【,例,4.11】,函数,说明,APP_NAME,当前会话的应用程序名称,CURRENT_USER,当前的数据库用户。,USER_NAME,用户数据库用户名。,SESSION_USER,会话用户名,SYSTEM_USER,系统用户名,HOST_ID,工作站标识号。,HOST_NAME,工作站名称。,ISDATE,是否为有效的日期。,ISNULL,是否为,NULL,。,ISNUMERIC,是否为一个有效的数字类型。,ERROR,最后执行的,T-SQL,语句的错误代码。,TRANCOUNT,当前连接的活动事务数。,第4章 T-SQL语言基础3.5 系统函数系统函数返回有关,第,4,章,T-SQL,语言基础,3.6,系统统计函数,系统统计函数,返回系统的统计信息。,1,类型与常量,2,变量,3,函数,数学函数,字符串函数,日期时间函数,聚合函数,系统函数,系统统计函数,4,本节小结,【,例,4.12】,函数,说明,CONNECTIONS,连接次数。,CPU_BUSY,CPU,的工作时间,IDLE,闲置的时间,IO_BUSY,输入和输出的时间,TIMETICKS,返回一刻度的微秒,PACK_SENT,发送的数据包数,PACK_RECEIVED,接受的数据包数,PACKET_ERRORS,发生的数据包错误,TOTAL_WRITE,写入磁盘的次数,TOTAL_READ,读取磁盘的次数,TOTAL_ERRORS,磁盘读,/,写错误次数,第4章 T-SQL语言基础3.6 系统统计函数系统统计函数返,第,4,章,T-SQL,语言基础,4,本节小结,本章讲述了,Transact-SQL,的,数据类型,,它们是精确数字,(,整数、位型、货币型、十进制,),、近似数值、日期时间、字符与二进制,(,字符、,Unicode,、二进制,),和特殊数据类型等,另外还讲述了,Transact-SQL,的常量与,变量、函数、运算符与表达式和流控制语句,等。本章是读者学习,SQL,语言的基础,只有理解和掌握它们的用法,才能正确编写,SQL,程序和深入理解,SQL,语言。,表,4.8-,表,4.10,列出要求掌握的,T-SQL,语言基本要素,。,1,类型与常量,2,变量,3,函数,4,本节小结,第4章 T-SQL语言基础4 本节小结 本章讲述了Tr,
展开阅读全文