文档介绍:SQL Server 2005表的创建与操作
教学目标:
了解SQL Server 2005表的基本知识;掌握表的创建、修改和删除操作;熟练掌握记录的插入、删除和修改操作;了解索引的基本知识,掌握索引的创建和删除操作。
SQL Server 2005表的基本知识
表的基本概念
在为一个数据库设计表之前,应该完成需求分析,确定概念模型,将概念模型转换为关系模型,关系模型中的每一个关系对应数据库中的一个表。
表是数据库对象,用于存储实体集和实体间联系的数据。SQL Server 2005表主要由列和行构成。
列:每一列用来保存对象的某一类属性。
行:每一行用来保存一条记录,是数据对象的一个实例。
例如:教务管理数据库EDUC中的学生Student表。
表的类型
SQL Server 2005除了提供了用户定义的标准表外,还提供了一些特殊用途的表:分区表、临时表和系统表。
分区表
当表很大时,可以水平地把数据分割成一些单元,放在同一个数据库的多个文件组中。用户可以通过分区快速地访问和管理数据的某部分子集而不是整个数据表,从而便于管理大表和索引。
临时表
有两种临时表:局部临时表和全局临时表。局部临时表只是对一个数据库实例的一次连接中的创建者是可见的。在用户断开数据库的连接时,局部临时表就被删除。全局临时表创建后对所有的用户和连接都是可见的,并且只有所有的用户都断开临时表相关的表时,全局临时表才会被删除。
系统表
系统表用来保存一些服务器配置信息数据,用户不能直接查看和修改系统表,只有通过专门的管理员连接才能查看和修改。不同版本的数据库系统的系统表一般不同,在升级数据库系统时,一些应用系统表的应用可能需要重新改写。
表的数据类型
数据类型
系统数据类型
应用说明
二进制
image
图像、视频、音乐
Binary[(n)]
标记或标记组合数据
varbinary[(n)]
同上(变长)
精确
数字
精确整数
bigint
长整数-263~263-1
int
整数-231~231-1
smallint
短整数-215~215-1
tinyint
更小的整数0~255
精确小数
Decimal[(p[,s])]
小数,p: 最大数字位数s: 最大小数位数
numeric[(p[,s])]
同上
近似数字
float[(n)]
-+308~+308
real
-+38~+38
字符
char[(n)]
定长字符型
varchar[(n)]
变长字符型
text
变长文本型,存储字符长度大于8000的变长字符
Unicode
nchar[(n)]
unicode字符(双倍空间)
nvarchar[(n)]
unicode字符(双倍空间)
ntext
unicode字符(双倍空间)
日期和时间
Datetime
1753-1-1~9999-12-31(12:00:00)
smalldatetime
1900-1-1~2079-6-6
货币
Money
-263~263-1(保留小数点后四位)
smallmoney
-231~231-1(保留小数点后四位)
特殊
bit
0/1,判定真或假
Timestamp
自动生成的惟一的二进制数,修改该行时随之修改,反应修改记录的时间
uniqueidentifier
全局惟一标识(GUID),十六进制数字,由网卡/处理器ID以及时间信息产生,用法同上
用户自定义
用户自行命名
用户可创建自定义的数据类型
表的完整性体现
主键约束体现实体完整性,即主键各列不能为空且主键作为行的惟一标识
外键约束体现参照完整性
默认值和规则等体现用户定义的完整性
表的设计
设计表时需要确定如下内容:
表中需要的列以及每一列的类型(必要时还要有长度)
列是否可以为空
是否需要在列上使用约束、默认值和规则
需要使用什么样的索引
哪些列作为主键
创建表
使用SSMS创建表
在【对象资源管理器】窗口中,展开“数据库”节点,再展开所选择的具体数据库节点,右击“表”节点,选择“新建表”命令,进入表设计器即可进行表的定义。
例如:在教务管理中的选课数据库(EDUC)中创建学生表Student, 课程表Course, 选课表SC。
教务管理中的选课数据模型为:
Student(SID,Sname,Sex,Birthday,Specialty)
PK:SID
Course(CID, Cname,Credit)
PK:CID
SC(SID, CID,Grade)
PK:SID, CID
FK