[电脑基础知识]08第7章-sql程序基础

上传人:tia****nde 文档编号:70387439 上传时间:2019-01-16 格式:PPT 页数:151 大小:675.31KB
返回 下载 相关 举报
[电脑基础知识]08第7章-sql程序基础_第1页
第1页 / 共151页
[电脑基础知识]08第7章-sql程序基础_第2页
第2页 / 共151页
[电脑基础知识]08第7章-sql程序基础_第3页
第3页 / 共151页
[电脑基础知识]08第7章-sql程序基础_第4页
第4页 / 共151页
[电脑基础知识]08第7章-sql程序基础_第5页
第5页 / 共151页
点击查看更多>>
资源描述

《[电脑基础知识]08第7章-sql程序基础》由会员分享,可在线阅读,更多相关《[电脑基础知识]08第7章-sql程序基础(151页珍藏版)》请在金锄头文库上搜索。

1、第七章 SQL程序设计,计算机信息工程学院,SQL程序设计,注释 批处理 标识符 数据类型 变量 运算符 流程控制语句 函数 存储过程 触发器 游标 事务,一、注释,通常出现在程序代码中的说明性文字,称为注释。 在SQL Server中,分为: 单行注释 单行注释是使用两个连在一起的减号“-”作为注释;注释语句写在注释符的后面,以最近的回车符作为注释的结束 多行注释 多行注释是使用“/* */”作为注释符;“/*”用于注释文字的开头,“*/”用于注释文字的结尾,中间部分加上注释性文字说明。多行注释不能跨越批处理,整个注释必须包含在一个批处理内。,二、批处理,批处理是指包含一条或多条Transa

2、ct-SQL语句的语句组,SQL Server服务器将批处理语句编译成一个可执行的单元,也称执行计划。 书写批处理,使用GO语句作为批处理命令的结束标志。 例 use shool go select * from student go select * from se go,建立批处理时,应遵循:,CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER和CREATE VIEW语句不能在批处理中与其他语句组合使用。批处理必须以CREATE语句开始。所有跟在该批处理之后的其他语句将被解释为第一个CREATE语句定义的一部分。 不能在同一

3、个批处理中更改表结构,再引用新添加的列。 如果EXECUTE语句是批处理中的第一句,则不需要EXECUTE关键字。如果EXECUTE不是批处理的第一条语句,则需要EXECUTE。,三、标识符,在SQL Server中,标识符就是指用来定义服务器、数据库、数据库对象和变量等的名称。 对象标识符在定义对象时创建,包含的字符数必须在1128之间,随后就可通过标识符引用相应对象。 标识符可分为常规标识符和分隔标识符。,常规标识符,不需要使用分隔标识符进行分隔的标识符。 第一个字符必须是下列字符之一:Unicode2.0标准所定义的字母,下划线_,符号和数字符号#。 后续字符可以是Unicode2.0所

4、定义的字母、来自基本拉丁字母或其他国家/地区脚本的十进制数字、$、#或下划线_。 不能是T-SQL保留字。 不允许嵌入空格或其它特殊字符,分隔标识符,如果标识符是保留字或者包含空格,则需要使用分隔标识符进行处理。 分隔标识符包含在双引号(“)或方括号()中。 例如:创建一个名为:my table的表,表中有属性smallint类型的名为order的属性。 create table my table(order smallint) 或 create table “my table“(“order“ smallint),一个对象的全称语法格式,数据库对象的名称被看作是该对象的标识符。 server

5、_name.database_name.owner_name.object_name 一个用户名为sdfi的用户登录到myserver服务器上,在school数据库中创建了一个sc表,则sc表的全称为:myserver.school.sdfi.sc。 在实际使用时,使用全称比较繁琐,因此经常使用简写格式。在简写格式中,没指明的部分则使用默认设置值。,四、数据类型,整数型 逻辑数值型 小数数据类型 货币型 近似数值型 字符型 Unicode字符型 二进制数据类型 日期时间类型 其他数据类型 用户自定义数据类型,整数型,tinyint:0到255。1个字节。 smallint:215(32 768

6、)到2151(32 767)。2个字节,其中1位表示整数值的正负号,其它15位表示整数值的长度和大小。 int:231(2 147 483 648)到2311(2 147 483 647)。4个字节,其中1位表示整数值的正负号,其它31位表示整数值的长度和大小。 bigint:263(9 223 372 036 854 775 808)到2631(9 223 372 036 854 775 807)。8个字节。,小数数据类型,decimal(p,s):可以提供小数所需要的实际存储空间,可以用2到17个字节来存储从10381到10381之间的数值。其中p表示可供存储的值的总位数(不包括小数点),

7、缺省值为18,最大为38;s表示小数点后的位数,缺省值为0。 numeric:与decimal数据类型相同。可以用于带有identity福安尖子的列(字段)。 注意:在为小数数据类型数据赋值时,应保证所赋数据整数部分的位小于或等于定义的长度,否则会出现溢出错误。,近似数值型,real:可精确到第7位小数,其范围为从3.40E+38到3.40E+38,占用4个字节的存储空间。 float(n):可精确到第15位小数,其范围为从1.79E+308到1.79E+308,占用8个字节的存储空间。其中,n为153之间的值。,字符型,char(n):使用固定长度来存储字符,每个字符和符号占一个字节的存储空

8、间。n表示所有字符所占的存储空间,n的取值为1到8000,若不指定n 值,则系统默认值为1。若输入数据的字符数小于n,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。 varchar(n):与char类型相似,n的取值为1到8000。Varchar数据类型具有变动长度的特性,存储长度为实际数值长度。 text:专门用于存储数量庞大的变长字符数据。最大长度可达2311(2 147 483 647)个字符。,逻辑 数值型,bit:其值为0或1。如果输入0或1以外的值,将被视为1。 不能对bit类型的列(字段)使用索引。,货币型,货币数据类型用于存储货币值。在使用货

9、币数据类型时,应在数据前加上货币符号,不同货币的符号可参考SQL Server 2000的帮助文档。默认货币符号为“¥”。包括money和smallmoney。 money:有4位小数的DECIMAL值,其取值从263到2631,数据精度为万分之一货币单位。所占存储空间为8个字节。 smallmoney:其取值从214,748.3648到+214,748.3647,所占存储空间为4个字节。,二进制数据类型,二进制数据是一些用十六进制表示的数据,包括:binary、varbinary、image。 binary(n):固定长度为n个字节二进制数据,最大长度可达8KB。n取值为1到8000。 va

10、rbinary(n):n个字节可变长二进制数据,不能超过8KB。 image:可用于存储字节数超过8KB的可变长度的二进制数据,如Microsoft Word文档、Microsoft Excel图表以及图像数据等,其最大长度为2311个字节。 二进制常量以0x开始,后面跟着位模式的十六进制表示。例如:0x1A表示十六进制的值1A,它等于十进制的数26。,日期时间类型,日期/时间数据类型可以存储日期和时间的组合数据,包括datetime和smalldatetime。 datetime:存储从1753年1月1日零时起到9999年12月31日23时59分59秒之间的所有日期和时间,其精确度可达三百分

11、之一秒,即3.33毫秒。所占存储空间为8个字节。 smalldatetime:存储从1900年1月1日到2079年6月6日,但精度较低,只能精确到分钟。所占存储空间为4个字节。,SQL Server日期时间格式,Unicode字符型,Unicode数据类型需要相当于非Unicode数据类型两倍的存储空间。 nchar(n):与char 类型相似,n的取值为1到4000。NCHAR类型采用UNICODE标准字符集(CharacterSet)。因此,Unicode数据的存储空间都是:字符数2(字节)。 nvarchar(n):与varchar类型相似,n的取值为1到4000。 ntext:用于存储

12、可变长度的unicode数据,最多可存储2301个unicode数据。,其他数据类型,cursor:是游标型数据类型,用于创建游标变量或定义存储过程的输出参数。 sql_variant:可以存储除文本、图形数据(text、ntext、image)和timestamp类型数据外的其它任何合法的SQL Server数据。 table:用于存储对表或视图处理后的结果集。这一新类型使得变量可以存储一个表,从而使函数或过程返回查询结果更加方便、快捷。 timestamp:提供数据库范围内的惟一值此类型相当于binary(8)或varbinary(8),但当它所定义的列在更新或插入数据行时,此列的值会被自

13、动更新,一个计数值将自动地添加到此TIMESTAMP数据列中。每个数据库表中只能有一个timestamp数据列。 uniqueidentifier:存储一个16位的二进制数字,此数字称为(GUIDGlobally Unique Identifier,即全球惟一鉴别号),由SQLServer的NEWID函数产生的全球惟一的编码,在全球各地的计算机经由此函数产生的数字不会相同。,用户自定义数据类型,用户定义的数据类型是在系统数据类型的基础上,可使用存储过程sp_addtype所建立的数据类型,当然也可使用企业管理器来实现。 例如,当多个表的列中要存储同样类型的数据,且想确保这些列具有完全相同的数据

14、类型、长度和为空值时,可使用用户定义数据类型。 创建用户定义的数据类型必须提供3个参数: 名称 新数据类型所依据的系统数据类型 为空性 如果用户定义数据类型是在model数据库中创建的,它将作用于所有用户定义的新数据库中。如果数据类型在用户定义的数据库中创建,则该数据类型只作用于此用户定义的数据库。,选中数据库并展开右单击“用户定义的数据类型”,Sp_addtype,sp_addtype typename = type, phystype = system_data_type , nulltype = null_type , ower = owner_name 语法说明: typename=

15、type :用户定义的数据类型的名称命名遵循标识符规则,并且在每个数据库中必须是唯一的。type 的数据类型为 sysname,无默认值。 phystype= system_data_type :自定义类型所基于的物理数据类型或 SQL Server 提供的数据类型。 nulltype = null_type:指明处理空值的方式。默认为null。 , ower = owner_name :指定创建者或所有者,若没指定,则为当前用户。 该存储过程返回0为成功,否则返回1,例题,exec sp_addtype telephone,varchar(24),not null exec sp_addty

16、pe fax,varchar(24),null,删除用户定义数据类型sp_droptype,Sp_droptype typename= type 例如: Exec sp_droptype telephone Exec sp_droptype fax,四、变量,Transact-SQL中可以使用两种变量 局部变量(Local Variable) 全局变量(Global Variable),局部变量,局部变量是用户可自定义的变量,它的作用范围仅在程序内部。 局部变量必须以“”开头,而且必须先用DECLARE命令说明后才可使用。其说明形式如下: declare 变量名 变量类型 ,变量名 变量类型 变量不能是text、ntext或image数据类型 使用SELECT或SET命令来设定变量的值,其语法如下: selec

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号