实验一 创建数据库及数据库对象管理.docx

上传人:b****1 文档编号:2415600 上传时间:2023-05-03 格式:DOCX 页数:13 大小:520.97KB
下载 相关 举报
实验一 创建数据库及数据库对象管理.docx_第1页
第1页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第2页
第2页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第3页
第3页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第4页
第4页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第5页
第5页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第6页
第6页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第7页
第7页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第8页
第8页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第9页
第9页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第10页
第10页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第11页
第11页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第12页
第12页 / 共13页
实验一 创建数据库及数据库对象管理.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验一 创建数据库及数据库对象管理.docx

《实验一 创建数据库及数据库对象管理.docx》由会员分享,可在线阅读,更多相关《实验一 创建数据库及数据库对象管理.docx(13页珍藏版)》请在冰点文库上搜索。

实验一 创建数据库及数据库对象管理.docx

实验一创建数据库及数据库对象管理

实验一创建数据库及数据库对象管理

一、实验目的:

(1)了解并掌握创建数据库的方法。

(2)了解并掌握创建数据表,索引的方法。

(3)掌握定义数据库完整性的方法。

(4)掌握对数据库对象进行安全性控制的方法。

二、实验步骤:

1、创建数据库方法:

(1)使用SQL语句创建数据库:

创建数据库包括:

定义数据库名;确定数据库文件机器大小;确定事务日值文件的位置和大小。

CREATEDATABASE〈数据库名〉

[ON[PRIMARY][(NAME=〈逻辑数据文件名〉,]

FILENAME='〈操作数据文件路径和文件名〉'

[,SIZE=〈文件长度〉]

[,MAXSIZE=〈最大长度〉]

[,FILERGROWTH=〈文件增长率〉])[,„n]]

[LOGON([NAME=〈逻辑日志文件名〉,]

FILENAME='〈操作日志文件路径和文件名〉'

[,SIZE=〈文件长度〉])[,„n]]

[FORRESTORE]

子句中:

PRIMARY指明主文件名;SIZE说明文件的大小,数据库文件最小为1MB,默认值为3MB;FILEROWTH说明文件的增长率,默认值为10%。

FORRESTORE子句说明重建一个数据库,该重建的数据库用于数据恢复操作。

例如:

CREATEDATABASEtest1

ONPRIMARY

(NAME='test1',

FILENAME='C:

\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\test1.mdf',SIZE=10,

MAXSIZE=50,

FILEGROWTH=5)

LOGON

(NAME='test1Log',

FILENAME='c:

\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\test1Log.ldf',SIZE=5MB,

MAXSIZE=25MB,

FILEGROWTH=5MB)

(2)使用对象资源管理器创建数据库

2、创建基本表的方法:

(1)使用SQL语句创建基本表

CREATETABLE<表名>

(<列名><数据类型>[<列级完整性约束条件>]

[,<列名><数据类型>[<列级完整性约束条件>]]…

[,<表级完整性约束条件>]);

例如:

CREATETABLE学生(

学号intPRIMARYKEYCLUSTERED,

姓名CHAR(8)NOTNULL,

性别CHAR

(2)CHECK(性别IN('男','女')))

(2)使用对象资源管理器创建基本表

3、定义索引方法

CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…);

4、定义数据库完整性

(1)定义表的完整性及约束

1.唯一性约束:

UNIQUE

2.非空值约束:

NOTNULL

3.检查约束(check):

当对表进行插入或更新操作时,检查其中的列值必须满

足的约束条件。

4.主键约束(primarykey):

限制表中指定列的取值,以保证任何两列在指定列

上不存在相同的值,同时主键约束列上的值不得为Null。

5.参照约束(foreignkey):

如果两个表之间由主键和外键相联系,那么在对表

中的数据执行插入、删除和更新操作时,必须遵循它们之间的参照性规则

和各自的数据完整性规则。

6.缺省约束(default):

向表插入新行时为没有给值的列指定一缺省值,用以增

强数据的完整性。

(2)创建和管理存储过程

CREATEPROCEDURE〈过程名〉[;〈版本号〉][@〈参数名〉〈参数类型〉[=〈缺省值〉][OUTPUT]„]

[WITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION]

AS〈SQL语句组〉

1)版本号是可选的整数,它用于将有相同名字的存储过程编为不同的组。

2)OUTPUT选项用于给调用者返回值。

3)RECOMPILE为重编译选项。

它要求每次执行都要对过程重编译和优化,并创建新的查询计划。

4)ENCYPTION为加密选项。

5)参数前加“@”为局部变量,参数前加“@@”则说明为全局变量。

过程的调用语句为:

EXE[UTE]〈过程名〉[[@〈参数名〉=]〈参数〉„[〈版本号〉]

(3)创建和管理触发器

CREATETRIGGER〈触发器名〉ON〈表名〉

[WITHENCRYPTION]

FOR{[DELETE][,][INSERT][,][UPDATE]}[WITHAPPEND][NOTFORREPLICATION]ASBEGIN〈SQL语句组〉

END

1)WITHENCRYPTION为加密选项。

2)DELETE触发器是当对表执行DELETE操作时删除元组,将删除的元组放入deleted表中。

检查delete表中的数据,确定该如何处理。

3)INSERT触发器在对执行插入数据操作时,将插入表中的数据拷贝并送入inserted表中,根据inserted表中的值决定如何处理。

4)UPDATE触发器仅在更新数据操作时将要被更新的原数据移入deleted表中,将更新后的数据备份送入inserted表中,对deleted和inserted表进行检查,并决定如何处理。

5)NOTFORREPLICATION项说明当一个复制过程在修改一个触发器表时,与该表相关联的触发器不能被执行。

例如:

createtriggertrig1

onsforupdate

asdeclare@bageint,@aageint

select@bage=sagefromdeleted

select@aage=sagefrominserted

if(@aage<@bage)

begin

print'年龄只能增长,更改失败'

rollback

end

触发器执行:

5、定义数据库安全性

(1)SQLserver安全认证模式:

windows安全验证和混合安全验证

(2)登录管理

登录(SQL服务器用户)通过账号和口令访问SQLserver数据库

(3)用户管理

登录用户只有成为数据库用户(databaseuser)后,才能访问数据库

(4)角色管理

(5)授权管理

1)通过对象资源管理器授权

2)通过DCL语言授权

GRANT语句的一般格式:

GRANT<权限>[,<权限>]...

[ON<对象类型><对象名>]

TO<用户>[,<用户>]...

[WITHGRANTOPTION];

(6)受限访问

三、实验内容

1、使用SQL语句建立如下数据库及基本表建库名称为“姓名1”,要求:

⑴将主数据库文件“姓名1.MDF”放置在C:

\ProgramFiles\Microsoft

SQL

Server\MSSQL.1\MSSQL\Data文件夹中,其文件大小自动增长为按5MB增长;

⑵将事务日志文件“学号姓名1.LDF”放置在C:

\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data文件夹中,其文件大小自动增长为按1MB增长。

建表如下:

1.建立学生表Students,其结构为:

学号,姓名,性别,年龄,籍贯,民族,email,

党员否,所在年级。

其中“学号”为主键,唯一标识。

姓名不允许为空。

性别只能为‘男’或‘女’;15〈年龄〈100;民族默认为“汉族”,籍贯默认为“天津”。

在年龄上建立降序索引。

2.建立教师表Teachers,其结构为:

教师号,姓名,性别,年龄,职称,email,

工资。

其中“教师号”为主键,唯一标识。

姓名不允许为空。

职称只能为‘教授’或‘副教授’,‘讲师’,‘助教’;

3.建立课程表Courses,其结构为:

课程号,课程名,学分,学时数。

其中“课

程号”为主键,唯一标识。

课程名不允许为空。

1〈学分〈5;15〈学时数〈1204.建立选课表Choices,其结构为:

学号,课程号,成绩。

其中“学号,课程号”

为主键。

0〈=成绩〈=100

5.建立任课表Teaching,其结构为:

教师号,课程号,班级,学生数。

其中“教

师号,课程号”为主键。

根据如上语义建立表及表见的关联(外键)。

2、在对象资源管理器中建库,名称为“姓名2”,使用管理器建立表,将建好的数据库和表转化为SQL语句,和手写的SQL比较。

3、建立如下触发器

1.在学生表上建立触发器trgs1:

当有学生记录被修改时给出提示“学生记录被修

改”

2.在教师表上建立触发器trgt1:

修改教师的薪水只能增长,不能减少。

3.在教师表上建立触发器trgt2:

对教师表记录进行修改或插入操作时,如果教师

的年龄到达60岁时给出提示“到达退休年龄”,并将此教师记录于离退休教师表中。

(离退休教师表需要建立)

4.在任课表上建立触发器trgtc1:

插入选课记录时,如果人数小于15人时,给

出提示“选课人数不足15人”

4、完成如下

1.建立学籍管理用户U1,拥有对学生表及选课表的查询,修改和删除

的权限。

2.建立U2,U3,具有对教师表和任课表的查询权限。

3.建立角色role1,具有对学生表的查询权限及对选课表的插入和对成

绩的修改权限。

4.将角色role1的权限授予用户U2及U3。

5、在查询分析器中插入一些基本的数据,为后续练习SQL语句做准备。

插入一些数据:

教师表Teachers

选课表Choices,

备份次数据库:

右键任务——备份

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2