首页计算机计算机软件SQLServer2005数据库技术及应用 06 第6章 SQL_SERVER_命名规则及SQL_Server的数据类型.pptx

06 第6章 SQL_SERVER_命名规则及SQL_Server的数据类型.pptx

页数:20页文件大小:631.6 KB来源: SQLServer2005数据库技术及应用ppt课件

本章先说明SQL Server标识符的分类与命名规则,并演示界定标识符的使用场景;随后系统梳理整数、货币、数字、浮点、日期时间、字符、统一码、二进制以及文本图像等系统数据类型,并介绍sql_variant、table、XML等新增类型与用户自定义数据类型的创建与删除方法。

第6章命名规则及数据类型章封面,源文件仅提取到书名页眉,章标题据次页目录补全
第6章命名规则及数据类型目录页,列出SQL Server命名规则与数据类型两节
6.1SQLServer命名规则的要点列表,SQL Server命名规则6.1.1标识符的分类SQLServer的所有对象,例如服务器名、数据库名、表名、常量
查看本课件的文字版(共 20 页,供检索与复制)

第1页:第6章命名规则与数据类型

数据库技术及应用

第2页:第6章目录:命名与类型

第6章SQL SERVER命名规则及SQL Server的数据类型

  • 6.1SQLServer命名规则
  • 6.2SQLServer的数据类型

第3页:6.1SQLServer命名规则

6.1SQL Server命名规则6.1.1标识符的分类SQLServer的所有对象,例如服务器名、数据库名、表名、常量、变量等都可以有一个标识符。对绝大多数对象来说,标识符是必不可少的。SQLServer一共规定了两种类型的标识符:一种是规则标识符,一种是界定标识符。

  • 规则标识符规则标识符严格遵守标识符有关格式的规定。所以在T-SQL语句中凡是规则标识符都不必使用界定符,如[]和“”来进行限定。
  • 界定标识符界定标识符是指使用了[]和“”等界定符号来进行位置限定的标识符。如果数据库对象的标识符不符合命名规则,则必须使用界定标识符来加以限定。

第4页:【例6.1】从表123查询所有信息

6.1SQL Server命名规则【例6.1】从表123(假设存在这张表)中查询所有信息。SELECT*FROM[123]在上例中表123违反了命名规则中第3条规定,所以必须加界定标识符加以限定。否则运行时编译器会返回如下错误信息:服务器:消息170,级别15,状态1,行1第1行:'123'附近有语法错误。

第5页:6.2SQLServer的数据类型

6.2SQL Server的数据类型6.2.1整数数据类型整型数据类型提供存储精确数字值的方法。以整数数据类型存储的数总是占用相同比例的存储空间。整数数据类型分为以下5类。Bit:称为位数据类型,其数据有两种取值:0和1,长度为1字节。为了优化存储空间,SQLServer在存储bit型数据时进行了优化,1—8个bit型数据占用1个字节空间,1—16个bit型数据占用2个字节空间,依次类推。

第6页:SQLServer的数据类型(续)

6.2SQL Server的数据类型

Bigint
用于存储从-263(-9,223,372,036,854,775,807)到263-1(9,223,372,036,854,775,807)之间的所有正负整数,一共占用8个字节。
int(integer)
int(或integer)数据类型可以存储从-231(-2,147,483,648)到231-1(2,147,483,647)范围之间的所有正负整数。以int整数类型存储的每个值占用4个字节,共32位,其中31位用作存储数字,1位用于表示正负。
Smallint
可以存储从-215(-32,768)到215-1范围之间的所有正负整数。以Smallint数据类型存储的每个值占用2个字节,共16位,其中15位用作存储数字,1位用于表示正负。
Tinyint
可以存储从0到255范围之间的所有正整数。以Tinyint数据类型存储的每个值占用1个字节。整数型数据可以在较少的字节里存储较大的精确数字,而且存储结构的效率很高。所以,平时在选用数字类型时,应尽量选用整数数据类型。

第7页:SQLServer的数据类型(续3)

6.2SQL Server的数据类型6.2.2货币型数据货币数据类型专门用于货币数据处理,有以下2种类型。

Money
用于存储货币值,存储在money数据类型中的数值以一个正数部分和一个小数部分存储在两个4字节的整型值中,存储范围为-922337213685477.5808到922337213685477.5808,精度为货币单位的万分之一。
Smallmoney
与money数据类型类似,但其存储的货币值范围比money数据类型小,其存储范围为-214748.3468到214748.3467。

第8页:SQLServer的数据类型(续4)

6.2SQL Server的数据类型6.2.3数字数据类型数字数据类型数据包括Decimal和numeric:Decimal数据类型和numeric数据类型完全相同。它们可以提供小数所需要的实际存储空间,但也有一定的限制,可以用2到17个字节来存储从-1038-1到1038-1之间的数值。但是两者也有区别,在表格中,只有numeric型的数据可以带有identity关键字的列,decimal可以简写为dec。声明数字数据类型的数据格式是numeric(p,[s])或者decimal(p,[s]),其中p为精度,s为小数位数,s的默认值为0。比如,25.423对应的数据类型为数字数据类型时,声明为decimal(5,3)。

第9页:SQLServer的数据类型(续5)

6.2SQL Server的数据类型6.2.4浮点数据类型浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server中采用只入不舍的方式进行存储,浮点数据类型包括float和real两种类型。

Real
可以存储正的或者负的十进制数值,最大可以有7位精确位数。存储时使用4个字节。
Float
可以精确到第15位小数,其范围从-1.79E-308到1.79E+308。用8个字节来存储。

第10页:SQLServer的数据类型(续6)

6.2SQL Server的数据类型6.2.5日期时间数据类型SQL Server提供的日期时间数据类型可以存储日期和时间的组合数据。以日期时间数据类型存储日期或时间的数据比使用字符型数据进行存储更简单。因为SQL Server提供了一系列专门处理日期和时间的函数来处理这类数据。而且,如果使用字符型数据来存储日期和时间,只有用户本人可以识别,计算机并不能识别,因此也不能自动将这些数据按照日期和时间来进行处理。日期时间数据类型有datetime和smalldatetime两种。

Datetime
用于存储日期和时间的结合体,可以存储从公元1753年1月1日零时起--公元9999年12月31日23时59分59秒之间的所有日期和时间,其精确度可达三百分之一秒,即3.33毫秒。当存储datetime数据类型时,默认的格式是:MMDDYYYYhh:mmA.M./P.M。当插入数据或者在其它地方使用datetime类型时,需要用单引号把它括起来。datetime数据类型允许使用/、-和.作为不同时间单位间的分隔符。
Smalldatetime
存储从1900年1月1日--2079年6月6日内的日期,4个字节。

第11页:SQLServer的数据类型(续7)

6.2SQL Server的数据类型6.2.6字符数据类型字符数据类型可以用来存储各种字母、数字符号和特殊符号。SQL Server提供了两类字符数据类型。

Char
其定义形式为char(n),每个字符和符号占用一个字节的存储空间。如果实际数据的字符长度短于给定的最大长度,则多余的字节会用空格填充。
Varchar
其定义形式为varchar(n)。用char数据类型可以存储长达255个字符的可变长度字符串。在实际数据的字符长度短于给定的最大长度时,不会在多余的字节上填充空格。

第12页:SQLServer的数据类型(续8)

6.2SQL Server的数据类型6.2.7统一码数据类型统一码数据类型是从SQLServer7.0开始提出的新数据类型,用于存储双字节字符,例如汉字。有以下两种类型:

Nchar(n)
nchar(n)是固定长度的双字节数据类型,n的取值范围是1—4000,所以可以存储的最大字符数量是4000个字符。Nchar其他属性及使用方法和char数据类型一样。
Nvarchar(n)
存储可变长度的双字节数据类型,n的取值范围是0—4000,所以存储的最大字符数量也是4000个。Nvarchar其他属性及使用方法和varchar数据类型一样。

第13页:SQLServer的数据类型(续9)

6.2SQL Server的数据类型6.2.8二进制数据类型所谓二进制数据是一些用十六进制来表示的数据,有以下两种类型。

Binary
其定义形式为binary(n),数据的存储长度是固定的,即n+4个字节。二进制数据类型的最大长度(即n的最大值)为8000,常用于存储图像等数据。
Varbinary
其定义形式为varbinary(n),数据的存储长度是变化的,它为实际所输入数据的长度加上4字节。在输入二进制常量时,需在该常量前面加一个前缀0x。

第14页:SQLServer的数据类型(续10)

6.2SQL Server的数据类型6.2.9图象,文本数据类型为了方便存储和使用文本、图像等大型数据,SQLServer提供了以下三种类型数据。

Text
容量可以在1--231-1个字节。在定义Text数据类型时,不需要指定数据长度,SQLServer会根据数据的长度自动为其分配空间。
Ntext
采用unicode标准字符集,用于存储大容量文本数据。其理论上的容量为230-1(1,073,741,823)个字节。
Image
用于存储照片、目录图片或者图画,其理论容量为231-1(2,147,483,647)个字节。

第15页:SQLServer的数据类型(续11)

6.2SQL Server的数据类型6.2.10新增数据类型

sql_variant
用于存储除文本、图形数据和timestamp类型数据外的其它任何合法的SQLServer数据。
table
用于存储对表或者视图处理后的结果集。这种新的数据类型使得变量可以存储一个表,从而使函数或过程返回查询结果更加方便、快捷。
XML
XML数据类型是一用专门用于保存和操作XML的数据类型。它是以BLOB的二进制形式保存的,一个XML类型字段可以保存2GB的XML代码,层次可达128层。此外,XML数据类型还有检验XML数据完整性的功能,比以前用text类型保存XML数据方便得多。

第16页:SQLServer的数据类型(续12)

6.2SQL Server的数据类型6.2.11特殊数据类型

Timestamp
也称作时间戳数据类型。是一种自动记录时间的数据类型,主要用于在数据表中记录其数据的修改时间。它提供数据库范围内的唯一值。
Uniqueidentifier
也称作唯一标识符数据类型。
Uniqueidentifier用于存储一个16字节长的二进制数据类型,它是SQLServer根据计算机网络适配器地址和CPU时钟产生的全局唯一标识符代码(GloballyUniqueIdentifier,简写为GUID)。

第17页:SQLServer的数据类型(续13)

6.2SQL Server的数据类型6.2.12用户自定义数据类型用户自定义数据类型并不是真正的数据类型,它只是提供了一种加强数据库内部元素和基本数据类型之间一至性的机制。通过使用用户自定义数据类型能够简化对常用规则和默认值的管理。1.用系统存储过程SP_ADDTYPE创建用户自定义数据类型使用存储过程SP_ADDTYPE的语法结构如下:SP_ADDTYPE[@typename=]type,[@phystype=]system_data_type[,[@nulltype=]‘null_type’][,[@owner=]‘owner_name’]

第18页:SQLServer的数据类型(续14)

6.2SQL Server的数据类型参数说明:

ntype
指定用户定义的数据类型的名称。
nsystem_data_type
指定相应的系统提供的数据类型的名称及定义。注意,不能使用timestamp数据类型,当所使用的系统数据类型有额外说明时,需要用引号将其括起来。
null_type
指定用户自定义数据类型的null属性,其值可以为‘null’、‘notnull’或者‘nonull’。默认与系统默认的null属性相同。
owner_name
指定用户自定义数据类型的所有者。

第19页:【例6.2】自定义一个地址数据类型

6.2SQL Server的数据类型【例6.2】自定义一个地址数据类型。USE bookGOEXEC SP_ADDTYPE address,‘varchar(80)’,‘not null’上例创建了一个名为address的用户自定义数据类型,基于varchar数据类型。该列不能为空。2.使用SQLServerManagementStudio创建用户定义数据类型

第20页:SQLServer的数据类型(续15)

6.2SQL Server的数据类型3.使用系统存储过程SP_DROPTYPE删除用户定义数据类型使用系统存储过程SP_DROPTYPE的语法结构如下:SP_DROPTYPE [@typename=]‘type’参数说明:[@typename=]‘type’:要删除的用户自定义的数据类型的名字。【例

6.3】把例

6.2创建的自定义数据类型删除掉。USE bookGOEXECSP_DROPTYPEaddress4.使用SQL Server Management Studio删除用户定义数据类型
顶部目录