版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 第四章第四章 SQL Server数据库表管理 2 回顾 q数据库的设计步骤 q数据的规范化 qSQL Server数据库的组织结构 主数据文件、辅(次)数据文件、事务日志文件主数据文件、辅(次)数据文件、事务日志文件 q文件和文件组 q用企业管理器创建、删除和修改数据库 q用T-SQL创建、删除和修改数据库 qCreate database qAlter database qDrop database 3 本章目标 q理解SQL Server数据库表的数据组织方式; q理解SQL Server 中的各种数据类型,建立用户定 义的数据类型 q使用企业管理器创建数据库表 q设置表的主键、外键
2、和建立表之间的关系 q为表增加约束 4 数据库和表 航班管理航班管理数据库数据库 CREATE DATABASE 表是库中最重要的对象,用于存储数据。每个新建的库中已 经包含一些系统表,用于存储数据库本身的信息。用户还 必须创建自己的表存储数据。 5 数据类型p30 系统定义数据类型系统定义数据类型 char varchar nchar nvarchar text ntext image money smallmoney binary varbinar y Uniqueidentifi er (GUID) timestamp sql_varian t bit int smallint tiny
3、int bigint numeric decimal Float real SQL Server 2000 数据类型数据类型 Tabl e 全局惟一标识数据类全局惟一标识数据类 型型GUID,常使用,常使用 newid()函数产生函数产生 时间戳数据类型,其值不用设置,会时间戳数据类型,其值不用设置,会 随着表中记录的修改面自动更新,随着表中记录的修改面自动更新, 其值在数据库范围内是惟一的。其值在数据库范围内是惟一的。 6 SQL Server的数据类型 分类备注和说明数据类型说明 二进制数据类型存储非子符和文本的数据Image可用来存储图像 文本数据类型字符数据包括任意字母、符 号或数字字
4、符的组合 Char固定长度的非 Unicode 字符 数据 Varchar可变长度非 Unicode 数据 Nchar固定长度的 Unicode 数据 Nvarchar可变长度 Unicode 数据 Text存储长文本信息 Ntext存储可变长度的长文本 日期和时间日期和时间在单引号内输入Datetime 日期和时间 数字数据该数据仅包含数字,包括正 数、负数以及分数 int smallint 整数 float real 数字 货币数据类型用于十进制货币值Money Bit数据类型表示是/否的数据Bit存储布尔数据类型 7 思考 q 电话号码一般使用什么数据类型存储? q 性别一般使用什么数据
5、类型存储? q 年龄信息一般使用什么数据类型存储? q 照片信息一般使用什么数据类型存储? q 薪水一般使用什么数据类型存储? 8 自定义数据类型 用户可以根据实际需要创建数据类型,用企业管理器或系统用户可以根据实际需要创建数据类型,用企业管理器或系统 存贮过程存贮过程sp_addtype都可创建都可创建,用户建立的数据类型可用于用户建立的数据类型可用于 定义字段等。定义字段等。 删除删除 创建创建 EXEC sp_addtype City, nvarchar(15), NULL EXEC sp_addtype PostCode, nvarchar(6), NULL EXEC sp_addty
6、pe NCode, nvarchar(18), NULL EXEC sp_droptype city 9 论数据完整性-1 数据完整性数据完整性 可靠性可靠性准确性准确性 10 论数据完整性 -2 q 数据存放在表中 q “数据完整性的问题大多是由于设计引起的” q 创建表的时候,就应当保证以后数据输入是正确的 错误的数据、不符合要求的数据不允许输入 创建表:保证数据的完整性创建表:保证数据的完整性 = 实施完整性约束实施完整性约束 11 完整性包括2-1 q 输入的类型是否正确? 年龄必须是数字 q 输入的格式是否正确? 身份证号码必须是18位 q 是否在允许的范围内? 性别只能是”男”或者
7、”女” q 是否存在重复输入? 学员信息输入了两次 q 是否符合其他特定要求? 信誉值大于5的用户才能够加入会员列表 q 列值要求(约束) 整行要求(约束) 12 完整性包括2-2 域完整性 实体完整性 引用完整性 自定义完整性 13 实体完整性 河南新乡赵可以 河南新乡张丽鹃 江西南昌雷铜 湖南新田吴兰 山东定陶李山 . .地址地址姓名姓名学号学号 江西南昌雷铜 约束方法:唯一约束、主键约束、标识列约束方法:唯一约束、主键约束、标识列 14 域完整性 河南新乡赵可以 河南新乡张丽鹃 江西南昌雷铜 湖南新田吴兰 山东定陶李山 . .地址地址姓名姓名学号学号 湖北江门李亮8700000000 约
8、束方法:限制数据类型、检查约束、外键约束、约束方法:限制数据类型、检查约束、外键约束、 默认值、非空约束默认值、非空约束 15 引用完整性 河南新乡赵可以 河南新乡张丽鹃 江西南昌雷铜 湖南新田吴兰 山东定陶李山 地址地址姓名姓名学号学号 98数学 约束方法:外键约束约束方法:外键约束 科目学号分数 数学88 数学74 语文67 语文81 数学98 16 自定义完整性 AV121322乔峰CV0016 AV372133玄痛CV0015 AV378291沙悟净AV0014 AV378290猪悟能AV0013 AV378289AV378289孙悟空AV0012 . .会员证会员证用户姓名用户姓名用
9、户编号用户编号 约束方法:规则、存储过程、触发器约束方法:规则、存储过程、触发器 帐号姓名信用. 00192孙悟空7 00288猪悟能6 12333段誉8 90111虚竹40 93000岳不群-10 触发器:检查信用值 17 创建数据库表 q 表是包含数据库中所有数据的数据库对象,用来存储各种 各样的信息,是由行和列组成的。 q 创建表的过程主要就是定义表的列(字段)的过程。在 SQL Server 2000中,每个数据库中最多可以创建200万个 表,每个表最多可以定义1024个字段。在同一数据库的不 同表中,可以有相同的字段,但在同一个表中不允许有相 同的字段。 q 创建数据库表的方法 q
10、第一种方法是利用企业管理器创建表; q 另一种方法是利用Transact-SQL语句中的create命令创建表。 18 表操作 在企业管理器中演示打开表、数据输入等操作 19 用企业管理器创建数据库表-1 20 用企业管理器创建数据库表-2 21 思考 q 学员姓名允许为空吗? q 家庭地址允许为空吗? q 电子邮件信息允许为空吗? q 考试成绩允许为空吗? 22 创建数据库表-3 23 思考 q 在主键列输入的数值,允许为空吗? q 一个表可以有多个主键吗? q 在一个学校数据库中,如果一个学校内允许重名的学员, 但是一个班级内不允许学员重名,可以组合班级和姓名两 个字段一起来作为主键吗?
11、24 选择主键的原则 q最少性 q尽量选择单个键作为主键 q稳定性 q尽量选择数值更新少的列作为主键 25 创建数据库表-4 q表中没有合适的列作为主键怎么办? 26 思考 q 标识列允许为字符数据类型吗? q 如果标识列A的初始值为1,增长量为2,则输入三行数据 以后,再删除两行,下次再输入数据行的时候,标识值从 多少开始? 27 创建数据库表-5 28 创建数据库表-6 演示建立主-外键关系 29 关系图 演示关系图 30 主表和从表 q 1、当主表中没有对应的记录时,不能将记录添加到子表 成绩表中不能出现在学员信息表中不存在的学号; q 2、不能更改主表中的值而导致子表中的记录孤立 把学
12、员信息表中的学号改变了,学员成绩表中的学号也应当随之 改变; q 3、子表存在与主表对应的记录,不能从主表中删除该行 不能把有成绩的学员删除了 q 4、删除主表前,先删子表 先删学员成绩表、后删除学员信息表 31 创建数据库表-7 演示建立检查约束 32 创建数据库表完毕! 输入数据项,验证主键、主外键关系、检查约束输入数据项,验证主键、主外键关系、检查约束 33 总结 q SQL Server创建表的过程是规定数据列的属性的过程,同 时也是实施数据完整性(包括实体完整性、引用完整性和 域完整性等)保证的过程 q 实体完整性数据行不能存在重复,引用完整性要求子表中 的相关项必须在主表中存在 q
13、 域完整性实现了对输入到特定列的数值的限制 q SQL Server中存在五种约束,分别是:主键约束、外键约 束、检查约束、默认约束和唯一性约束(唯一性约束将在 后续课程中使用SQL语句实现) 34 总结 q 创建数据库表需要:确定表的列名、数据类型、是否允许 为空,还需要确定主键、必要的默认值、标识列和检查约 束 q 如果建立了主表和子表的关系,则: 子表中的相关项目的数据,在主表中必须存在; 主表中相关项的数据更改了,则子表对应的数据项也应当随之 更改; 在删除子表之前,不能够删除主表; 35 第四章第四章 数据库表管理 用TSQL创建表和实施数据完整性 36 目标目标 q 会用会用T-S
14、QL命令建立、修改和删除表命令建立、修改和删除表 q 用用TSQL实现实体完整性约束、引用完整性约束和域完整性实现实体完整性约束、引用完整性约束和域完整性 约束;约束; q 用用TSQL定义和使用主键、外键、检查、唯一和默认约束;定义和使用主键、外键、检查、唯一和默认约束; 37 使用 T-SQL 创建表 CREATE TABLE Categories (CategoryID CategoryName Description Picture int IDENTITY(1,1) nvarchar(15) ntext image , NOT NULL, NULL, NULL) Create Tab
15、le 表名(各字段定义列表)表名(各字段定义列表) CREATE TABLE Categories (CategoryID int IDENTITY(1,1), CategoryName nvarchar(15) NOT NULL, Description ntext NULL, Picture image NULL) 38 使用 T-SQL 删除表 DROP TABLE 表名表名 DROP TABLE Airlines_Master 演示在企业管理器内更改和删除表演示在企业管理器内更改和删除表 39 使用 T-SQL 更新表结构 有两种方法更新表结构有两种方法更新表结构: : 企业管理器企业
16、管理器 T-SQLT-SQL语句语句 使用使用T-SQLT-SQL修改表结构的语法为修改表结构的语法为: : ALTER TABLE ALTER TABLE ALTER COLUMN ALTER COLUMN |ADD column_name |ADD column_name |DROP COLUNM |DROP COLUNM |ADD CONSTRAINT |ADD CONSTRAINT 40 使用 T-SQL 更新表结构 ALTER TABLE MyTable ALTER COLUMN NullCOl NVARCHAR(20) NOT NULL ALTER TABLE jobs ADD H
17、IRE_DATE DATETIME ALTER TABLE Doc_ED DROP COLUMN Column_B ALTER TABLE Doc_ED WITH NOCHECK ADD CONSTRAINT Exd_Check CHECK (Column_a 1) 41 实体完整性实现 - 1 主键约束主键约束primary key CREATE TABLE jobs( Job_id smallint PRIMARY KEY, job_desc varchar(50) NOT NULL) q 是一列或几列的组合,其值可以惟一标识表中的行,在这样的是一列或几列的组合,其值可以惟一标识表中的行,
18、在这样的 列或列组合上可定义主键约束列或列组合上可定义主键约束 q 主键列不能为空,值不能重复;主键列不能为空,值不能重复; q 一个表只能定义一个主键约束;一个表只能定义一个主键约束; ALTER TABLE 表名 ADD CONSTRAINT PRIMARY KEY (列名列表) ALTER TABLE Reservation ADD CONSTRAINT PK_const PRIMARY KEY (PNR_NO) 42 q 是一列或几列的组合,而且不是主键;是一列或几列的组合,而且不是主键; q 可以为表定义多个唯一约束,而只能为表定义一个主键约束;可以为表定义多个唯一约束,而只能为表定
19、义一个主键约束; q 该列允许为空值;该列允许为空值; q 唯一约束可以定义在允许空值的列上,而主键约束只能定义唯一约束可以定义在允许空值的列上,而主键约束只能定义 在不允许为空值的列上;在不允许为空值的列上; 实体完整性实现 - 2 唯一约束唯一约束UNIQUE CREATE TABLE jobs( Job_id smallint UNIQUE,Job_Name varchar(30) 43 实体完整性实现 - 3 标识列标识列 为整型,其值自动产生,给出标识种子(起始值)和增量,此类字段 也实现了实体完整性 CREATE TABLE jobs( Job_id smallint IDENTI
20、RY(2,1) PRIMARY KEY) 全球唯一标示数据类型,也可实现实体完整性 CREATE TABLE Customer (CustID uniqueidentifier NOT NULL DEFAULT NEWID(), CustName char(30) NOT NULL) Uniqueidentifier数据类型和数据类型和NEWID 函数函数 44 域完整性实现-1 自定义数据类型自定义数据类型 数据类型约束数据类型约束 外键约束外键约束 非空约束非空约束 默认和检查约束默认和检查约束 45 域完整性实现-3 USE Northwind CREATE TABLE ABC (ASD int Default 8, ASDE varchar(20) Default UNKNOWN) USE Northwind ALTER TABLE Customers ADD CONSTRAINT DF_contactname DEFAULT UNKNOWN FOR ContactName 使用默认约束使用默认约束DEFAULT 默认约束可用于给列赋予一个默认常量值,而用户不需要 为这个列输入值。Default 约束不能用于identity列。 46 约束和完整性 完整性类型完整性类型约束类型约束类型 域完整性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年固定资产互借互贷协议样式
- 2024年建筑多孔砖买卖协议范本
- 安装工程服务协议:2024年项目
- 承租公司合同范本
- 2024年度高品质粮油供应合作协议
- 2024五保入院条款及细则协议
- 多方股东权益变更协议2024
- 齐齐哈尔大学《历史学科课程标准与教材研究》2023-2024学年第一学期期末试卷
- 齐齐哈尔大学《绘画造型视觉表达研究》2021-2022学年第一学期期末试卷
- 电器设备安装服务协议模板2024年
- 2024年廖俊波同志先进事迹心得体会教师4篇
- 高考物理系统性复习 (能力提高练) 第五节 实验:探究小车速度随时间变化的规律(附解析)
- 眼科护理中的孕妇与产妇护理
- 业主业主委员会通用课件
- 了解金融市场和金融产品
- 南京理工大学2015年613物理化学(含答案)考研真题
- 初中数学应用题解题思路分享
- 安全生产科技创新与应用
- 人工智能在文化传承与遗产保护中的价值实现
- 2024年汽修厂开业计划书
- ISTA标准-2A、2B、2C系列解读(图文)
评论
0/150
提交评论