《数据库实现》PPT课件.ppt

上传人:小飞机 文档编号:5519510 上传时间:2023-07-16 格式:PPT 页数:51 大小:1.84MB
返回 下载 相关 举报
《数据库实现》PPT课件.ppt_第1页
第1页 / 共51页
《数据库实现》PPT课件.ppt_第2页
第2页 / 共51页
《数据库实现》PPT课件.ppt_第3页
第3页 / 共51页
《数据库实现》PPT课件.ppt_第4页
第4页 / 共51页
《数据库实现》PPT课件.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《《数据库实现》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库实现》PPT课件.ppt(51页珍藏版)》请在三一办公上搜索。

1、第三章,SQL Server数据库的实现,本章目标,创建和配置SQL Server数据库使用企业管理器创建数据库表掌握建库的SQL语句设置表的主键、外键和建立表之间的关系为表增加约束掌握建表的SQL语句掌握加约束的SQL语句,数据库和应用程序,数据库服务器,响应和提供数据,应用程序,数据库,操作和查询,数据库的基本概念,数据库的基本概念,数 据 表存储过程视 图.,产品数据库,表,数据库就是“数据”的“仓库”数据库由表、关系以及操作对象组成数据存放在表中,数据库的基本概念,SQL Server中的数据库,创建数据库 3-1,数据库文件和事务日志文件,创建数据库 3-2,Northwind的物理

2、文件结构,创建数据库 3-3,演示创建数据库,删除数据库,创建数据库,CREATE DATABASE 数据库名 ON PRIMARY(,n)LOG ON(,n),T-SQL创建数据库的语法:,主文件组,可选参数,默认,创建数据库示例 1,CREATE DATABASE stuDB ON PRIMARY-默认就属于PRIMARY主文件组,可省略(NAME=stuDB_data,-主数据文件的逻辑名 FILENAME=D:projectstuDB_data.mdf,-主数据文件的物理名 SIZE=5mb,-主数据文件初始大小 MAXSIZE=100mb,-主数据文件增长的最大值 FILEGROWT

3、H=15%-主数据文件的增长率)LOG ON(NAME=stuDB_log,FILENAME=D:projectstuDB_log.ldf,SIZE=2mb,FILEGROWTH=1MB)GO,数据文件的具体描述,日志文件的具体描述,演示创建数据库1:一个数据文件和一个日志文件,创建数据库示例 2,CREATE DATABASE employees ON(/*-主数据文件的具体描述-*/NAME=employee1,FILENAME=D:projectemployee1_Data.mdf,SIZE=10,FILEGROWTH=10%),(/*-次要数据文件的具体描述-*/NAME=employ

4、ee2,FILENAME=D:projectemployee2_Data.ndf,SIZE=20,MAXSIZE=100,FILEGROWTH=1),LOG ON(/*-日志文件1的具体描述-*/NAME=employeelog1,FILENAME=D:projectemployeelog1_Log.ldf,SIZE=10,FILEGROWTH=1),(/*-日志文件2的具体描述-*/NAME=employeelog2,FILENAME=D:projectemployeelog2_Log.ldf,SIZE=10,MAXSIZE=50,FILEGROWTH=1)GO,演示创建数据库2:多个数据文

5、件和多个日志文件,删除数据库,如果SQL Server中已存在数据库stuDB,运行下列语句,会出现什么问题?,CREATE DATABASE stuDBON(.)LOG ON(.)GO,演示:再次运行示例1,如何知道服务器上已有的数据库,USE master-设置当前数据库为master,以便访问sysdatabases表GOIF EXISTS(SELECT*FROM sysdatabases WHERE name=stuDB)DROP DATABASE stuDBCREATE DATABASE stuDBON(.)LOG ON()GO,删除数据库,删除数据库的语法:,DROP DATABA

6、SE 数据库名,EXISTS()语句:检测是否存在stuDB数据库如果存在stuDB数据库,则删除,创建数据库表-1,SQL Server的数据类型,思考,电话号码一般使用什么数据类型存储?性别一般使用什么数据类型存储?年龄信息一般使用什么数据类型存储?照片信息一般使用什么数据类型存储?薪水一般使用什么数据类型存储?,创建数据库表-2,思考,学员姓名允许为空吗?家庭地址允许为空吗?电子邮件信息允许为空吗?考试成绩允许为空吗?,创建数据库表-3,思考,在主键列输入的数值,允许为空吗?一个表可以有多个主键吗?在一个学校数据库中,如果一个学校内允许重名的学员,但是一个班级内不允许学员重名,可以组合班

7、级和姓名两个字段一起来作为主键吗?,选择主键的原则,最少性尽量选择单个键作为主键稳定性尽量选择数值更新少的列作为主键,创建数据库表-4,表中没有合适的列作为主键怎么办?,思考,标识列允许为字符数据类型吗?如果标识列A的初始值为1,增长量为2,则输入三行数据以后,再删除两行,下次再输入数据行的时候,标识值从多少开始?,创建数据库表-5,创建数据库表-6,演示建立主-外键关系,关系图,演示关系图,主表和从表,1、当主表中没有对应的记录时,不能将记录添加到子表成绩表中不能出现在学员信息表中不存在的学号;2、不能更改主表中的值而导致子表中的记录孤立把学员信息表中的学号改变了,学员成绩表中的学号也应当随

8、之改变;3、子表存在与主表对应的记录,不能从主表中删除该行不能把有成绩的学员删除了4、删除主表前,先删子表先删学员成绩表、后删除学员信息表,创建数据库表-7,演示建立检查约束,创建数据库表完毕!,输入数据项,验证主键、主外键关系、检查约束,总结,创建数据库表需要:确定表的列名、数据类型、是否允许为空,还需要确定主键、必要的默认值、标识列和检查约束如果建立了主表和子表的关系,则:子表中的相关项目的数据,在主表中必须存在;主表中相关项的数据更改了,则子表对应的数据项也应当随之 更改;在删除子表之前,不能够删除主表;,使用SQL Server创建表,USE stuDB-将当前数据库设置为stuDB

9、GOCREATE TABLE stuInfo/*-创建学员信息表-*/(stuName VARCHAR(20)NOT NULL,-姓名,非空(必填)stuNo CHAR(6)NOT NULL,-学号,非空(必填)stuAge INT NOT NULL,-年龄,INT类型默认为4个字节 stuID NUMERIC(18,0),-身份证号 stuSeat SMALLINT IDENTITY(1,1),-座位号,自动编号 stuAddress TEXT-住址,允许为空,即可选输入)GO,NUMERIC(18,0)代表18位数字,小数位数为0,演示:创建学员信息表stuInfo,IDENTITY(起始

10、值,递增量),建表示例 2,CREATE TABLE stuMarks(ExamNo CHAR(7)NOT NULL,-考号 stuNo CHAR(6)NOT NULL,-学号 writtenExam INT NOT NULL,-笔试成绩 LabExam INT NOT NULL-机试成绩)GO,演示:创建学员成绩表 stuMarks,删除表,如果当前数据库中已存在stuInfo表,再次创建时系统将提示出错。如何解决呢?,删除表,删除表的语法:,DROP TABLE 表名,USE stuDB-将当前数据库设置为stuDB,以便在stuDB数据库中建表GOIF EXISTS(SELECT*FRO

11、M sysobjects WHERE name=stuInfo)DROP TABLE stuInfoCREATE TABLE stuInfo/*-创建学员信息表-*/(.)GO,数据完整性,数据存放在表中“数据完整性的问题大多是由于设计引起的”创建表的时候,就应当保证以后数据输入是正确的错误的数据、不符合要求的数据不允许输入,完整性包括2-1,输入的类型是否正确?年龄必须是数字输入的格式是否正确?身份证号码必须是18位是否在允许的范围内?性别只能是”男”或者”女”是否存在重复输入?学员信息输入了两次是否符合其他特定要求?信誉值大于5的用户才能够加入会员列表,完整性包括2-2,实体完整性,约束方

12、法:唯一约束、主键约束、标识列,域完整性,约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束,引用完整性,约束方法:外键约束,自定义完整性,约束方法:规则、存储过程、触发器,SQL Server的约束,约束的目的:确保表中数据的完整型常用的约束类型:主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束默认约束(Default Constraint):某列的默认值,

13、如我们的男性学员较多,性别默认为“男”外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的那列,添加约束,添加约束的语法:,ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型 具体的约束说明,约束名的取名规则推荐采用:约束类型_约束字段主键(Primary Key)约束:如 PK_stuNo唯一(Unique Key)约束:如 UQ_stuID默认(Default Key)约束:如 DF_stuAddress检查(Check Key)约束:如 CK_stuAge外键(Foreign Key)约束:如 FK_stuNo,添加约

14、束示例,ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY(stuNo)ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE(stuID)ALTER TABLE stuInfo ADD CONSTRAINT DF_stuAddress DEFAULT(地址不详)FOR stuAddressALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40)ALTER TABLE stuMarks ADD

15、CONSTRAINT FK_stuNo FOREIGN KEY(stuNo)REFERENCES stuInfo(stuNo)GO,演示:给学员信息表stuInfo添加约束,添加主键约束(stuNo作为主键),添加唯一约束(因为每人的身份证号全国唯一),添加默认约束(如果地址不填,默认为“地址不详”),添加检查check约束,要求年龄只能在1540岁之间,添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo),添加约束示例,演示:查看约束结果,删除约束,如果错误地添加了约束,我们还可以删除约束 删除约束的语法,ALTER TABLE 表名 DROP CONSTR

16、AINT 约束名,例如:删除stuInfo表中地址默认约束ALTER TABLE stuInfo DROP CONSTRAINT DF_stuAddress,总结,SQL Server创建表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)保证的过程实体完整性数据行不能存在重复,引用完整性要求子表中的相关项必须在主表中存在域完整性实现了对输入到特定列的数值的限制SQL Server中存在五种约束,分别是:主键约束、外键约束、检查约束、默认约束和唯一性约束(唯一性约束将在后续课程中使用SQL语句实现),总结,数据库的物理实现一般包括:创建数据库创建表添加各种约束创建数据库的登录帐户并授权创建数据库或表时一般需要预先检测是否存在该对象数据库从master系统数据库的sysdatabases表中查询 表从该数据库的系统表sysobjects表中查询,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号