预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共22页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第八讲SQLServer数据库表的创建与管理(一)引例:一、数据的完整性强调认识: 数据存放在表中 “数据完整性的问题大多是由于设计引起的” 创建表的时候,就应当保证以后数据输入是正确的 ——错误的数据、不符合要求的数据不允许输入输入的类型是否正确? ——年龄必须是数字 输入的格式是否正确? ——身份证号码必须是18位 是否在允许的范围内? ——性别只能是”男”或者”女” 是否存在重复输入? ——学员信息输入了两次 …… 域完整性1、实体完整性----也称为表的完整性,指一个表中必须有一个主关键字,用于惟一地标识表中的每一行,且不允许为空。2、域完整性----也称为列的完整性或用户定义的完整性,指表中的任一列数据必须满足所定义的数据类型,且其值必须在有效的范围之内。3、引用完整性----也称为参照完整性,是对表与表之间的联系而言,指两个表中数据必须一致、协调。二、SQLServer的数据类型2.浮点数据类型: ①real:-3.40E+38~3.40E+38,使用4个字节,精度为7 ②float:-1.79E+308~1.79E+308,可以指定用来存储按科学记数法记录的数据尾数的位数,如float(n),n的范围是1~53,当n的取值在1~24时,精度为7位,用4个字节来存储;当n的取值在25~53时,精度为15位,用8个字节来存储。 ③decimal(简写为dec)和numeric:可以精确指定小数点两边的总位数,如:numeric(p,s)p为小数点两边的总位数,不包括小数点,s为小数点右边的位数,其中1<p<=38,0<=s<=p。 取值范围:-1038+1~1038-1,存储空间随精度不同而不同。 3、货币数据类型: ①money:-263~263-1,由两个4字节整数构成,前一个4字节表示货币的整数部分,后一个表示小数部分,可以精确到万分之一的货币单位。 ②smallmoney:-214,748.3648~214,748.3647,由两个2字节整数构成可以精确到万分之一的货币单位。 4、日期/时间数据类型: ①datetime:从1753年1月1日到9999年12月31日,占8个字节 ②smalldatetime:从1900年1月1日到2079年6月6日,占4个字节。 注意:输入时日期与时间之间用空格隔开,时间格式:00:00:005、字符数据类型: (1)char:每个字符占用1个字节,使用固定长度存储字符。其定义形式为:char(n),n的取值为1~8000。默认n的值为1。 (2)varchar:可以存储长达8000个字符的可变长度字符串,根据输入数据的实际长度而变化。 定义形式为:varchar(n) (3)nchar:采用Unicode(统一字符编码标准)字符集,每个Unicode字符用两个字节为一个存储单位。 其定义形式为:nchar(n),n的取值范围是1~4000。 (4)nvarchar:存储可变长度的双字节字符。 (5)text:用于存储数量庞大的变长字符数据。最大长度可达231-1个字符。 (6)ntext:存储可变长度的双字节字符,最多为230-1。分析下面两表中各字段的类型:(二)用户自定义数据类型说明: ①用户自定义数据类型并不是真正的数据类型,是在系统数据类型的基础上创建的。 ②凡是包含了诸如“()”或“,”等分隔符的系统数据类型,必须使用引号括起来。 ③在用户数据库创建的用户自定义数据类型只会出现在该用户数据库中,且命名必须惟一。 2、删除 语法格式:sp_droptypetype_name 如:sp_droptypename 说明:如果用户自定义数据类型正被某表中的某列使用,则不能立即删除它,必须先删除使用该数据类型的表。三、数据表的创建“学生情况表”与“学生成绩表”的表结构如下:说明:①精度和小数位数:精度是列的总长度,包括整数部分和小数部分的长度之和,但不包括小数点;小数位数指定小数点后面的长度。 ②默认值:指定列的默认值。 ③标识:指定列是否是标识列。一个表只能创建一个标识列。必须同时指定种子和增量,或者两者都不指定。默认值(1,1)。能够成为标识列的数据类型有int、smallint、tinyint、numeric和decimal等系统数据类型;如果其数据类型为numeric和decimal,不允许出现小数位数。 ④标识种子:指定标识列的初始值。 ⑤标识递增量:指定标识列的增量值。⑥RowGuid:指定列是否使用全局唯一标识符。尽管IDENTITY属性自动为表生成行号,但不同表的标识符列可以生成相同的行号。这是因为IDENTITY属性只须在所使用的表上保持唯一。如果应用程序需要生成在整个数据库或世界各地所有网络计算机的全部数据库中均为唯一的标识符列,须使用ROWGUIDC