TP数据库的实现.ppt

上传人:小飞机 文档编号:6522094 上传时间:2023-11-08 格式:PPT 页数:31 大小:1.32MB
返回 下载 相关 举报
TP数据库的实现.ppt_第1页
第1页 / 共31页
TP数据库的实现.ppt_第2页
第2页 / 共31页
TP数据库的实现.ppt_第3页
第3页 / 共31页
TP数据库的实现.ppt_第4页
第4页 / 共31页
TP数据库的实现.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

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

1、2,回顾,在需求分析阶段,设计数据库的一般步骤为?实体的映射关系有哪些?请简要说明三大范式的含义?,3,目标,掌握建库的SQL语句 掌握建表的SQL语句 掌握加约束的SQL语句 掌握创建安全帐户的SQL语句,4,回顾数据库的基础知识,数据库文件的组成:主数据文件:*.mdf次要数据文件:*.ndf日志文件:*.ldf数据库的其他属性:文件存放位置,分配的初始空间,属于哪个文件组文件增长:可以按百分比或实际大小指定增长速度文件容量设置:可以指定文件增长的最大值或不受限,5,创建数据库,CREATE DATABASE 数据库名 ON PRIMARY(,n)LOG ON(,n),T-SQL创建数据库

2、的语法:,主文件组,可选参数,默认,6,创建数据库示例 1,CREATE DATABASE stuDB ON PRIMARY-默认就属于PRIMARY主文件组,可省略(NAME=stuDB_data,-主数据文件的逻辑名 FILENAME=D:projectstuDB_data.mdf,-主数据文件的物理名 SIZE=5mb,-主数据文件初始大小 MAXSIZE=100mb,-主数据文件增长的最大值 FILEGROWTH=15%-主数据文件的增长率)LOG ON(NAME=stuDB_log,FILENAME=D:projectstuDB_log.ldf,SIZE=2mb,FILEGROWTH

3、=1MB)GO,数据文件的具体描述,日志文件的具体描述,7,创建数据库示例 2,CREATE DATABASE employees ON(/*-主数据文件的具体描述-*/NAME=employee1,FILENAME=D:projectemployee1_Data.mdf,SIZE=10,FILEGROWTH=10%),(/*-次要数据文件的具体描述-*/NAME=employee2,FILENAME=D:projectemployee2_Data.ndf,SIZE=20,MAXSIZE=100,FILEGROWTH=1),LOG ON(/*-日志文件1的具体描述-*/NAME=employe

4、elog1,FILENAME=D:projectemployeelog1_Log.ldf,SIZE=10,FILEGROWTH=1),(/*-日志文件2的具体描述-*/NAME=employeelog2,FILENAME=D:projectemployeelog2_Log.ldf,SIZE=10,MAXSIZE=50,FILEGROWTH=1)GO,8,删除数据库,如果SQL Server中已存在数据库stuDB,运行下列语句,会出现什么问题?,CREATE DATABASE stuDBON(.)LOG ON(.)GO,演示:再次运行示例1,9,USE master-设置当前数据库为maste

5、r,以便访问sysdatabases表GOIF EXISTS(SELECT*FROM sysdatabases WHERE name=stuDB)DROP DATABASE stuDBCREATE DATABASE stuDBON(.)LOG ON()GO,删除数据库,删除数据库的语法:,DROP DATABASE 数据库名,EXISTS()语句:检测是否存在stuDB数据库如果存在stuDB数据库,则删除,10,回顾表的基础知识,建表的基本步骤:确定表中有哪些列确定每列的数据类型给表添加各种约束创建各表之间的关系SQL Server中的数据类型,整型数据:int smallint 浮点数据:

6、float numeric,字符数据固定长度:char(6)可变长度:varchar(10)unicode编码:nchar(10),布尔数据(真/假)bit:1/0,货币数据 money,日期数据 datetime,11,创建表,建表的语法,CREATE TABLE 表名(字段1 数据类型 列的特征,字段2 数据类型 列的特征,.),列的特征:包括该列是是否为空(NULL)、是否是标识列(自动编号)、是否有默认值、是否为主键等。,12,建表示例 1,USE stuDB-将当前数据库设置为stuDB GOCREATE TABLE stuInfo/*-创建学员信息表-*/(stuName VARC

7、HAR(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,IDENTITY(起始值,递增量),13,建表示例 2,CREATE TABLE stuMarks(ExamNo CHAR(7)NOT NULL,-考号

8、stuNo CHAR(6)NOT NULL,-学号 writtenExam INT NOT NULL,-笔试成绩 LabExam INT NOT NULL-机试成绩)GO,演示:创建学员成绩表 stuMarks,14,删除表,如果当前数据库中已存在stuInfo表,再次创建时系统将提示出错。如何解决呢?,15,删除表,删除表的语法:,DROP TABLE 表名,USE stuDB-将当前数据库设置为stuDB,以便在stuDB数据库中建表GOIF EXISTS(SELECT*FROM sysobjects WHERE name=stuInfo)DROP TABLE stuInfoCREATE

9、TABLE stuInfo/*-创建学员信息表-*/(.)GO,16,回顾SQL Server的约束,约束的目的:确保表中数据的完整型常用的约束类型:主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束默认约束(Default Constraint):某列的默认值,如我们的男性学员较多,性别默认为“男”外键约束(Foreign Key Constraint):用于两表间建立

10、关系,需要指定引用主表的那列,17,添加约束,添加约束的语法:,ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型 具体的约束说明,约束名的取名规则推荐采用:约束类型_约束字段主键(Primary Key)约束:如 PK_stuNo唯一(Unique Key)约束:如 UQ_stuID默认(Default Key)约束:如 DF_stuAddress检查(Check Key)约束:如 CK_stuAge外键(Foreign Key)约束:如 FK_stuNo,18,添加约束示例,ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo P

11、RIMARY 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 CONSTRAINT FK_stuNo FOREIGN KEY(stuNo)REFERENCES

12、stuInfo(stuNo)GO,添加主键约束(stuNo作为主键),添加唯一约束(因为每人的身份证号全国唯一),添加默认约束(如果地址不填,默认为“地址不详”),添加检查check约束,要求年龄只能在1540岁之间,添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo),19,删除约束,如果错误地添加了约束,我们还可以删除约束 删除约束的语法,ALTER TABLE 表名 DROP CONSTRAINT 约束名,例如:删除stuInfo表中地址默认约束ALTER TABLE stuInfo DROP CONSTRAINT DF_stuAddress,20,回顾

13、SQL Server的安全模型,21,登录方式回顾,登录验证有两种方式:SQL身份验证:适合于非windows平台的用户或Internet用户,需要提供帐户和密码Windows身份验证:适合于windows平台用户,不需要提供密码,和windows集成验证登录帐户相应有两种:SQL 帐户和Windows帐户,22,创建登录,添加 SQL登录帐户 EXEC sp_addlogin zhangsan,1234,EXEC表示调用存储过程,存储过程类似C语言的函数,内置的系统管理员 帐户sa密码默认为空,建议修改密码,域名用户名,用户名,密码,23,创建登录,24,创建数据库用户,创建数据库用户需要调

14、用系统存储过程sp_grantdbaccess,其用法为:,EXEC sp_grantdbaccess 登录帐户名,数据库用户名 其中,“数据库用户“为可选参数,默认为登录帐户,即数据库用户默认和登录帐户同名。,USE stuDBGOEXEC sp_grantdbaccess jbtrainingS26301,S26301DBUser EXEC sp_grantdbaccess zhangsan,zhangsanDBUser,在stuDB数据库中添加两个用户,25,创建数据库用户,26,向数据库用户授权,delete FROM Employees,SELECT*FROM Employees,2

15、7,权限的操作 2-1,授权的语法为:GRANT 权限 ON 表名 TO 数据库用户,USE stuDBGO/*-为zhangsanDBUser分配对表stuInfo的select,insert,update权限-*/GRANT select,insert,update ON stuInfo TO zhangsanDBUser/*-为S26301DBUser分配建表的权限-*/GRANT create table TO S26301DBUser,28,权限的操作2-2,删除权限的语法为:Revoke 权限 ON 表名 From 数据库用户,USE stuDBGO/*-删除zhangsanDBU

16、ser对表stuInfo的select,insert,update权限-*/Revoke select,insert,update ON stuInfo From zhangsanDBUser/*-删除 S26301DBUser建表的权限-*/Revoke create table From S26301DBUser,29,权限的操作2-3,禁用权限的语法为:Deny 权限 ON 表名 TO 数据库用户,USE stuDBGO/*-禁用zhangsanDBUser对表stuInfo的select,insert,update权限-*/Deny select,insert,update ON stuInfo TO zhangsanDBUser/*-禁用S26301DBUser建表的权限-*/Deny create table TO S26301DBUser,30,总结 2-1,数据库的物理实现一般包括:创建数据库创建表添加各种约束创建数据库的登录帐户并授权创建数据库或表时一般需要预先检测是否存在该对象数据库从master系统数据库的sysdatabases表中查询 表从该数据库的系统表sysobjects表中查询,31,总结 2-2,访问SQL Server某个数据库中的某个表,需要三层验证:是否是SQL Server的登录帐户是否是该数据库的用户是否有足够的权限访问该表,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号