SQL第3章Transact-SQL语言.ppt
《SQL第3章Transact-SQL语言.ppt》由会员分享,可在线阅读,更多相关《SQL第3章Transact-SQL语言.ppt(48页珍藏版)》请在三一办公上搜索。
1、第3章 Transact-SQL程序设计,3.1 SQL 语言简介 3.2 数据类型 3.3 局部变量与全局变量 3.4 运算符及优先级 3.5 函数 3.6 简单的SELECT 语句 3.7 批处理与流程控制语句,返回目录,2,3.1 SQL 语言简介,SQL(Structure Query Language)语言是一种在关系型数据库中定义、查询、操纵和控制数据的标准语句。大多数据库厂商都在SQL-92标准的基础上对SQL又进行了一定的扩充,产生了事务化的SQL语言,即Transact SQL语言,简称T-SQL语言。,3,语言简介,SQL 语言是一种面向集合的数据库语言,其主要特点是:类似
2、于英语,直观、简单易学;SQL语言只是提出要“干什么”,“怎么办”则由DBMS来完成。SQL语句分为四类:数据查询语句、数据操纵语句、数据定义语句和数据控制语句;SQL语句既可以独立,也可以嵌入到另外一种语句中使用的语句,即具有自含型和缩主型两种特征。自含型特征可以用于所有用户,缩主型适合于应用程序员开发数据库应用程序。,4,语言简介,数据操作语句select、insert、delete、update数据定义语句create table、drop table、alter table create view、drop view create index、drop index create pro
3、cedure、alter procedure、drop procedurecreate trigger、alter trigger、drop trigger 数据访问控制grant、revoke 事务控制语句begin transaction/commit、rollback、set transaction 编程语句declare、open、fetch、close、execute,5,数据库管理员和应用系统开发人员用SQL语言可以做以下事情:创建主键、外键、约束、规则、触发器、事务,用以实现数据完整性;查询、更新、删除数据库中的信息;对各种数据库对象设置不同的权限、实现数据库的安全性;进行分布式
4、数据处理,实现数据库间的数据复制、传递和执行分布式查询;可以创建批处理、存储过程、视图,方便应用程序访问数据库中的数据;实现数据仓库,从联机事务处理系统中提取数据,对数据汇总进行决策支持分析;其他功能。,本章首页,6,3.2 数据类型,数据类型是指数据所代表的信息的类型。每一种语言都定义了自己的数据类型。SQL Server 2000中定义了25种数据类型,同时允许用户自己定义数据类型。系统定义的数据类型有:binary(n)、varbinary(n)、char(n)、varchar(n)、nchar(n)、nvarchar(n)、datetime、smalldatetime、decimalp
5、(,s)、numericp(,s)、float(n)、real、int、smallint、tinyint、money、smallymoney、bit、cursor、sysname、timestamp、uniqueidentifier、text、image 和ntext;,7,3.2.1 二进制数据类型二进制数据类型包括三种:binary、varbinary和image。binary(n):固定长度的n个字节二进制数据。n必须是1到8000。存储空间大小为n+4字节。varbinary(n):n个字节可变长二进制数据。n必须从1到8000。存储空间大小为实际数据长度+4个字节,而不是n个字节。i
6、mage:可变长度的二进制,其最大长度为231-1个字节。3.2.2 数字数据类型数字数据类型包括精确数字、近似数字两种。精确数字又分为精确整数和精确小数。1.精确整数精确整数数据类型有四种,它们是bigint、int、smallint、tinyint。bigint:从-263到263-1的整型数据。存储大小为8个字节。int:从-231到231-1的整型数据。存储大小为4个字节。,8,smallint:从-215到215-1的整数数据。存储大小为2个字节。tinyint:从0到255的整数数据。存储大小为1个字节。bigint 的存储范围大大于int 的存储范围,int 的存储范围大于Sma
7、llint 的存储范围,Smallint的存储范围大于tinyint的存储范围。2.精确小数精确小数数据类型有两种:它们是decimal和numeric。decimal:带定点精度和小数位数的numeric数据类型,从-1038+1到1038-1。numeric:功能上等同decimal。3.近似数字近似小数数据类型有两种:float 和 real。float:从-1.79E+308到1.79E+308的浮点精度数字。real:从-3.04E+38到3.04E+38的浮点精度数字。,9,3.2.3 字符数据类型字符数据是用一对单引号括起来由字母、数字、和符号组合而成的数据,在内存中占用一个字节
8、。例Nanjing、3.23、&*op都是合法的字符数据。字符数据类型有char、varchar和text三种。char:固定长度的非unicode字符数据,最大长度为8000个字符;varchar:可变长度的非unicode 字符数据,最大长度为8000个字符;text:可变长度的非unicode 字符数据,最大长度为231-1个字符;如果没有在数据定义或变量声明语句中指定n,则默认长度为1。,10,3.2.4 unicode 数据类型对于用单个字节编码每个字符的数据类型,存在的问题就是此数据类型只能表示256个不同的字符。象汉字、日文或韩国文字这样具有数千个字符的字母表就不可能处理了。un
9、icode标准每个字符用两个字节来编码,所以在系统中使用unicode数据类型,就可以解决大字母表的字符问题了。unicode数据类型包括nchar、nvarchar和ntext。nchar:固定长度的unicode 数据,最大长度为4000个字符。nvarchar:可变长度的unicode数据,其最大长度为4000字符。ntext:可娈长度的unicoce数据,其最大长度为230-1个字符。当列的长度固定不变时,使用nchar数据类型;当列的长度变化时,使用nvarchar数据类型;如果需要存储的字符数多于4000个时,应使用ntext数据类型存储。,11,3.2.5 日期和时间数据类型日期
10、和时间数据类型包括datetime 和smalldatetime两种数据类型。datetime:存储从1753年1月1日到9999年12月31日的日期和时间数据,每一个值要求8个字节,精确到百分之三秒(或3.33毫秒)。smalldatime:存储从1900年1月1日到2079年12月31日的日期和时间数据,每一个值要求4个字节,精确到分钟。设置日期格式的命令如下:set dateformat format|format_var其中,format|format 是日期的格式。有效参数包括MDY、DMY、YMD、YDM、MYD、DYM。默认格式为MDY。例3-1 设置日期格式set datefo
11、rmat mdygodeclare datevar datetimeset datevar=06/03/2006select datevar,12,3.2.6货币数据类型货币数据类型表示货币数量,货币数据类型包括money和smallmoney。money:货币数值介于-263与263-1之间,精确到货币单位的千分之十,money数据类型要求个存储字节。smallmoney:货币数值介于-214748.3648与+214748.3647之间,精确到货币单位的千分之十,smallmoney数据类型要求4个存储字节。3.2.7特殊数据类型在SQL中特殊的数据类型有三种:bit、timestamp和
12、uniqueidentifier。bit:由1和0组成,使用bit数据类型可以表示真、假或on、off,不能对bit的列使用索引。timestamp:以二进制格式表示SQL Server活动的先后顺序。在数据库范围内,timestamp是唯一的,每次更新行时进行更新。uniqueidentifer:全局唯一标识符(GUID),以十六进制数字表示一个全局惟一的标识。,13,3.2.8 用户自定义数据类型在SQL Server中,用户可以根据需要自定义数据类型。用户可以用SQL语言或企业管理器来自定义数据类型。自定义数据类型定义后,与系统数据类型一样使用。创建自定义数据类型的好处:利用自定义数据类
13、型可使不同表不重复出现的各列数据具有相同的特性。1.创建用户自定义数据类型()使用SQL 语句创建使用系统存储过程sp_addtype创建,语法如下:sp_addtype type_name,phystype(length)|(precision,scale),null|not null|identity,14,其中:type_name:是用户定义的数据类型的名字。Phystype:是用户自定义数据类型所基于的系统数据类型,可以包括长度、精度、标度。null|not null|identity:用户自定义数据类型的性质,分别为允许空值、不允许为空值、具有标识列性质。如果不指定列的性质,默认为n
14、ot null。,15,例3-2 创建两个自定义数据类型use jwglgoexec sp_addtype a0,varchar(15),nullexec sp_addtype postalcode,char(6),not null(2)使用企业管理器创建自定义数据类型进入企业管理器进入JWGL数据库右击“用户自定义数据类型”点击“新建用户自定义数据类型”后出现“用户自定义数据类型”窗口输入要定义的数据名称,选择数据类型,输入数据长度,确定是否允许为空点击“确定”。,16,2.查看用户自定义数据类型可以用系统存储过程sp_help或企业管理器来查看用户定义的数据类型的特征。语法格式:exec
15、sp_help 自定义数据类型名称3.重命名用户自定义数据类型使用过程sp_rename 可以很方便地重新命名一个用户自定义数据类型。语法格式:exec sp_rename 旧名称,新名称4.删除用户定义数据类型使用过程sp_droptype 来删除一个已经定义且未被使用的用户自定义数据类型。语法格式:exec sp_droptype 自定义数据类型名必须注意不能删除正在被表或其他数据库使用的用户自定义数据类型。,本章首页,17,3.3 局部变量与全局变量,从变量的作用范围来区分,SQL Server提供两种形式的变量:局部变量和全局变量。1.局部变量局部变量一般在批处理中被声明、定义、赋值和
16、引用,批处理结束后,局部变量就消失了。利用局部变量还可以保存程序执行过程中的中间数据值,保存由存储过程返回的数据值等。(1)局部变量的定义 必须先用DECLARE命令定义后才可以使用。DECLAER local_variable data_type,n(2)局部变量的赋值方法 SET local_variable=expression 或者 SELECT local_variable=expression,.n,18,expression:与局部定义的数据类型相匹配的表达式。赋值前变量默认值为 NULL。(3)局部变量的显示 select variable_name例3-3 定义一个整型局部变
17、量和一个可变长字符型局部变量并赋值。DECLARE local_variable_int int,local_variable_char nvarchar(9)SELECT local_variable_int=40SET local_variable_char=Welcom to NanjingSELECT local_variable_intSELECT local_variable_charGO,19,注意:1)如果被赋值的长度超过DECLAER语句中声明的长度,将此值赋值给局部变量时,超过的部分将被截去。如上例,局部变量 local_variable_char定义的长度为9,而给其赋的
18、值是“Welcom to Nanjing”,最后局部变量 local_variable_char的值为“Welcom to”。2)也可以用SELECT语句从表中查询出的结果给局部变量赋值,但要保证查询出的值的惟一性,否则不能保证给局部变量赋值的准确性。3)在定义局部变量时容易发生数据类型不匹配的错误。即:使用DECLARE语句定义的局部变量与赋给局部变量的值的数据类型不匹配。如果发生这种情况,SQL Server总是试图隐式地将被赋的值的数据类型转化为局部变量的数据类型。,20,2.全局变量全局变量在整个SQL Server系统内使用。存储的通常是一些SQL Server的配置设定值和统计数据
19、。在使用全局变量时应该注意以下几点:全局变量是在服务器级定义的。SQL Server提供的全局变量分为两类:1)与SQL Server 连接有关的全局变量。如:rowcount表示受最近一个语句影响的行数。2)关于系统内部信息有关的全局变量。如:version表示SQL Server的版本号。全局变量反映的是服务器当前的状态,SQL Server 2000提供了30多个全局变量,下面介绍几个常用的全局变量:connections:返回自上次启动SQL Server 以来连接或试图连接的次数。rowcount:返回上一条T-SQL语句影响到的数据行数。,21,error:返回上一条T-SQL语句
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Transact 语言
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6521004.html