Transact-SQL语言基础.ppt
《Transact-SQL语言基础.ppt》由会员分享,可在线阅读,更多相关《Transact-SQL语言基础.ppt(87页珍藏版)》请在三一办公上搜索。
1、Transact-SQL语言基础电气信息工程学院自动化教研室主讲教师:陈志武Email:CHENYYJ163.COM,第八讲,主要内容,数据类型,2,常量与变量,3,运算符与表达式,4,流程控制语句,5,T-SQL语言简介,1,主要内容,注释,6,函数,7,一、历史,1、T-SQL语言简介,1、T-SQL语言起源于SQL(Structured Query Language)语言,SQL语言的历史:70年代:由IBM公司开发出来的;1976年开始在商品化关系数据库系统中应用;1986:ANSI确认SQL为关系数据库语言的美国标准,1987年被ISO采纳为国际标准,称为SQL-86;1989:AN
2、SI发布了SQL-89标准,后来被ISO采纳为国际标准;1992:ANSI/ISO发布了SQL-92标准,习惯称为SQL 2;1999年:ANSI/ISO发布了SQL-99标准,习惯称为SQL 3;2003:ANSI/ISO共同推出了SQL 2003标准。,一、历史,1、T-SQL语言简介,1、T-SQL语言起源于SQL(Structured Query Language)语言,Transact-SQL语言是Microsoft开发的一种SQL语言,简称T-SQL语言。它不仅包含了SQL-86和SQL-92的大多数功能,而且还对SQL进行了一系列的扩展,增加了许多新特性,增强了可编程性和灵活性。
3、Transact-SQL语言主要包括:数据定义语句(Data Definition Language,DDL)如对数据库对象的创建(CREATE)、修改(ALTER)、删除语句(DROP)等,一、历史,1、T-SQL语言简介,1、T-SQL语言起源于SQL(Structured Query Language)语言,数据操纵语句(Data Manipulation Language,DML)用来查询(SELECT)、添加(INSERT)、修改(UPDATE)、删除(DELETE)、数据库中数据的语句 数据控制语句(Data Control Language,DCL)用来设置或更改 数据库用户或角
4、色的语句。,一、历史,1、T-SQL语言简介,1、T-SQL语言起源于SQL(Structured Query Language)语言,一些附加的语言元素如变量、函数、流程控制语句等,这些不是SQL-92的标准内容,二、标识符,2、标识符的分类:(1)常规标识符(2)分隔标识符,1、标识符的定义:标识符用于标识服务器、数据库、数据库对象、变量等。,1、T-SQL语言简介,二、标识符,1、T-SQL语言简介,1.常规标识符 指符合标识符格式规则的标识符。标识符的格式规则如下:长度不超过128个字符。开头字母为a-z或A-Z、#、_ 或 以及来自其它语言的字母字符。后续字符可以是a-z、A-Z、来
5、自其它语言的字母字符、数字、#、$、_、。不允许嵌入空格或其它特殊字符。不允许与保留字同名。,二、标识符,1、T-SQL语言简介,2.分隔标识符 对于不符合格式规则的标识符,当用于Transact-SQL语句时,必须用双引号或方括号括起来。例如:SELECT*FROM My Table等价于 SELECT*FROM My Table,二、标识符,1、T-SQL语言简介,对于常规标识符,可以加上双引号或方括号,也可以不加。【例如:SELECT*FROM authors该语句等价于 SELECT*FROM authors也等价于 SELECT*FROM authors,三、语句符号约定,1、T-S
6、QL语言简介,三、语句符号约定,1、T-SQL语言简介,例如,SELECT子句的语法如下:SELECT ALL|DISTINCT TOP n PERCENT WITH TIES 其中,语法块进一步定义如下::=*|表名|视图名|表别名.*|列名|表达式|IDENTITYCOL|ROWGUIDCOL AS 列别名|列别名=表达式,.n,2、数据类型,使用SQL Server创建数据库中的表时,要对表中的每一列定义一种数据类型,数据类型决定了表中的某一列可以存放什么数据。除了定义表需要指定数据类型外,使用视图、存储过程、变量、函数等都需要用到数据类型。SQL Server提供了丰富的系统定义的数据
7、类型,用户还可以在此基础上自己定义数据类型。,2、数据类型,1.bigint类型 存储大小:8个字节,取值范围:-263263-12.int类型 存储大小:4个字节,取值范围:-231231-13.smallint类型 存储大小:2个字节,取值范围:-215215-14.tinyint类型 存储大小:1个字节,取值范围:0255,一、整形数据类型,2、数据类型,二、定点数据数据类型,定点数据类型用于表示定点实数,包括numeric和decimal类型。Numeric等价于decimal。格式:decimal(p,s)numeric(p,s)说明:p:表示精度,指定小数点左边和右边十进制数字的最
8、大位数,取值在1到38之间,缺省值为18;s:指定小数点右边十进数的最大位数,取值在0到p之间,缺省值为0。表示范围:-1038+11038-1,2、数据类型,二、定点数据,精度:decimal和numeric类型数据的存储字节数与精度p有关。具体如下表:,2、数据类型,三、浮点数据类型,表示范围:-1.79E+3081.79E+308,1.float类型格式:float(n)说明:n:尾数的位数,具体如下表:,2、数据类型,三、浮点数据,2.real类型 存储大小:4个字节 取值范围:-3.40E+383.40E+38 精度:7位 在SQL Server中,real的同义词为float(24
9、)。,2、数据类型,四、字符型数据,分为Unicode字符数据类型和非Unicode字符数据类型.非Unicode字符数据类型:允许使用由特定字符集定义的字符。字符集在安装SQL Server时选择,不能更改。非Unicode字符数据类型:char、varchar和text。Unicode字符数据类型:可存储由Unicode标准定义的任何字符,包含由不同字符集定义的所有字符。需要相当于非Unicode数据类型两倍的存储空间。Unicode字符数据数据类型包括:nchar、nvarchar和ntext。对于存储来源于多种字符集的字符的列,可采用这些数据类型。,2、数据类型,四、字符型数据,1.c
10、har类型格式:char(n)功能:定义长度为n个字节的固定长度非Unicode字符数据,每个字符占一个字节。说明:n:18000 存储大小:n个字节(n个字符)2.varchar类型格式:varchar(n)功能:定义长度最多为n个字节的可变长度非Unicode字符数据,每个字符占一个字节。说明:n:18000。存储大小:输入字符的实际长度。长度可为零,2、数据类型,四、字符型数据,3.nchar类型格式:nchar(n)功能:定义包含n个字符的固定长度Unicode字符数据说明:n:14000 存储大小:2n个字节4.nvarchar类型格式:nvarchar(n)功能:定义包含最多n个字
11、符的可变长度Unicode字符数据说明:n:14000。存储大小:所输入的字符实际个数的两倍。长度可以为零。,2、数据类型,四、字符型数据,5.text类型功能:用于存储大块的非Unicode字符,长度可变,字符最大长度 存储空间等于输入字符个数6.ntext类型功能:用于存储大块的Unicode字符,长度可变,字符最大长度 存储空间等于输入字符个数的两倍,2、数据类型,五、日期与时间数据类型,日期和时间数据类型用于存储日期和时间的结合体。包括datetime和smalldatetime两种类型。1.datetime类型 存储大小:8个字节 表示范围:1753年1月1日零时9999年12月31
12、日23时59分59秒。例:01/01/98 23:59:59 2000-5-29 12:30:482.smalldatetime 存储大小:4个字节 表示范围:1900年1月1日2079年6月6日。例:2000/05/08 12:35 2000-05-29 12:35 2000-05-29,2、数据类型,六、图形(image)数据类型,image数据类型用于存储可变长度二进制数据,其长度界于0到231-1个字节之间。,2、数据类型,七、货币数据类型,货币数据类型包括money和smallmoney数据类型。货币数据存储的精确度为四位小数。1.money类型 存储大小:8个字节 表示范围:-92
13、2,337,203,685,477.5808+922,337,203,685,477.58072.smallmoney类型 存储大小:4个字节 表示范围:-214,748.3648214,748.3647,2、数据类型,八、位(bit)数据类型,bit数据类型的取值只有0和1,如果一个表中有不多于8个的bit列,这些列将作为一个字节存储。如果表中有9到16个bit列,这些列将作为两个字节存储。更多列的情况依此类推。,2、数据类型,九、二进制数据类型,二进制数据类型又可以分为binary和varbinary类型。,1.binary类型 格式:binary(n)功能:定义固定长度的n个字节二进制数
14、据,当输入的二进制数据长度小于n时,余下部分填充0。说明:n:18000,2、数据类型,九、二进制数据类型,2.varbinary类型格式:varbinary(n)功能:定义n个字节可变长度二进制数据。说明:n:18000存储大小:为实际输入数据长度加4个字节,而不是n个字节。输入的数据长度可能为0字节。如果在数据定义或变量定义语句中使用时没有指定n,则默认长度n为1。如果在CAST函数中使用时没有指定n,则默认长度n为30。,2、数据类型,十、其他数据类型,1.timestamp类型(时间戳数据类型)存储大小:8个字节。时间戳类型的数据用于提供数据库范围内的惟一值,反映数据库中数据修改的相对
15、顺序,相当于一个单调上升的计数器。当表中的某列定义为timestamp类型时,在对表中某行进行修改或添加行时,相应timestamp类型列的值会自动被更新。,2、数据类型,十、其他数据类型,2.uniqueidentifier类型 用于存储一个16字节长的二进制数据,它是SQL Server根据计算机网络适配器和CPU时钟产生的全局惟一标识符(Globally Unique Identifier,GUID),该数字可以通过调用SQL Server的NEWID函数获得。GUID是一个唯一的二进制数字,世界上的任何两台计算机都不会生成重复的GUID值。GUID主要用于在拥有多个节点、多台计算机的网
16、络中,分配必须具有唯一性的标识符。,2、数据类型,十、其他数据类型,3.sql_variant类型 用于存储除text、ntext、image、timestamp和sql_variant外的其它任何合法的数据。4.table类型 用于存储对表或者视图处理后的结果集。这种新的数据类型使得用变量就可以存储一个表,从而使函数或过程返回查询结果更加方便、快捷。5.cursor类型 cursor类型是变量或存储过程 的OUTPUT 参数的一种数据类型,这些参数包含对游标的引用。,2、数据类型,十一、用户自己定义的数据类型,3、常量与变量,一、常量,常量也称为标量值,是表示一个特定数据值的符号。常量的格式
17、取决于它所表示的值的数据类型。,1.普通字符串常量 字符串常量用单引号括起来。如果要在字符串中包含单引号,则可以使用连续的两个单引号来表示。例如:Chinese Process X is 50%complete.The level for job_id:%d should be between%d and%d.(空字符串)Iam a student,3、常量与变量,一、常量,2、Unicode 字符串常量对于Unicode字符串的格式,需要在前面加一个N标识符,N前缀必须是大写字母。例如:Michl是字符串常量 NMichl是Unicode常量 Unicode常量被解释为Unicode数据。U
18、nicode 数据中的每个字符都使用两个字节进行存储,而普通字符数据中的每个字符则使用一个字节进行存储。,3、常量与变量,一、常量,3.二进制数常量 二进制常量使用0 x作为前辍,后面跟随十六进制数字字符串。例如:0 xAE 0 x12Ef 0 x69048AEFDD010E 0 x(空二进制常量),3、常量与变量,一、常量,4.bit常量 bit常量使用数字0或1表示。如果使用一个大于1的数字,它将被转换为1。5.datetime常量 datetime常量使用单引号括起来的特定格式的字符日期值表示。例如:April 15,1998 15 April,1998 980415 04/15/98
19、14:30:24 04:24 PM,3、常量与变量,一、常量,6.整型常量 由正、负号和数字09组成,正号可以省略。例如:1894 2+145345234-21474836487.decimal常量 由正、负号、小数点、数字09组成,正号可以省略。例如:1894.1204 2.0+145345234.2234-2147483648.10,3、常量与变量,一、常量,8.float和real常量 使用科学记数法表示。例如:101.5E5 0.5E-2+123E-3-12E59.money常量 以可选小数点和可选货币符号作为前缀的一串数字。可以带正、负号。例如:$12$542023.14-$45.5
20、6+$423456.99,3、常量与变量,二、变量,变量是可以保存特定类型的单个数据值的对象,SQL Server的变量分为两种:用户自己定义的局部变量和系统提供的全局变量。,1、局部变量 局部变量的作用范围仅限制在程序的内部。常用来保存临时数据。例如,可以使用局部变量保存表达式的计算结果,作为计数器保存循环执行的次数,或者用来保存由存储过程返回的数据值。,3、常量与变量,二、变量,1.局部变量的定义格式:DECLARE 局部变量名 数据类型,n说明:局部变量名:必须以开头,符合标识符的命名规则数据类型:系统定义的数据类型;用户定义数据类型。不能是text、ntext或image数据类型。局部
21、变量定义后初始值为NULL。,3、常量与变量,二、变量,1.局部变量的定义,【例】定义变量MyCounter为int类型:DECLARE MyCounter int【例】定义变量LastName为nvarchar(30)类型,定义变量FirstName为nvarchar(20)类型,定义变量State为nchar(2)类型:DECLARE LastName nvarchar(30),FirstName nvarchar(20),State nchar(2),3、常量与变量,二、变量,2.局部变量的赋值(1)用SET语句给局部变量赋值 格式:SET 局部变量名=表达式【例4-6】定义局部变量my
22、var,并为其赋值,最后显示myvar的值。DECLARE myvar char(20)SET myvar=This is a test-用SET赋值 PRINT myvar-用PRINT语句显示,3、常量与变量,二、变量,(2)用SELECT语句给局部变量赋值:格式:SELECT 局部变量名=表达式,n【例4-7】定义局部变量myvar1和myvar2,并为它们赋值,最后显示myvar1和myvar2的值:DECLARE myvar1 char(20),myvar2 char(20)SELECT myvar1=Hello!,myvar2=How are you!-用SELECT赋值 SELE
23、CT myvar1,myvar2-用SELECT显示,3、常量与变量,二、变量,2、全局变量是SQL Server系统自带的变量,特点如下:全局变量不是由用户的程序定义的,它们是SQL Server系统在服务器级定义的,作用范围是一个服务器内都有效。全局变量通常用来存储一些配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值。,3、常量与变量,二、变量,用户只能使用预先定义的全局变量,不能自己定义全局变量。全局变量,必须以标记符“”开头。局部变量的名称不能与全局变量的名称相同,否则会出现不可预测的结果。任何程序均可以随时引用全局变量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Transact SQL 语言 基础
链接地址:https://www.31ppt.com/p-5451084.html