数据库实验四
数据库实验4 索引、数据完整性与安全性
实验四索引、数据完整性与安全性
一、实验目的
(1) 掌握利用SQL Server Management Studio和SQL语言建立、删除索引的方法;
(2) 掌握利用SQL Server Management Studio和SQL语言实现数据完整性的方法;
(3) 掌握在SQL Server Management Studio中实现数据安全性管理的方法。
二、实验原理
1.索引
在关系型数据库中,索引是一种可以加快数据检索的数据库结构。SQL Server系统中主要有两种类型的索引,即聚集索引、非聚集索引。
(1)聚集索引
聚集索引定义了数据在表中存储的物理顺序。一个表只能定义一个聚集索引。
(2)非聚集索引
非聚集索引并不存储表数据本身。相反,非聚集索引只存储指向表数据的指针,该指针作为索引键的一部分,因此,在一个表中同时可以存在多个非聚集索引。
(3)利用SQL命令建立索引
简化语法格式:
CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]
INDEX index_name ON {table|view}(column|ASC|DESC][,…n])
其中:UNIQUE。可选。该选项用于通知SQL Server索引中列出的列的值是每行唯一的。如果试图插入重复的行,则该选项会强制SQL Server返回一个错误信息。
CLUSTERED或NONCLUSTERED。可选。如果这两个选项都没有被明确列出,则默认将索引创建为NONCLUSTERED(非聚集索引)。
(4)通过SQL命令删除索引
数据库实验四
数据库实验四
实验项目名称:T-SQL程序设计实验学时: 4
同组学生姓名:实验地点: b513
实验日期: 2012.11.27 2012.12.04实验成绩:
批改教师:批改时间:
一、实验目的和要求
1、掌握T-SQL中运算符和表达式的使用;
2、通过对Select的使用,掌握Select语句的结构及其应用;
3、掌握T-SQL中几个常用流程控制语句的使用;
4、掌握系统内置函数的概念及其应用;
5、通过定义和使用用户自定义函数,掌握自定义函数的概念及其应用。
二、实验设备、环境
设备:奔腾Ⅳ或奔腾Ⅳ以上计算机;
环境:WINDOWS 2000 SERVER或WINDOWS 2003 SERVER、SQL Server2005中文版。
三、实验步骤
1、根据题目要求熟悉SQL Server2005的各种管理工具;
2、分析题意,重点分析题目要求并给出解决方法;
3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中;
4、提交完成的实验结果。
四、实验内容
一、SQL查询(*使用SQL Server样例数据库pubs完成)
1、简单查询
(1)查询所有作者的姓名和作者号信息,并在每个作者的作者号前面显示字符串“身份证号:”表明显示信息是身份证信息;(authors表)
(2)改变显示列名。显示所有作者的姓名信息和作者号信息,要
求用“名”和“姓”来区别fname和lname,“作者编号”来区分作者号;(authors表)
(3)查询所有书在价格提高10%后的价格和书名信息;(titles 表)
(4)查询所有书的书号和税后价格。(titles表,royalty列表示税率);
数据库实验报告四
姓名:学号:
专业班级:日期:
实验四数据更新、视图的创建与修改
一、实验目的
1、学会使用INSERT、UPDA TE、DELETE等SQL语句进行数据更新;
2、学会使用CREATE、DROP等SQL语句创建和删除视图。
二、实验内容
1、在sql server2008中使用INSERT、UPDATE、DELETE语句进行数据更新。
2、在sql server2008中使用CREATE、DROP语句创建和删除视图。
三、实验步骤
1、在数据库S-C的三个表中分别插入以下数据:学生表student:
课程表course:
成绩表sc:
2、在sql server2008中:
(1) 选择数据库S-C,用INSERT语句向学生表student中插入一个新生记录(学号:95020;姓名:陈东;性别:男;所在系:IS;年龄:18)。
(2) 在数据库S-C中建立一个新表deptage,其中一个字段存放系名,另一个字段存放相应得学生平均年龄;然后对学生表student按系分组求平均年龄,再把系名和平均年龄存入新表中。
3、在sql server2008用UPDA TE语句更改表中数据。
(1) 将所有学生的年龄都增加1岁。
(2) 将IS系全体学生的成绩置零。
(3) 分别运行SQL语句,观察运行结果。
4、在sql server2008中用DELETE语句删除表中数据。
(1) 删除学号为“95020”的学生记录。
(2) 删除IS系所有学生的成绩记录。
(3) 分别运行SQL语句,观察运行结果。
5、在sql server2008中用CREATE语句建立视图。
数据库实验四
数据库实验四
实验四表操作和简单查询
实验⽬的:
1.掌握筛选、⾼级筛选
2.掌握简单查询。
实验内容:
在本地磁盘D盘新建⽂件夹,并以“学号姓名”命名,实验所有操作,请在该⽂件夹内完成。
筛选
1、打开“实验四”数据库,打开“01产品”表,使⽤筛选器,筛选出价格⼩于等于10的产品,筛选结果按产品名称升序排序,并保存。
操作步骤:
1)⿏标双击“01产品”表,打开“01产品”数据表视图。
2)选择“价格”属性,点击“开始”选项卡-“排序和筛选”选项组中的“筛选器”选项,在“价格”属性下⾯弹出“筛选器”快捷菜单,如图4-1所⽰。
图4-1 筛选器
3)在菜单中选择“数字筛选器”,在⼦菜单中选择“⼩于…”选项,弹出“⾃定义筛选”对话框,输⼊10,点击“确定”按钮,如图4-2所⽰。
图4-2 ⾃定义筛选对话框
4)选择“价格”属性,点击“开始”选项卡-“排序和筛选”选项组中的“升序”选项,完成排序,效果如图
4-3所⽰。
图4-3 筛选结果
5)点击“保存”按钮。
6)如果需要在原始数据和筛选结果间切换,可以通过点击“开始”选项卡-“排序和筛选”选项组中的“应⽤
筛选”选项。
2、打开“02客户”表,利⽤⾼级筛选,筛选职务为经理,住在(城市)天津的客户信息,将打开的“02客户筛选1”保存,命名为“02客户筛选”。
操作步骤:
1)⿏标双击“02客户”表,打开“02客户”数据表视图。
2)选择“开始”选项卡,选择“排序和筛选”选项组中的“⾼级筛选”选项,在弹出的菜单中选择“⾼级筛选/排序”选项,如图4-4所⽰。
图4-4 打开⾼级筛选
3)选择“⾼级筛选/排序”选项,打开“02客户筛选1”设计视图。如图4-5所⽰。
数据库原理 实验四 数据更新与视图操作
实验四数据更新与视图操作
一、实验目的
(1)掌握向表中插入一个或多个元组的方法。
(2)掌握删除表中一个或多个元组的方法。
(3)掌握修改表中一个或多个元组的方法。
(4)掌握视图的创建、查询和更新操作。
二、实验环境
Windows XP+SQL Server 2000
三、实验内容
1.插入数据
(1)插入一行数据
例:将新商店(s05,沃尔玛,上海)插入到Shop表中。
(2)插入多行数据
例:创建与表Shop具有相同结构与相同数据的新表Shop1。
2.修改数据
(1)修改一行数据
例:将商店s02的商店名改为红五星。
(2)修改多行数据
例:将所有商品的价格增加100元。
3.删除数据
(1)删除一行数据
例:删除s05商店的基本信息。
(2)删除多行数据
例:删除苏果商店的所有销售记录。
4.视图的基本操作
(1)创建视图
①行列子集视图的创建。
例:创建北京地区所有商店的基本信息视图V1。
②带WITH CHECK OPTION的视图创建。
例:创建北京地区所有商店的基本信息视图V2,要求基于该视图进行更新操作时只能涉及北京地区的商店。
③基于多个基本表的视图创建。
例:创建北京地区所有商店的销售记录视图V3。
④基于视图的视图创建。
例:创建北京地区、销售量大于100的销售记录视图V4。
⑤分组视图的创建。
例:创建各商店平均销售量的视图V5。
(2)查询视图
①基于非分组视图的查询。
例:查询北京地区、商店名为联华的商店信息。
②基于非分组视图和基本表的查询。
例:查询北京地区、销售了p01商品的商店。
③基于分组视图的查询。
例:查询平均销售量大于100的商店名和平均销售量。
数据库实验4
实验四数据库安全性与完整性控制
一、实验目的
1.掌握使用T-SQL定义实体完整性的方法。
2. 了解SQL Server违反实体完整性处理措施。
3. 理解参照完整性的含义。
4. 熟练掌握建立外键的方法。
5. 掌握利用FOREIGN KEY…REFERENCES子句以及各种约束保证参照完整性。
6.掌握利用短语NOT NULL、UNIQUE、CHECK保证域完整性。
7. 熟练掌握约束、规则实施用户自定义完整性
8.掌握创建触发器的方法,掌握利用触发器规范插入、更新、删除操作的方法。
9.理解数据安全性的含义。
10.学会设置SQL Server的身份验证模式。
11.掌握SQL Server中利用对象资源管理器和T-SQL创建和管理Windows登录账户、SQL Server登录账户、数据库用户的方法,掌握创建触发器的方法。
12.掌握自主存取控制进行权限管理的方法,包括授予权限和回收权限。
13.掌握SQL-Sever中的角色管理,掌握怎么样通过角色赋权限给用户。
二、实验内容
1、新建数据库School并创建学生表Student,包含以下属性:Sno (CHAR(5))、Sname (CHAR(8))、Ssex (CHAR(1))、Sage (INT)、Sdept (CHAR(20)),
并插入数据:( '10000','王敏','F',23,'CS'),('10000','王浩','M',25,'EE'),
创建数据库、表以及插入数据的相关语句为:
CREATE DATABASE School ;
USE School
数据库实验报告(实验四)
实验四SQL语言数据定义语言DDL
一、实验内容
本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握在Navicat for MySQL中用DDL语言进行对表、索引、视图的增加、删除和改动。掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。掌握使用SQL语句定义和删除同义词。
具体实验步骤如下:
运行Navicat for MySQL,连接到test数据库
1.建立表主要指定义下列信息:列定义、主键定义、键定义、索引定义、完整性约束、外键定义、表达式,如下
先建立一个test92150033表,然后分别使用alter table add、alter table modify、alter table dropcolumn在表test92150033上来增加两个列、修改一个列和删除一个列
2.进行视图操作建立基表t:
插入记录:
建立视图并检索数据:
删除视图:
实验步骤中的任务截图:
用SQL语句,建立如下所示的表student、表CourseAa和表ChooseBb:
用Drop Table语句删除表CourseAa:
二、遇到的问题及解决
由于对书本上的知识掌握的不好,在写SQL 语句的时候不熟练,导致错误,经仔细检查发现并改正后得到实验结果。
三、心得体会
通过本实验,我对课上的SQL 语句多了一份了解,课上学习的东西要多用在实际方面,比如实验上。多做实验,发现自己的问题所在。
数据库实验四(含答案)
实验四使用SQL语句创建和删除数据库、表
一. 实验目的:
1、了解SQL Server 2005数据库的逻辑结构和物理结构。
2、掌握使用SQL 语句创建和删除数据库。
3、学会使用T-SQL语句创建表。
二. 实验准备
1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。
2.了解用SQL语句创建和删除数据库的基本语法。
3.是用查询分析器,完成用SQL语句创建和删除基本表。
三. 实验要求
1、熟练使用查询分析器进行数据库的创建和删除操作。
2、用查询分析器,完成用SQL语句创建和删除基本表。
3、完成实验报告。
四. 实验内容
一、数据库
1.以下是创建数据库userdb1的SQL语句,
create database userdb1
on
(name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名
filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在
size=5,--数据初始长度为5M
maxsize=10,--最大长度为10M
filegrowth=1)--数据文件每次增长1M
log on
( name=userdb4_log,
filename='g:\xygl\userdb4.ldf ' ,
size=2 ,
maxsize=5 ,
filegrowth=1)
运行上诉语句建立数据库userdb1
2.根据步骤1的sql语句,写出创建实验二中“学生信息”数据库的sql语句,并建立“学生信息”数据库.(.mdf的名字可以修改)
数据库实验4
实验4 数据查询
1.实验目的
(1)掌握使用Transact-SQL的SELECT语句进行基本查询的方法。
(2)掌握使用SELECT语句进行条件查询的方法。
(3)掌握SELECT语句的GROUP BY、ORDER BY以及UNION子句的作用和使用方法。
(4)掌握嵌套查询的方法。
(5)掌握连接查询的操作方法。
2.实验内容及步骤
(1)在studentsdb数据库中,使用下列SQL语句将输出什么?
①SELECT COUNT(*) FROM grade
思考题:1、查询grade表中的学号(ALL和DISTINCT分两种情况)
SELECT学号
FROM grade
2、统计grade表中有多少个学生?
SELECT COUNT(DISTINCT 学号)
FROM grade;
②SELECT SUBSTRING(姓名,1,2) FROM student_info
说明:SUBSTRING返回字符、二进制、文本或图像表达式的一部分。
语法:SUBSTRING ( expression, start, length )
参数expression为字符串、二进制字符串、文本、图像、列或包含列的表达式。
请勿使用包含聚合函数的表达式。
start 整数或可以隐式转换为int 的表达式,指定子字符串的开始位置。
length 整数或可以隐式转换为int 的表达式,指定子字符串的长度。
返回值如果expression 是一种支持的字符数据类型,则返回字符数据。如果expression 是一种支持的二进制数据类型,则返回二进制数据。如果start = 1,则子字符串从表达式的第一个字符开始。
数据库实验报告4
数据库实验报告4
数据库实验报告4
引言:
数据库是现代信息管理的重要工具,广泛应用于各个领域。本实验报告将介绍数据库实验4的内容,主要包括数据库的备份与恢复、数据库的性能优化以及数据库的安全性。
一、数据库的备份与恢复
数据库的备份与恢复是数据库管理中非常重要的一环。在实验中,我们使用了MySQL数据库,通过备份和恢复操作来保障数据的安全性。
1. 数据库的备份
数据库的备份可以通过多种方式实现,常见的有物理备份和逻辑备份。物理备份是将数据库的物理文件进行拷贝,包括数据文件、日志文件等;逻辑备份则是将数据库的逻辑结构进行导出,如SQL语句等。
2. 数据库的恢复
数据库的恢复是在数据库出现故障或数据丢失时进行的操作。在实验中,我们使用了MySQL提供的恢复工具来进行数据库的恢复操作。
二、数据库的性能优化
数据库的性能优化是提高数据库查询和操作效率的关键。在实验中,我们通过索引的创建和查询优化来优化数据库的性能。
1. 索引的创建
索引是数据库中用于提高查询效率的重要手段。在实验中,我们通过创建合适的索引来加快数据库的查询速度。索引的创建需要考虑字段的选择、索引类型
的选择以及索引的维护等因素。
2. 查询优化
查询优化是通过调整查询语句和数据库的结构来提高查询效率的方法。在实验中,我们通过分析慢查询日志和使用数据库的性能监控工具来进行查询优化。
通过调整查询语句的写法、添加合适的索引以及优化数据库的配置参数等方式,可以显著提高数据库的查询性能。
三、数据库的安全性
数据库的安全性是保护数据库中数据不受非法访问和恶意操作的重要保障。在
大学生数据库实验课实验四报告
大学生数据库实验课实验四报告
一、实验目的
本次实验的主要目的是通过设计、构建和操作数据库表格,掌
握数据库表的创建、插入数据以及查询操作等基本技能。在实验中,我们将使用MySQL数据库来完成这些操作。
二、实验内容
本次实验分为以下几个步骤:
1. 利用MySQL数据库创建表格
2. 插入数据到表格中
3. 使用SQL语句进行查询操作
三、实验步骤
1. 创建数据库和表格
首先,我们需要在MySQL数据库中创建一个新的数据库。使用如下命令:
```
CREATE DATABASE experiment;
```
接下来,进入experiment数据库并创建一个新的表格。使用如
下命令:
```
USE experiment;
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(20),
age INT,
major VARCHAR(20)
);
```
这样,我们就创建了一个名为student的表格,包含了id、name、age和major等四个字段。
2. 插入数据到表格中
在已经创建好的student表格中插入一些学生的数据。使用如下命令:
```
INSERT INTO student (id, name, age, major) VALUES (1, '张三', 20, '计算机科学');
INSERT INTO student (id, name, age, major) VALUES (2, '李四', 21, '软件工程');
INSERT INTO student (id, name, age, major) VALUES (3, '王五', 19, '通信工程');
数据库实验四作业及答案
实验4数据查询
一、实验目的
1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。
2.掌握使用SELECT语句进行条件查询的方法。
3.掌握嵌套查询的方法。
4.掌握多表查询的方法。
5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。
6.掌握联合查询的操作方法。
7.掌握数据更新语句INSERT INTO、UPDATE、DELETE的使用方法。
二、实验准备
1.了解SELECT语句的基本语法格式和执行方法。
2.了解嵌套查询的表示方法。
3.了解UNION运算符的用法。
4.了解SELECT语句的GROUP BY和ORDER BY子句的作用。
5.了解IN、JOIN等子查询的格式。
6.了解INSERT INTO、UPDATE、DELETE的格式与作用。
三、实验内容及步骤
0. 创建studentsdb数据库及其相应表,并录入数据。
启动查询分析器,运行下面链接的代码即可。
创建数据库代码
1.在studentsdb数据库中,使用下列SQL语句将输出什么?
(1)SELECT COUNT(*) FROM grade
(2)SELECT SUBSTRING(姓名,1,2) FROM student_info
(3)SELECT UPPER('kelly')
(4)SELECT Replicate('kelly',3)
(5)SELECT SQRT(分数) FROM grade WHERE 分数>=85
(6)SELECT 2,3,POWER(2,3)
(7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())
《数据库原理》实验4(简单的单表查询)
《数据库原理》实验4(简单的单表查询)
实验四:简单的单表查询
一、实验目的
1.掌握SELECT语句的基本语法;
2.掌握SELECT子句的作用和使用方法;
3.掌握FROM子句的作用和使用方法;
4.掌握WHERE子句的作用和使用方法;
5.掌握查询条件表达式和使用方法;
6.掌握ORDER BY子句的作用和使用方法。
二、实验环境
已安装SQL Server 2005 企业版的计算机;
三、实验学时
2学时
四、实验要求
1.了解数据库简单的单表查询;
2.了解数据库查询的实现方式;
3.完成实验报告;
五、实验原理
用SELECT语句实现简单的单表查询。在SELECT子句中用TOP 关键字来限制返回到结果集中的记录数目,用DISTINCT关键字从结果集中去掉重复的记录。WHERE子句中用关系比较符、[NOT] BETWEEN、[NOT] IN、LIKE、 IS [NOT] NULL及逻辑运算符构成查询条件,对结果集中的记录进行筛选。ORDER BY子句将根据查询结果集中一个或多个字段对查询结果进行排序。
六、实验示例
运行上一实验中创建的两个数据库S_T和company的查询文件S_T.sql和company.sql 文件,生成实验所需的数据库。
针对company数据库:
1.查找表中所有姓刘的职工的工号,姓名,部门,薪水
select emp_no, emp_name, dept, salary
from employee
where emp_name like '刘%'
2.查找所有定单金额高于20000的所有客户编号
数据库实验4
任课教师:舒挺
《数据库原理及应用》
(2013-2014学年第1学期)
实
验
报
告
学号:
姓名:
班级:
实验四数据库的视图定义及维护
一、实验目的:
本实验的目的是使学生掌握视图的定义与维护操作,加深对视图在关系数据库中的作用的理解。
二、相关知识:
视图是根据子模式建立的虚拟表。一个视图可以由一个表构造,也可以由多个表构造。
利用企业管理器和视图创建向导进行创建,查看和修改视图就如同对表的操作一样,非常容易。
三、实验内容:
本实验的主要内容是:
1)创建和删除视图
2)查询和更新视图
具体完成以下例题。
例1 建立信息系学生的视图
例2 建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生。
例3 建立信息系选修了’ 1’号课程的学生视图
例4 建立信息系选修了’1’号课程且成绩在90分以上的学生视图
例5 定义一个反映学生出生年份的视图
四、实验步骤
1.创建视图
下面利用了SQL Server中提供的视图创建向导,来实现例3(建立信息系选修了1号
课程的学生视图)。
1)打开企业管理器窗口,确认服务器,打开数据库文件夹,选中新视图所在的数据库(此例为学生选课数据库)。
2)选择菜单:[工具]|[向导]
3)在如图1所示的向导选择对话框中,单击数据库左边的“+”号,使之展开。选择“创建数据库向导”项,单击“确定”按键。
4)进入创建视图向导后,首先出现的是欢迎使用创建视图向导对话框,其中简单介绍了该向导的功能。单击“下一步”后,就会出现选择数据库对话框。
5)在选择数据库对话框中,选择视图所属的数据库。本例的数据库为“学生管理”。
数据库实验4-实验报告
数据库实验4-实验报告
数据库实验 4 实验报告
一、实验目的
本次数据库实验 4 的主要目的是深入理解和掌握数据库中的某些关键概念和操作,通过实际的操作和实践,提高对数据库管理系统的应用能力,增强解决实际问题的技能。
二、实验环境
本次实验使用的数据库管理系统为_____,运行环境为_____操作系统,使用的开发工具为_____。
三、实验内容与步骤
(一)创建数据库
首先,打开数据库管理系统,使用相应的命令或操作界面创建了一个名为“_____”的数据库。在创建过程中,指定了数据库的一些基本属性,如字符集、排序规则等,以满足后续数据存储和处理的需求。
(二)创建数据表
在创建好的数据库中,根据实验要求创建了若干个数据表。例如,创建了一个名为“students”的表,用于存储学生的信息,包括学号(student_id)、姓名(student_name)、年龄(age)等字段。创建表
时,仔细定义了每个字段的数据类型、长度、是否允许为空等属性,
以确保数据的准确性和完整性。
(三)数据插入
接下来,向创建的数据表中插入了一些测试数据。通过执行相应的
插入语句,将学生的具体信息逐个插入到“students”表中。在插入数据
的过程中,特别注意了数据的格式和合法性,避免了因数据错误导致
的插入失败。
(四)数据查询
完成数据插入后,进行了各种查询操作。使用了简单的查询语句,
如“SELECT FROM students”来获取所有学生的信息。还使用了条件查询,如“SELECT FROM students WHERE age >18”来获取年龄大于 18 岁的学生信息。通过这些查询操作,熟悉了如何从数据库中获取所需
数据库实验报告4
引言:
正文内容:
1.实验环境
1.1数据库系统
本次实验使用MySQL数据库系统,版本号为8.0。MySQL是一种开源的关系型数据库管理系统,广泛应用于大型企业和互联网应用中。
1.2实验数据
实验数据采用了一个包含500万条记录的学生信息表。该表包括学生ID、姓名、年龄、性别等字段,用于模拟真实的数据库环境。
2.查询优化
2.1查询优化的概念
查询优化是指通过调整查询语句和索引设计,使得查询能够以更高效和更快速的方式执行。查询优化是数据库性能优化的重要手段,可以提高数据库查询的响应时间和吞吐量。
2.2查询优化技术
2.2.1索引优化
索引是数据库中用于加快查询速度的数据结构。可以通过创建适当的索引,优化查询的性能。在本次实验中,我们对学生信息表的姓名字段创建了B+树索引,以加速按姓名查询的速度。
2.2.2查询重写
查询重写是指通过改变查询语句的结构,使得查询能够以更高效的方式执行。例如,可以将一个复杂的查询拆分成多个简单的查询,或者使用子查询替代复杂的关联查询。
2.2.3统计信息收集
统计信息包括表的行数、列的唯一值数量、列的最大值和最小值等。数据库系统可以根据统计信息来选择查询执行的最优路径。在本次实验中,我们使用了MySQL的统计信息收集工具对学生信息表进行统计信息收集。
3.索引设计
3.1索引的概念
索引是数据库中对表中一列或多列的值进行排序的数据结构。通过使用索引,可以加快对表的查询和排序操作的速度。
3.2索引的种类
3.2.1B+树索引
B+树索引是一种高效的索引结构,适用于范围查询和排序操作。在本次实验中,我们使用B+树索引对学生信息表的姓名字段进行了索引设计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南石油大学实验报告
注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。
一、实验课时:2
二、实验目的
(1) 掌握使用T-SQL语句创建登录帐户的方法。
(2) 掌握使用T-SQL语句创建数据库用户的方法。
(3) 掌握使用T-SQL语句创建数据库角色的方法。
(4) 掌握使用T-SQL语句管理数据库用户权限方法。
三、实验要求
(1) 使用SQL Server 2008查询分析器。
(2) 严格依照操作步骤进行。
四、实验环境
(1) PC机。
(2) SQL Server 2008。
五、实验内容及步骤
注意事项:
(1)首先在C盘根目录创建文件夹Bluesky,执行脚本文件“PracticePre-第11章安全管理.sql”,创建数据库BlueSkyDB和表;
(2)如何建立“数据库引擎查询”;
(3)使用“select user_name()”可查询当前登录账号在当前数据库中的用户名。
步骤1 使用Transact-SQL创建三个SQL Server登录账户TUser1、TUser2、TUser3,初始密码均为“123456”。
--SA
CREATE LOGIN TUser1
WITH PASSWORD='123456'
CREATE LOGIN TUser2
WITH PASSWORD='123456'
CREATE LOGIN TUser3
WITH PASSWORD='123456'
步骤2 使用TUser1建立一个新的数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中BlueSkyDB数据库?为什么?
不可以选中BlueSkyDB数据库。因为此时sa还没有赋予TUser1选中BlueSkyDB数据库的权限,TUser1还不是BlueSkyDB数据库的用户。
步骤3 使用Transact-SQL将SQL Server登录账户TUser1、TUser2、TUser3映射为数据库BlueSkyDB的用户,用户名同登录名。
CREATE USER TUser1
CREATE USER TUser2
CREATE USER TUser3
步骤4 再次使用TUser1建立一个新的数据库引擎查询,这次在“可用数据库”下拉列表框中是否能看到并选中BlueSkyDB数据库?为什么?
可以选中BlueSkyDB数据库。此时sa已经赋予了TUser1访问BlueSkyDB数据库的权利了。
步骤5 用TUser1用户在BlueSkyDB数据库中执行下述语句,能否成功?为什么?
SELECT * FROM BOOKS;
不能成功。其实TUser1只是具有访问数据库的权限,还没有拥有操作数据库的权限。
步骤6 授予TUser1具有对BOOKS表的查询权限,授予TUser2具有对CUSTOMERS表的插入权限。
GRANT SELECT ON BOOKS TO TUser1
GRANT SELECT ON CUSTOMERS TO TUser2
步骤7 用TUser2建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?
不能成功。因为sa并没赋予TUser2对于CUSTOMERS表进行插入的权限。
INSERT INTO CUSTOMERS VALUES('张三','zhang@','123456'); (注意:CUSTOMERS表中的customerID列为自增列)
再执行下述语句,能否成功?为什么?
SELECT * FROM CUSTOMERS;
成功了。因为sa赋予了TUser2对于CUSTOMERS表进行查询的权限。
步骤8 在TUser1用户建立的数据库引擎查询中,再次执行下述语句:
SELECT * FROM BOOKS;
成功了。因为sa赋予了TUser1查询BOOKS表的权限。
这次能否成功?但如果执行下述语句:
INSERT INTO CUSTOMERS VALUES('李四','li@','123456');
能否成功?为什么?
不能成功。因为sa没有赋予User1插入数据到BOOKS表的权限。
步骤9 授予TUser3具有在BlueSkyDB数据库中的建表权限。
GRANT CREATE TABLE TO TUser3
步骤10 使用Transact-SQL在数据库BlueSkyDB中创建一个角色TRole1,并使用Transact-SQL将对BlueSkyDB数据库中Books表的增、删、改、查权限授予角色TRole1。
CREATE ROLE TRole1
GRANT SELECT,INSERT,DELETE,UPDATE
ON Books TO TRole1
步骤11 新建立一个SQL SERVER身份验证模式的登录名:pub_user,并让该登录名成为BlueSkyDB数据库中的合法用户(非常重要,否则后面无法将其加入TRole1角色)
CREATE LOGIN pub_user
WITH PASSWORD='123456'
CREATE USER pub_user
步骤12 用pub_user建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?
SELECT * FROM BOOKS;
不能成功。此时pub_user并没有被sa赋予对books表的查询权限。