SQL-sever自学教程-管理表PPT资料.ppt
《SQL-sever自学教程-管理表PPT资料.ppt》由会员分享,可在线阅读,更多相关《SQL-sever自学教程-管理表PPT资料.ppt(54页珍藏版)》请在冰豆网上搜索。
1、代表实体。
2、由行和列组成。
3、行和列的顺序是不重要的。
注意:
u每个数据库最多可存储20亿个表,每个表至多可定义1024列,每行最多可存储8060字节。
u表和列的命名要遵守标识符的规定,在特定表中必须是唯一的,但同一数据库中的不同表可使用相同的列名。
必须为每列指定数据类型。
u尽管对每一个所有者在一个数据库内表的名称必须是唯一的,但如果为每一张表指定不同的所有者,则可以创建多个具有相同名称的表。
当使用此表时,可以通过指定表的使用者以及表名称来区分表。
11/10/20225第第6章章管理表管理表二、数据类型二、数据类型在MicrosoftSQLServer2000系统中,有两种数据类型,一种是系统提供的数据类型,另外一种是用户基于系统数据类型而定义的用户数据类型。
1.系统数据类型2.用户定义的数据类型11/10/20226第第6章章管理表管理表在创建表时,要对表中的各字段定义数据类型。
在讨论数据类型之前,先介绍在数据类型中经常使用的三个术语:
精度、小数位数和长度。
精精度度:
指数值型数据可以存储的十进制数字的总位数,包括小数点左侧的整数部分和小数点右侧的小数部分。
比如,1230.456的精度为7。
小小数数位位数数:
指数值型数据小数点右边的数字个数。
比如,543.15的精度是5,小数位数是2。
长长度度:
指存储数据时所占用的字节数。
数据类型不同,所占用的字节数就有所不同。
有些数据类型拥有固定的长度,而有些数据类型则根据用户的要求来决定长度。
比如,real类型的数据存储时不管数值多大均占用4个字节长度,而字符型数据则可根据用户的要求来决定存储数据的长度。
精度和小数位数是针对数值型数据的,但不是所有的数值型数据都能设置精度和小数位。
某些数值类型的精度与小数位数是固定的,对这样的数据类型的字段不能设置精度与小数位。
11/10/20227第第6章章管理表管理表1.系统数据类型系统数据类型在MicrosoftSQLServer2000系统中,提供了27种数据类型,常用的数据类型如表所示。
11/10/20228第第6章章管理表管理表整数型在MicrosoftSQLServer中,整数存储的数据类型是bigint、int、smallint、tinyint和bit。
bigint:
从-263到263-1的整型数据,长度为8字节。
int:
从-231到231-1的整型数据,长度为4字节。
Smallint:
从-215到215-1的整型数据,长度为2字节。
tinyint:
数据的范围为0255,长度为1字节。
bit:
此类型数据相当于其他语言中的逻辑型数据,它只存储0、1或NULL(空值),长度为1字节。
当希望表示真或假、是或非、合格或不合格、有或无、ON或OFF时,建议使用bit数据类型。
11/10/20229第第6章章管理表管理表精确数值型精确数值型包括decimal和numeric两类,由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数,这种数据所占的存储空间根据该数据的位数和小数点后的位数来确定。
使用时,需指明精度(即全部有效位数)与小数位数。
在SQLServer中这两种类型完全相同。
当用命令创建表并声明此类型的数据时,在类型名的后面标明精度和小数位数。
如:
numeric(p,s)或decimal(p,s),其中p为精度,不仅表示数值精度,也隐含指定了数据占用空间的大小;
s为小数位数。
例如,numeric(8,3)表示精度为8,即总共有8位数,其中有5位整数和3位小数;
若不指定,则默认为numeric(18,0)。
精度与长度的关系:
当精度为19时,长度为5字节;
当精度为1019时,长度为9字节;
当精度为2028时,长度为13字节;
当精度为2938时,长度为17字节。
11/10/202210第第6章章管理表管理表近似浮点数值型在MicrosoftSQLServer中,浮点数值数据类型是float和real。
float类型在定义变量或字段时可以定义精度,即表示为:
float(n)。
用于存储-1.79E+3081.79E+308之间的浮点数值。
用于存储科学计数法浮点数尾数的位数,同时指示其精度和存储大小。
必须为介于1到53之间的值。
当介于1到24之间,精度为7位有效数字,占用4个字节;
当介于25到53之间时,精度为15位有效数字,占用8个字节存储空间。
real类型也是浮点数,其值范围为-3.40E+383.40E+38,占用4个字节存储空间。
在SQLServer中,real类型相当于float(24)。
float和real的区别在于float数据类型可以表示的数据范围远远大于real数据类型可以表示的数据范围。
11/10/202211第第5章章管理表管理表货币数据类型在MicrosoftSQLServer中,货币数据的数据类型是money和smallmoney,用于表示与货币有关的数据。
money:
货币数值介于-263到263-1之间,长度为8字节。
精确到货币单位的万分之一。
smallmoney:
货币数值介于-214748.3648到214748.3647之间,长度为4字节。
实际上,这种数据类型也是一种小数,但是在这种类型的数据中,小数点后的数据有四位,并且会自动地四舍五入。
11/10/202212第第6章章管理表管理表日期和时间数据在MicrosoftSQLServer中,日期和时间数据类型包括datetime和smalldatetime两种类型。
日期和时间数据类型由有效的日期和时间组成。
两种数据类型的区别在于两者存储时间和日期的范围不同。
datetime:
能够存放1753年1月1日9999年12月31日的日期和时间数据,精确到百分之三秒(或3.33毫秒),长度为8字节。
smalldatetime:
能够存放1900年1月1日2079年6月6日的日期和时间数据,精确到分钟,长度为4字节。
输入日期部分时可以采用英文数字格式、数字加分隔符格式或纯数字格式。
采用英文数字格式时,月份可用英文全名或缩写形式,不分大小写。
例如,2003年8月16日这个日期就可以有下列几种输入格式:
Aug162003/英文数字格式2003-8-16/数字加分隔符格式20030816/纯数字形式输入时间部分时可以使用12小时格式或24小时格式。
使用12小时格式时加上AM或PM说明上午还是下午。
在秒与毫秒之间用半角冒号(:
)作为分隔符。
例如,要表示2003年8月16日下午2点30分45秒20毫秒,可用以下两种形式来输入:
2003-8-162:
30:
45:
20PM/12小时格式2003-8-1614:
20/24小时格式11/10/202213第第6章章管理表管理表字符数据字符型数据是由包含汉字、英文字母、数字和各种符号任意组合而成的数据。
char(定长字符型):
用来存放固定长度的字符数据,其长度最多为8KB。
对于像身份证号码、邮政编码等为固定长度的数据,使用char类型比较合适。
varchar(变长字符型):
其长度最多为8KB。
当一个字段中包含的字符个数是变化的,且不超过8000个字符时,可以使用varchar类型。
例如“图书名称”字段比较适合使用varchar类型,因为书名长短不一,所以可以将最长的书名长度作为n的值。
不同长度的书名,占用的字节数也不同。
text(文本型):
超过8KB的数据可以使用text数据类型存储。
比如:
个人简历、日志信息等有较长的内容,适合于用此类型。
其数据的长度为实际字符个数。
如果存储的数据的长度是不变化的,那么最好采用定长数据类型;
如果存储的数据的长度是变化的,那么建议采用变长度数据类型。
11/10/202214第第6章章管理表管理表unicode数据unicode数据类型也被称为国际数据类型,包括nchar、nvarchar和ntext,可以用来存储世界上所有的字符。
使用unicode数据类型,所占用的空间是使用非unicode数据类型所占用的空间大小的两倍。
在MicrosoftSQLServer系统中,unicode数据以nchar、nvarchar和ntext数据类型存储。
当列的长度变化时,应该使用nvarchar字符类型,这时最多可以存储4000个字符。
当列的长度固定不变时,应该使用nchar字符类型,同样,这时最多可以存储4000个字符。
当使用ntext数据类型时,该列可以存储多于4000个字符的数据。
注:
unicode为全球使用的大部分字符定义的一个统一编码方案。
数据可以从一个数据库或计算机传送到另一个数据库或计算机,接收系统不会错误的解释编码。
一个字节只能表示256个不同的字符。
unicode采用两个字节编码每个字符,可编码65536个字符。
11/10/202215第第6章章管理表管理表二进制数据二进制数据包括binary、varbinary和image。
二进制数据类型既可以是固定长度的,也可以是变长度的。
binary(n)是n位固定长度的二进制数据。
其中,n的取值范围是从1到8000。
varbinary(n)是位变长度的二进制数据。
其中,n的取值范围也是从1到8000。
在image数据类型中存储的数据是以位字符串存储的,这种数据不是由SQLServer解释的,必须由应用程序来解释。
11/10/202216第第6章章管理表管理表特殊数据类型特殊数据类型包括前面没有提到过的数据类型。
特殊的数据类型有5种,即cursor、timestamp、sql_variant、table和uniqueidentifier。
cursor数据类型用于游标定义。
timestamp用于表示MicrosoftSQLServer活动的先后顺序,以二进制的格式表示。
sql_variant是一种允许存储不同数据类型的数据值的数据存储。
table数据类型主要在定义函数时使用。
uniqueidentifi