2023年6月21日发(作者:)
SQl考试整理后完整版
1、保存事务的语句save transaction
2、在创建数据库之前要做的事画E—R图
3、学生与课程之间是典型的多对多关系
4、SQL sever 2005是一个数据库管理系统
5、顾员与订单时一对多关系
6、要保证数据系统中的数据之间的独立性修改三级模式之间的映象
7、关系模型的主码只有一个
8、如果要更新数据库中某个命令,实用update语句
9、关于索引中不正确的是:一个数据表可以有多个聚集索引。(选择题)
10、数据的完整性包括实体、参照、用户定义三种
11、数据库三级模式的两层映象是外模式/模式、模式/内模式
12、保证数据库数据的独立性逻辑独立性和物理独立性
13、一个完整的数据库系统由数据库管理系统、应用系统及开发工具、数据库管理员、系统分析员和用户组成
14、Management studio-SQL 2005是可视化集成环境,是用于访问、配置、管理
15、如果想暂停使用数据库,可将其从当前数据库中分离,使用时再附加
16、SQL 2005针对数据库开发,三个不同故障恢复模型完整恢复模型、大容量日志恢复模型、简单恢复模型
17、SQL 2005两种身份验证模式windows身份验证模式和混合安全身份验证模式
18、SQL 2005日志文件后缀名是.LDF
19、日期型字段不能进行排序。(F)
20、修改数据库的预计是ought (F)【正确答案是update】
21、Delete 语句可以删除一个数据库(F) 22、数据库语句定义一个表命令是用create (T)
23、……关系……属性……并非……主键,则称关系的外键(T)【没记完整,各位记住答案就好了】
24、主键唯一性(T)
25、学生与专业表之间的建立完整性约束条件称参照完整性(T)
26、SQL 2005是microsoft公司的软件(T)
27、网状模型是目前最常用的数据库模型,是关系模型的基础(F)
1、学生表(学号(主键)姓名性别出生日期民族家庭地址班级联系电话)
2、课程表(课程ID(主键)课程名称)
3、学习表(学号课程ID(主键)成绩)
4、查出所有男同学的基本信息
select *
from 学生表
where 性别='男'
5、查出学号姓名班级课程名称成绩
select 学号姓名班级课程名称成绩
From 学生表课程表学生表
Where 课程表。课程ID=学习表。课程ID and
学生表。学号=学习表。学号
6、查出成绩表中成绩大于平均成绩的基本信息
Select *
from 学生表
where 成绩 >(select avg (成绩)
from 成绩表)
7、查出民族为汉族或回族的基本信息
select *
from 学生表
where 民族='汉族' or 民族='回族'
8、查出成绩70-80分的学生姓名和课程名称和成绩 select 姓名 课程名称 成绩
From 学生表 课程表 学习表
Where 课程表。课程ID=学生表。课程ID and
学生表。学号=学习表。学号 and
成绩 between '70' and '80'
9、在人员信息表中查出编号 姓名 年龄(24-28) 住址电话 手机号码(中国移动手机
用户(134-139)) QQ (不为空) e-mail (162)
Select *
From 人员信息表
Where 年龄 between 24 and 28
and email like '%126%'
and qq not null
and 手机号码 in (%134%-%139%)
10、已知人员信息表:编号,姓名,年龄,住宅电话,手机号码
销售信息表(操作员编号,顾客卡号,出售日期,金额)
顾客信息表(卡号,顾客姓名,固话,手机,累积购买金额)用联合查询的方法。查出
操作人员信息包括出售日期(日期),姓名,类别(操作)。顾客信息表包括出售日期,
顾客姓名,类别(购买)
Select 出售日期 as 日期, 操作人员as 姓名, 类别=‘操作’ from
销售信息表, 人员
信息表 Where 人员信息表. 编号=销售信息表. 操作员编号
Union
Select 出售日期, 顾客姓名,类别=‘购买’ from 顾客信息表, 人员信息表
Where 销售信息表. 顾客卡号=顾客信息表.卡号 11、根据(学生表、课程表、学习表)画一张画押图【矩形代表实体,椭圆代表属性】
学生表 学习表 课程表 课程名称 课程ID
学号 成绩 课程ID 学号 姓名 性别 民族 家庭住址
联系电话 出生日期 班级
12、提交事务的语句:commit transaction
13、A VG是属于聚合函数
14、SQL 2005主数据文件使用.mdf 作为扩展名。
15、实体完整性是靠主码来实现的。
16、数据库系统DBS与管理系统DBMS是什么关系?数据库系统DBS包括数据库管理系统DBMS
17、概念模型是按用户的观点来对数据和信息建模,其中最著名的是关系模型
18、对于大型数据库来说,SQL Server 2005是企业版本。
19、要使用模糊查询,……使用like来查询。
20、除了可视化用户还可以用什么来创建索引:create index
21、数据库技术大概经历了三个阶段:人工管理阶段文件管理阶段数据库管理阶段
22、实体之间的关系可以分为:一对一关系一对多关系多对多关系
23、常见数据库故障:事务故障系统故障介质故障计算机病毒
24、嵌套查询是指:将一个查询块嵌套在另一个查询块的when子句或having短语的条件中的查询
25、SQL 2005与access等桌面数据库相比,其中备份方面,除了备份数据库文件,还备份日志文件
26、SQL 2005提供了三种数据库恢复模型:完整恢复模型大量日志恢复模型简单恢复模型
27、没有主键的表,不满足数据的完整性(T)
28、SQL 2005提供四种网络协议:共存内存TCP/IP协议命名管道VIA
29、利用SQL语句create创建数据库。(T)
30、索引可以加快查询和排序的速度。(T) 31、记数据库,添加数据记录语句是:insect into
32、使用设计器建立一个新表,主要输入字段名称和数据类型。(T)
33、关系模式的规范化,需要考虑数据间的依赖关系,数据依赖中最重要的是函数依赖。(T)
34、学生表、教师表、课程表、成绩表、专业表五张表
学生表(学号、姓名、性别、出生日期、民族、住址、电话、班级)
教师表(系别、姓名、职称、课程编号、专业编号)
课程表(课程编号、课程名称)
成绩表(课程编号、学号、成绩)
专业表(专业编号、专业名称)
(1)给出一个查询结果有学号、姓名、性别、出生日期、课程名称、成绩;来自学生表、课程表、成绩表
(2)在这些表能不能插入新的记录,为什么?不能,因为找不到对应的对象,有多张表。
(3)给出一个视图,为成绩列表
I 查询出黄宏同学的计算机成绩?
Select 成绩
From 成绩列表
Where 姓名='黄宏' and '课程名称' ='计算机'
II 查询1980年以后出生的同学
Select *
From 学生表like '1980%'
Where 出生日期> 1979-12-31
35、回滚SQL语句:rollback transaction
36、以下软件哪个不是数据库管理系统?DB(属于编程的)
37、表式由什么组成的:字段和记录
38、数据类型是:决定字段能包含哪类型数据的设置
39、修改数据库的记录的SQL:update 40、下面名三个阶段中,没有专门的软件管理软件管理的是:人工管理阶段
41、规范化理论是关系数据库设计的理论基础,依据这一理论,关系数据库中的属性关系式:不可分解
42、对于安全性较高的数据库系统,应该采用哪种数据恢复模型:完整性完全的恢复模型
43、通过视图向数据表插入,其中不正确的是:通过视图可以更改数据列表中的任何列值
44、数据库管理系统式数据库系统的重要组成部分,它是位于操作系统与数据库之间的一层数据库软件中;它的主要功能包括:数据库预设数据库运行和管理数据定义数据操纵
45、模式是数据库中,全体数据的逻辑结构和存取结构的描述,它仅仅涉及具体存储细节和硬件环境,而不涉及到具体的值。
46、查询成绩在65到70分的男同学
Select *
From 成绩表
Where 成绩between 65 and 70 and 性别='男'
47、学生成绩低于60的增加5分
Update 成绩表
Set 成绩=成绩+5
Where 成绩<60
48、求学生的平均成绩
Select A VG(成绩)
From 成绩表
49、写出查询的准则,课程名称是计算机或英语之一
Where 课程名称in ('计算机','英语')
(1)出生日期在1980-12-31到1983-01-01之间
Where between出生日期1980-12-31 and 1983-01-01
(2)学生名称包含“小”字的
Where 学生姓名like '%小' (3)课程除了计算机以外的其他课程
Where 课程名称not in ('计算机')
(4)画图:商店销售某商品的数量和日期
商店:商店名、商店号、地址
商品:商店号、商店名、单价
销售
单价日期
50、回滚SQL 语句:rollback transaction
51、以下软件哪个是数据库管理系统:DB
52、表里由字段和记录组成的
53、数据类型是:决定字段能包含哪类数据的设置
54、修改数据库的记录的SQL 语句是:update
55、下面三个阶段中,没有专门的软件管理软件的是:人工管理阶段
56、规范化理论是关系数据库进行设计的理论基础,依据这一理论,关系数据库中的属性关系是:不可分解
57、对于安全性较高的数据库系统,应该采用完全恢复模型 数据恢复模型。
58、通过视图向数据表插入数据,其中不正确的是:B 通过视图可以更改数据列表中的任何列值
59、数据库管理系统是数据库系统的重要组成部分,它是位于操作系统与数据库之间的一层数据库管理软件。它的主要功能包括:数据库预设、数据库运行和管理、数据定义、数据操纵
60、模式是数据库中全体数据的逻辑结构和存储结构的描述。它仅仅涉及到具体存储细节和硬件环境,而不涉及到具体的值。
61、数据库的设计方法有两种:原型法和结构化生命周期法
62、作为一个全新的企业数据库开发平台,SQL 主要由数据库引擎、分析服务、综合服务和报表服务组成
63、通过控制面板、SQL Server 2005配置管理器、管理工具,均可以管理SQL 2005服务器。 64、SQL 2005 数据库提供了两种创建数据库的方式:create
database 命令和数据库创建向导。
65、数据库存储在表中。(错)
66、查询中可以增加新的字段用于计算。(对)
67、……查询……降序……用ASC 关键字。(错)
68、删除数据的语句用drop 。(错)
69、主键字的值的是不可重复的唯一的且不为空。(对)
70、一个仓库可以存放多种零件,文件可以存放在不同仓库中,则零件和仓库是一对多关系。
71、数据库发展经历了网状型、关系型、层次型,其中最常用的是层次型。(错)
72、SQL 是网状型的管理系统。(错)
73、信息与数据的关系……(对)
74、数据库具有数字结构化较大的冗余度,较低的数据独立性、可扩展性的特点。(错)
商店 商品
商店名 商店号 地址 商店号
商店名
数量
75、(1)用SQL语句创建学生表。要求:命名:学生数据类型:符型属性:学号(主键)、名称、性别、政治面貌。
Creat table 学生
学号varchar(10) primary key not null,
名称varchar(8) null,
性别varchar(2) null,
政治面貌varchar(20)
(2)用SQL语句为学生表添加如下记录:0001,张三,男,党员
insect into 学生
values (‘0001’,’张三’,’男’,’党员’) (3)用SQL语句将所有党员的记录改成“共产党员”。
update 学生set 政治面貌=’共产党员’
where 政治面貌=’党员’
(4)用SQL语句删除学生为0003的记录。
delete from 学生
where 学号=’0003’
(5)用SQL语句查出所有男同学的学号、姓名、政治面貌
select 学号,姓名,政治面貌
from 学生
where 性别=’男’
(6)用SQL语句查出政治面貌为党员或团员的信息
select *
from 学生
where 政治面貌=’党员’ or 政治面貌=’团员’
(7)用SQL语句查出每种政治面貌的学生人数。
select 政治面貌count(*) as ‘人数’
from 学生
group by 政治面貌
(8)设计E-R图,画工厂生产产品的数量和日期
工厂:工厂号、工厂名称、地址
产品:产品号、产品名称、成本
(3)查询顾客订单的信息,要求显示顾客编号、商品名称、订单金额等信息。
select erid 顾客编号,ame,/doc/
stname,item 商品名称,amount 订单金额
from orderdetails
od inner join customers c
on erid=erid
where erid='10449' --(6)查询订单中一共有几种商品。(distinct)
select count(item) from orderdetails
select count(distinct item) 商品种类数from orderdetails
--(8)查询十二月份订购商品金额的平均值。(avg)
select avg(amount) 订购商品金额平均值
from orderdetails
where substring(order_date,4,3)='dec'
--或者
select avg(amount) 订购商品金额平均值
from orderdetails
where order_date like '%dec%'
--(11)统计每个州(state)的顾客数,显示州和该州的顾客人数。(group by)
select state 所在州,count(customerid) 顾客人数
from customers group by state
--(14)求orderdetails 表中每个商品的单价。(单价等于总额度除总数量) (/)
select distinct item 商品,sum(amount)/sum(quantity) 单价
from orderdetails group by item
--(16)查询来自Arizona, Washington, Oklahoma, Colorado, or
Hawaii.的客户firstname, city, and state 。(in) 工厂
名称 工厂工厂号 地址 生产 日期
数量 产品 产品号
成本
产品名称
select firstname,city,state
from customers
where
in('Arizona','Washington','Oklahoma','Colorado','Hawaii')
--(17)统计各个州的顾客数,并且顾客数大于。(having)
state select count(customerid) 顾客数,state 所在州
from customers
group by state
having count(customerid)>1
--(19)统计每个客户购物次数和购物总金额数,显示出购物次数超过一次的顾客的编号、购物次数、总金额数。(having)
select customerid 顾客的编号,count(customerid) 购物次数,sum(amount)总金额数from orderdetails group by customerid
having count(customerid)>1
--20)一个完整的数据库生命周期所涵盖的三种不同的企业角色是什么?
--数据库管理人员(DBA),数据库应用开发人员(DBD),数据库商业智能开发人员(DBI)
作业2
1)什么是文件组,它有什么作用?
文件组是数据文件的逻辑集合,它使管理员能够将文件组中的所有文件作为单独的一项进行管理。文件组可以控制数据库中各个对象的物理布局,这可提供大量可管理性和性能方面的好处。例如,可使用多个文件组,对数据库中数据在存储设备中的物理存储方式进行控制,并将读写数据与只读数据进行分离管理,这可以显著提高读写数据的性能。 SQL SERVER 2005有一个主文件组,另外还可以有多个用户定义的文件组,即次文件组。
2)SQL SERVER 2005中数据库的组成是怎样的?
SQL SERVER2005中数据库由数据文件和日志文件组成,分为主数据文件,通常使用.mdf扩展名,辅助数据文件,通常使用.ndf扩展名。其中数据文件可以通过文件组来组织,而日志文件不适用文件组。
SQL SERVER2005数据库包括如下数据库:master、tempdb、msdb、model是个系统数据库,还有一个可选的示例数据库Adventureworks。
3)什么是架构?它的作用是什么? 架构是数据库对象的命名空间,即架构定义了一个边界,边界内的所有名称都是唯一的。架构本身在数据库中必须是唯一的,所以数据库中的每个对象都有一个形式为的唯一完全限定名称。在数据库内,可将其缩短为。
通过架构与对象所有权的分离,可以:
1)在将数据库对象组织到命名空间中时灵活性更强,因为将对象分组到架构中并不依赖于对象所有权;
2)权限管理更加简单,因为既可以对单个对象授予权限,又可以在架构范围授予权限;
3)可管理性提高,因为删除一个用户不必重命名该用户所拥有的所有对象。
2.解答题:
1)用T-SQL语言创建一个数据库学号+StudentDB,要求如下:
a.数据库名为学号+StudentDB
b.创建两个数据文件,主数据文件名为StudentDB_data1,将文件放在Primary文件组内,存放在D盘根目录下,初始大小为M,自动按%增长,最大为M;辅助数据文件名为StudentDB_data2,将文件放在新建的Secondary文件组内,存放在D盘根目录下,初始大小为M,文件大小不自动增长。
c.创建日志文件,文件名为StudentDB_log,将文件存放在E盘根目录下,初始大小为M,文件大小不自动增长。
要求使用两种思路解答此题,
第一种思路是先创建一个仅有primary的文件组的数据库,然后通过alter database命令去修改原来的数据库,为它增加文件组,增加辅助数据文件。
第二种思路是直接一步到位完成数据库的创建,包括primary文件组,secondary文件组,主要数据文件,辅助数据文件,日志的创建。
*/
--2)在题目(1)中数据库中创建架构Testschema,要求所有者是dbo,写出创建的命令。--(a)
create database [9651105StudentDB]
on(name=studentDB_data1,
filename='d:studentDB_',
size=50mb,
filegrowth=20%,
maxsize=400mb)
log on
(name=studentDB_log,
filename='d:studentDB_',
size=6mb,
filegrowth=0)
go
alter database [9651105studentDB] add filegroup secondary
go
alter database [9651105DB] add file
(name=studentDB_data2,
filename='d:studentDB_',
size=10mb,
filegrowth=0) to filegroup secondary
go
use master
go
drop database [9651105studentDB]
go
--(b)
create database [9651105studentDB]
on
PRIMARY (name=studentDB_data1,
filename='d:studentDB_', size=50mb,
filegrowth=20%,
maxsize=400mb),
filegroup secondary
(name=studentDB_data2,
filename='d:studentDB_',
size=10mb,
filegrowth=0)
log on
(name=studentDB_log,
filename='d:studentDB_',
size=6mb,
filegrowth=0)
go
use [9651105DB]
GO
Create schema hema
go
/*3)根据下面的要求建立分区表:
表名:Product
字段:ProductID int,Name varchar(50),color
varchar(15),listPrice int,ProductID为主键。
通过ProductID分区,边界值分别为,,,边界值放置在左边分区,要求将分区分配给不同的文件组。
(1)写出创建数据库(DB+学号),文件组(fg1),分区函数(pf_productID),分区方案(ps_productID)并分区表的语句;
(2)往表中每个区插入一条数据,写出插入数据的语句;
(3)写出通过$partition函数查询分区的语句,并将查询结果截图。*/
create database [DB9651105] on
PRIMARY (name=DB9651105_data,
filename='d:studentDB_',
size=10mb,
filegrowth=10%,
maxsize=50mb),
filegroup fg1
(name=DB9651105_data1,
filename='d:DB9651105_',
size=10mb,
filegrowth=0),
log on
(name=DB9651105_log,
filename='d:DB9651105_',
size=5mb,
filegrowth=0)
go
use [DB9651105]
GO
--创建分区函数
create partition function pf_ProductID(int)
as range left
for values(100)
go
--创建分区方案
create partition scheme ps_ProductID
as partition pf_productID
TO([PRIMARY],fg1)
go
--创建分区表 create table [dbo].[Product](ProductID int primary key,
[Name] varchar(50),
color varchar(15),
listprice int)
on ps_ProductID(ProductID)
GO
--插入数据
insert into [dbo].Product values(1,'pen','black',30)
go
insert into [dbo].Product values(110,'pencil','red',3)
go
insert into [dbo].Product values(210,'book','yellow',10)
go
insert into [dbo].Product values(310,'papers','white',20)
go
--查询分区信息
select *,$_ProductID(ProductID) PartitionNo from
t go
select
作业3
--(一)什么是索引?怎么分类?它有什么作用?根据自己的理解简单说明创建索引的规则。
--答:索引是表(或视图)关联页的集合,用于加速从表中检索行或者用于强制实施唯一性。
--索引主要分为聚集索引和非聚集索引。
--聚集索引:通过物理上的顺序进行排列而建立的索引。
--非聚集索引:通过索引表(相当于书的目录)的方法建立的索引。
--
--创建索引最重要的重用就是为了提高查询性能,所以是否在列* from t where
$_ProductID(ProductID)=1 上创建索引取决于该列
是否经常用于查询。
--(二)聚集索引和非聚集索引有什么区别?分别说明在什么场合下创建聚集索引和非聚集索引?
--答:聚集索引以基于聚集索引键的顺序和存储表的数据行。
--使用聚集索引的场合:
--(1)使用BETWEEN、>、>=、<和<=之类的运算符返回一系列值。
--(2)返回使用ORDER BY或GROUP BY子句排序的数据。
--(3)返回使用JOIN子句合并的数据;通常是外键列。
--(4)返回大型结果集。
--使用非聚集索引的场合:
--(1)使用JOIN或GROUP BY子句提高查询性能。对涉及联接和分组操作的列创建多个非聚集索引,并对所有外键列创建聚集索引。
--(2)表更新频率很低,但是包含大量数据。
--(3)知道查询不会返回大型结果集。
--(4)需要对返回确切结果的查询搜索条件频繁涉及的列进行索引。
--(5)需要对包含多个不同值的列进行索引。
作业4
--(1)
--创建一个名为didateHistory 的新表。JobCandidateHistory 表有以下列和约束:
--JobCandidateID。不可包含null 值的int 列。此列中的值必须是惟一的。
--Rating。不可包含null 值的int 列。此列中的值必须介于1 到10 之间,默认值为5。--RejectedDate。不可包含null 值的datetime 列。
--ContactID。可包含null 值的int 列。此列是t
表中的ContactID 列的外键。
USE [AdventureWorks] GO
CREATE TABLE [HumanResources].[JobCandidateHistory](
[JobCandidateID] [int] NOT NULL UNIQUE,
[Rating] [int] NOT NULL CONSTRAINT
[DF_JobCandidateHistory_Rating] Default (5),
[RejectedDate] [datetime] NOT NULL,
[ContactID] [int] NULL,
CONSTRAINT [FK_JobCandidateHistory_Contact_ContactID]
FOREIGN KEY(ContactID) REFERENCES [Person].[Contact]
(ContactID),
CONSTRAINT [CK_JobCandidateHistory_Rating]
CHECK ([Rating]>=0 AND [Rating]<=10)
) ON [PRIMARY]
--(2)
--测试default约束
insert into [HumanResources].[JobCandidateHistory]
([JobCandidateID],[RejectedDate],[ContactID])
values(2,'2008-10-31',Null)
select * from [HumanResources].[JobCandidateHistory]
--测试唯一性约束
insert into [HumanResources].[JobCandidateHistory]
([JobCandidateID],[RejectedDate],[ContactID])
values(1,'2008-10-31',Null)
--测试foreign key
select * from [Person].[Contact]
insert into [HumanResources].[JobCandidateHistory]
([JobCandidateID],[RejectedDate],[ContactID])
values(3,'2008-10-31',19978)
--测试check约束
insert into [HumanResources].[JobCandidateHistory] ([JobCandidateID],[Rating],[RejectedDate],[ContactID])
values(3,11,'2008-10-31',19977)
--(3)
--在didate 表上创建一个名为dJobCandidate 的新的DELETE 触发器,
--它在有人删除求职者时将该求职者的信息复制到
didateHistory 表中。
--JobCandidateID列必须直接复制过去,并且RejectedDate通过使用getdate 函数设置为当前日期。
--Rating 应保留为其默认值,并且ContactID 应设置为NULL。
USE AdventureWorks
GO
CREATE TRIGGER [dJobCandidate] ON
[HumanResources].[JobCandidate]
AFTER DELETE AS
BEGIN
SET NOCOUNT ON;
INSERT INTO
[HumanResources].[JobCandidateHistory]
(JobCandidateID,RejectedDate) SELECT
JobCandidateID,getdate()
FROM
deleted
END;
--测试触发器
select * from didate
delete from didate where
JobCandidateID=1
select * from [HumanResources].[JobCandidateHistory]
作业5 (一) AdventureWorks 维护着一份各种产品在全年中的特价供应和折扣的列表,该列
表同时适用于客户和分销商。目前,此信息只能直接从
lOffer 表中获得。一项新提出的要求是能够使用存储过程和用户定义函数检索此信息,并且使用存储过程插入新的特价供应。
按照如下要求创建存储过程:
1.在 Sales 架构中创建名为 GetDiscountsForCategoryAndDate
的存储过程,该
过程接受@Category 参数,此参数为 nvarchar 数据类型,并且最多接受 50
个字符,和另一个 @DateToCheck datetime输入参数。
o@DateToCheck 参数必须能够接受 NULL 默认值。如果为
@DateToCheck 参数指定了 NULL 值,则使用 GETDATE 函数将该参数值设置为当前日期和
时间。
o该过程从 lOffer 中检索以下列:Description、
DiscountPct、Type、Category、StartDate、EndDate、MinQty 和 MaxQty。
应该基于 @Category 和 @DateToCheck 参数筛选行。
create procedure countsForCategoryAndDate
(@Category nvarchar(50),@DateToCheck datetime=null)
as
begin
select
Description,DiscountPct,Type,Category,StartDate,EndDate,MinQty,MaxQty
from lOffer
where
end
Category=@Category and
isnull(@DateTocheck,getdate()) between StartDate and EndDate GO
作业6
(一)在某个SQL SERVER 2005数据库服务器中有数据库ExerciseDB,数据库ExerciseDB
中有表Tb (ID int, name varchar(10)),表中有两条数据(1,’a’)和(2,’b’)。
根据下面的要求写出Transact-SQL语句。
(1)设置ExerciseDB的恢复模式为完整模式;
(2)创建备份设备BackupDevice,该设备利用磁盘,文件的完整路径为
C:;
(3)对ExerciseDB做完整数据库备份至设备BackupDevice;
(4)插入数据(3,’c’)至Tb,对ExerciseDB做差异备份至设备BackupDevice;
(6)插入数据(5,’e’)至Tb,对ExerciseDB做日志备份至设备BackupDevice;
(8)插入数据(7,’g’)至Tb,对ExerciseDB做差异备份至设备BackupDevice;
(9)删除数据库ExerciseDB,利用前面的备份恢复至Tb中有2条数据的状态;
(10)删除数据库ExerciseDB,利用前面备份恢复至Tb中有3条数据的状态;
(12)删除数据库ExerciseDB,利用前面备份恢复至Tb中有5条数据的状态;
(14)删除数据库ExerciseDB,利用前面备份恢复至Tb中有7条数据的状态;
create database ExerciseDB
use ExerciseDB
GO
create table Tb (
ID int,
name varchar(10))
insert into Tb(ID,name)
values (1,'a')
insert into Tb(ID,name)
values (2,'b')
/doc/
E [master]
GO
ALTER DATABASE [ExerciseDB] SET RECOVERY FULL WITH
NO_WAIT
GO
/doc/
E [master]
GO
EXEC _addumpdevice @devtype = N'disk',
@logicalname =
N'BackupDevice', @physicalname = N'C:'
GO
/doc/
E [master]
GO
BACKUP DATABASE [ExerciseDB] TO [BackupDevice] WITH
NOFORMAT, NOINIT, NAME = N'ExerciseDB-完整数据库备份', SKIP,
NOREWIND, NOUNLOAD, STATS = 10
GO
/doc/
e ExerciseDB
GO insert into Tb(ID,name)
values (3,'c')
USE [master]
BACKUP DATABASE [ExerciseDB] TO [BackupDevice] WITH
DIFFERENTIAL , NOFORMAT, NOINIT, NAME = N'ExerciseDB-差异数据库备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
/doc/
e ExerciseDB
GO
insert into Tb(ID,name)
values (5,'e')
USE [master]
GO
BACKUP LOG [ExerciseDB] TO [BackupDevice] WITH
NOFORMAT, NOINIT, NAME =
N'ExerciseDB-事务日志备份', SKIP, NOREWIND, NOUNLOAD,
STATS = 10
GO
/doc/
e ExerciseDB
GO
insert into Tb(ID,name)
values (7,'g')
USE [master]
GO
BACKUP DATABASE [ExerciseDB] TO [BackupDevice] WITH
DIFFERENTIAL , NOFORMAT, NOINIT, NAME = N'ExerciseDB-差异数据库备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO DATABASE [ExerciseDB]
GO
USE [master]
GO
RESTORE
TO
N'D:SQL2005MSSQL.1MSSQLDATAExerciseDB_',
NOUNLOAD, STATS = 10 GO
DATABASE [ExerciseDB]
GO
USE [master]
GO
RESTORE DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 1, NORECOVERY,
NOUNLOAD, STATS = 10
GO
RESTORE
GO
DATABASE [ExerciseDB]
GO
USE [master]
GO
RESTORE DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 1, NORECOVERY,
NOUNLOAD, STATS = 10
GO
RESTORE LOG [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 4, NOUNLOAD, STATS = 10
DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 2, NOUNLOAD, STATS = 10
DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 1, MOVE N'ExerciseDB_log' GO
DATABASE [ExerciseDB]
USE [master]
GO
RESTORE DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 1, NORECOVERY,
NOUNLOAD, STATS = 10
GO
RESTORE DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 2, NORECOVERY,
NOUNLOAD, STATS = 10
GO
RESTORE DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 3, NORECOVERY,
NOUNLOAD, STATS = 10
GO
RESTORE
GO
(二)已知SQL SERVER 2005数据库服务器GZ_SQL。在服务器上有数据库DB,DB上有表Test,该表属于架构Sales。按照下面的要求写出Transact-SQL语句
(1)创建一个SQL SERVER验证的登陆名HRAppadmin,密码是强密码,默认数据库是DB。
(2)为登陆名HRAppadmin创建一个用户HRApp,默认架构是Sales。
(3)将Test的SELECT,INSERT权限授予HRApp用户。
(4)将Sales架构上的SELECT权限授予HRApp用户。
(5)撤销HRApp用户对表Test的INSERT权限。
/doc/
DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 6, NOUNLOAD, STATS = 10 E [master]
GO
CREATE LOGIN [HRAppadmin] WITH
PASSWORD=N'pa$$w0rd',
GO
/doc/
E [DB]
GO
CREATE USER [HRApp] FOR LOGIN [HRAppadmin] WITH
DEFAULT_SCHEMA=[Sales]
GO
/doc/
e [DB]
GO
GRANT INSERT ON [Sales].[Test] TO [HRApp] WITH GRANT
OPTION
GO
use [DB]
GO
GRANT SELECT ON [Sales].[Test] TO [HRApp] WITH GRANT
OPTION
GO
--Select * from
/doc/
e [DB]
GO
GRANT SELECT ON SCHEMA::[Sales] TO [HRApp] WITH
GRANT OPTION
GO
DEFAULT_DATABASE=[DB],
CHECK_EXPIRATION=OFF, CHECK_POLICY=ON 5. use [DB]
Revoke INSERT ON [Sales].[Test] TO [HRApp] CASCADE
Go
选择题
1.事务语句:开始的,结束的,回滚的
2.数据库管理系统有哪此?()
3.表是由什么组成?字段和记录
4.数据类型是什么。决定字段能包含哪类型数据的设置
5.修改数据库记录的语句(alter(定义),update(修改)
6.数据库管理发展的三个阶段当中没有专门的软件对数据进行管理的是人工管理阶段
7.规范化理论是关系数据库设计的基础:第一范式P7
8.如果事务1获得了数据库对象的排他锁(排他锁,排除其他事务对他的权限)
9.如果安全性比较高的数据库,数据库应该采取哪种恢复模型。完全恢复模型
35、10.数据库管理系统主要功能是?数据库预设数据库运行和管理数据定义数据操纵
保存事务的的语句?save transaction
1.创建数据库之前应该做什么?(画ER图)
2.学生与课程之间是典型的什么关系(多对多关系)
2005属于一个数据库管理系统
4.雇员与订单的关系(一对多关系)
5.保证数据库中数据的独立性,要修改什么?(三级模式中的两层映象)
6.关系模型主码有几个?(一个)
7.不属于SQL2005中BI(智能系统)的是(关系数据库((不是报表不是集成的那个))7以下软件哪个不是数据库管理系统?DB(属于编程的)
8.更新数据表中的某个命令用什么?(update) 9.关于索引中不正确的是:一个数据表可以有多个聚集索引。
1、提交事务的语句是什么?commit transaction
2、A VG属于什么函数?聚合函数
3、SQL2005数据库中主数据文件用……作为拓展名?.mdf
4、实体完整性,只通过……来实现的(主码)
5、数据库系统和数据管理系统的关系是(DBS包括DBMS)
6、概念模型是按用户的观点来对数据和信息建模,其中最著名的是关系模型
7、下列不属于因事务的并发执行而带来的事务不一致的是(死锁)
8、对于大型企业,采用SQL2005的什么版本(企业版)
9、采用模糊查询XXX使用------关键字(like)
10、除了Management studio(可视化工具)还可以创建索引的是:(create index)
判断题
1.利用视图向数据表插入数据时,必须确保视图中没有定义的列允许为空值,否则系
统就提示出错信息(对)
2.通过视图,用户可以更新数据表中的任何列值(错)
3.用户只能访问视图中定义的字段(对)
4.数据库存储在表中(错)
5.在查询中可以增加新的字段用于计算(对)
6.要将从数据库中查到的数据降序要用asc (错)
7.删除数据的SQL语句是drop (错)
5、要求组建字段不可为空(错)
7.主键字的值的是不可重复的唯一的且不为空。(对)
8.仓库中可以存放多种零件,每个零件可以存放在不同的仓库是一对多的关系(错)
2005是网状型数据管理系统(错)
10.数据库经过了层次型,网状型,关系型,现在常用的是网状型(错) 11.信息与数据的关系,信息是经过提炼升华的数据(对)
12.具有数据结构性,具有冗余度,较低数据独立性与扩展性(错)
2005数据库日记文件的后缀名是log (对)
2.日期型字段不能进行排序(错)
3.修改数据库记录的语句是ather(错)(【正确答案是update】
4.利用SQL的delete语句可以删除数据库(错)
5.在SQL定义某个表格命令是用create(对)
6.如果一个关系但他是另一个关系的关键字,则外键定义````````(对)
7.主键的作用是对表中的数据唯一性(对)
8.学生表与专业表进行xxxx,参照完整性(对)
2005是microsoft 的软件(对)
10.网状模型是当前最常用的(错)
1、没有主键表就不满足数据库的完整性(√)
2、事务在对数据库对象修改之前,必须先对其共享锁,直到事物结束前才能释放(×)
加排它锁
3、利用SQL 2005 查询create语句可创建数据库(√)
4、主键的作用是对表中的数据(实施)提供参照完整性,(×)外键
5、如果表中某个属性,或某个属性值,可以唯一标志,即可以选择为外键(×)
6、索引可以加快查询和排序的速度(√)
7、往数据库中添加数据的语句是insert into(错,只用insert,insert into用于插入数
据表,153页)
8、使用设计器建立一个新表,主要输入字段名称和和数据类型。(√)
9、如果第一个关系满足第一范式,而且每一个非主属性,全部依赖**** 则为第三范 式模型(×)
10、关系模型的规范化,需要考虑数据库间的依赖关系,二数据库关系中最重要的
是函数依赖(√)
2023年6月21日发(作者:)
SQl考试整理后完整版
1、保存事务的语句save transaction
2、在创建数据库之前要做的事画E—R图
3、学生与课程之间是典型的多对多关系
4、SQL sever 2005是一个数据库管理系统
5、顾员与订单时一对多关系
6、要保证数据系统中的数据之间的独立性修改三级模式之间的映象
7、关系模型的主码只有一个
8、如果要更新数据库中某个命令,实用update语句
9、关于索引中不正确的是:一个数据表可以有多个聚集索引。(选择题)
10、数据的完整性包括实体、参照、用户定义三种
11、数据库三级模式的两层映象是外模式/模式、模式/内模式
12、保证数据库数据的独立性逻辑独立性和物理独立性
13、一个完整的数据库系统由数据库管理系统、应用系统及开发工具、数据库管理员、系统分析员和用户组成
14、Management studio-SQL 2005是可视化集成环境,是用于访问、配置、管理
15、如果想暂停使用数据库,可将其从当前数据库中分离,使用时再附加
16、SQL 2005针对数据库开发,三个不同故障恢复模型完整恢复模型、大容量日志恢复模型、简单恢复模型
17、SQL 2005两种身份验证模式windows身份验证模式和混合安全身份验证模式
18、SQL 2005日志文件后缀名是.LDF
19、日期型字段不能进行排序。(F)
20、修改数据库的预计是ought (F)【正确答案是update】
21、Delete 语句可以删除一个数据库(F) 22、数据库语句定义一个表命令是用create (T)
23、……关系……属性……并非……主键,则称关系的外键(T)【没记完整,各位记住答案就好了】
24、主键唯一性(T)
25、学生与专业表之间的建立完整性约束条件称参照完整性(T)
26、SQL 2005是microsoft公司的软件(T)
27、网状模型是目前最常用的数据库模型,是关系模型的基础(F)
1、学生表(学号(主键)姓名性别出生日期民族家庭地址班级联系电话)
2、课程表(课程ID(主键)课程名称)
3、学习表(学号课程ID(主键)成绩)
4、查出所有男同学的基本信息
select *
from 学生表
where 性别='男'
5、查出学号姓名班级课程名称成绩
select 学号姓名班级课程名称成绩
From 学生表课程表学生表
Where 课程表。课程ID=学习表。课程ID and
学生表。学号=学习表。学号
6、查出成绩表中成绩大于平均成绩的基本信息
Select *
from 学生表
where 成绩 >(select avg (成绩)
from 成绩表)
7、查出民族为汉族或回族的基本信息
select *
from 学生表
where 民族='汉族' or 民族='回族'
8、查出成绩70-80分的学生姓名和课程名称和成绩 select 姓名 课程名称 成绩
From 学生表 课程表 学习表
Where 课程表。课程ID=学生表。课程ID and
学生表。学号=学习表。学号 and
成绩 between '70' and '80'
9、在人员信息表中查出编号 姓名 年龄(24-28) 住址电话 手机号码(中国移动手机
用户(134-139)) QQ (不为空) e-mail (162)
Select *
From 人员信息表
Where 年龄 between 24 and 28
and email like '%126%'
and qq not null
and 手机号码 in (%134%-%139%)
10、已知人员信息表:编号,姓名,年龄,住宅电话,手机号码
销售信息表(操作员编号,顾客卡号,出售日期,金额)
顾客信息表(卡号,顾客姓名,固话,手机,累积购买金额)用联合查询的方法。查出
操作人员信息包括出售日期(日期),姓名,类别(操作)。顾客信息表包括出售日期,
顾客姓名,类别(购买)
Select 出售日期 as 日期, 操作人员as 姓名, 类别=‘操作’ from
销售信息表, 人员
信息表 Where 人员信息表. 编号=销售信息表. 操作员编号
Union
Select 出售日期, 顾客姓名,类别=‘购买’ from 顾客信息表, 人员信息表
Where 销售信息表. 顾客卡号=顾客信息表.卡号 11、根据(学生表、课程表、学习表)画一张画押图【矩形代表实体,椭圆代表属性】
学生表 学习表 课程表 课程名称 课程ID
学号 成绩 课程ID 学号 姓名 性别 民族 家庭住址
联系电话 出生日期 班级
12、提交事务的语句:commit transaction
13、A VG是属于聚合函数
14、SQL 2005主数据文件使用.mdf 作为扩展名。
15、实体完整性是靠主码来实现的。
16、数据库系统DBS与管理系统DBMS是什么关系?数据库系统DBS包括数据库管理系统DBMS
17、概念模型是按用户的观点来对数据和信息建模,其中最著名的是关系模型
18、对于大型数据库来说,SQL Server 2005是企业版本。
19、要使用模糊查询,……使用like来查询。
20、除了可视化用户还可以用什么来创建索引:create index
21、数据库技术大概经历了三个阶段:人工管理阶段文件管理阶段数据库管理阶段
22、实体之间的关系可以分为:一对一关系一对多关系多对多关系
23、常见数据库故障:事务故障系统故障介质故障计算机病毒
24、嵌套查询是指:将一个查询块嵌套在另一个查询块的when子句或having短语的条件中的查询
25、SQL 2005与access等桌面数据库相比,其中备份方面,除了备份数据库文件,还备份日志文件
26、SQL 2005提供了三种数据库恢复模型:完整恢复模型大量日志恢复模型简单恢复模型
27、没有主键的表,不满足数据的完整性(T)
28、SQL 2005提供四种网络协议:共存内存TCP/IP协议命名管道VIA
29、利用SQL语句create创建数据库。(T)
30、索引可以加快查询和排序的速度。(T) 31、记数据库,添加数据记录语句是:insect into
32、使用设计器建立一个新表,主要输入字段名称和数据类型。(T)
33、关系模式的规范化,需要考虑数据间的依赖关系,数据依赖中最重要的是函数依赖。(T)
34、学生表、教师表、课程表、成绩表、专业表五张表
学生表(学号、姓名、性别、出生日期、民族、住址、电话、班级)
教师表(系别、姓名、职称、课程编号、专业编号)
课程表(课程编号、课程名称)
成绩表(课程编号、学号、成绩)
专业表(专业编号、专业名称)
(1)给出一个查询结果有学号、姓名、性别、出生日期、课程名称、成绩;来自学生表、课程表、成绩表
(2)在这些表能不能插入新的记录,为什么?不能,因为找不到对应的对象,有多张表。
(3)给出一个视图,为成绩列表
I 查询出黄宏同学的计算机成绩?
Select 成绩
From 成绩列表
Where 姓名='黄宏' and '课程名称' ='计算机'
II 查询1980年以后出生的同学
Select *
From 学生表like '1980%'
Where 出生日期> 1979-12-31
35、回滚SQL语句:rollback transaction
36、以下软件哪个不是数据库管理系统?DB(属于编程的)
37、表式由什么组成的:字段和记录
38、数据类型是:决定字段能包含哪类型数据的设置
39、修改数据库的记录的SQL:update 40、下面名三个阶段中,没有专门的软件管理软件管理的是:人工管理阶段
41、规范化理论是关系数据库设计的理论基础,依据这一理论,关系数据库中的属性关系式:不可分解
42、对于安全性较高的数据库系统,应该采用哪种数据恢复模型:完整性完全的恢复模型
43、通过视图向数据表插入,其中不正确的是:通过视图可以更改数据列表中的任何列值
44、数据库管理系统式数据库系统的重要组成部分,它是位于操作系统与数据库之间的一层数据库软件中;它的主要功能包括:数据库预设数据库运行和管理数据定义数据操纵
45、模式是数据库中,全体数据的逻辑结构和存取结构的描述,它仅仅涉及具体存储细节和硬件环境,而不涉及到具体的值。
46、查询成绩在65到70分的男同学
Select *
From 成绩表
Where 成绩between 65 and 70 and 性别='男'
47、学生成绩低于60的增加5分
Update 成绩表
Set 成绩=成绩+5
Where 成绩<60
48、求学生的平均成绩
Select A VG(成绩)
From 成绩表
49、写出查询的准则,课程名称是计算机或英语之一
Where 课程名称in ('计算机','英语')
(1)出生日期在1980-12-31到1983-01-01之间
Where between出生日期1980-12-31 and 1983-01-01
(2)学生名称包含“小”字的
Where 学生姓名like '%小' (3)课程除了计算机以外的其他课程
Where 课程名称not in ('计算机')
(4)画图:商店销售某商品的数量和日期
商店:商店名、商店号、地址
商品:商店号、商店名、单价
销售
单价日期
50、回滚SQL 语句:rollback transaction
51、以下软件哪个是数据库管理系统:DB
52、表里由字段和记录组成的
53、数据类型是:决定字段能包含哪类数据的设置
54、修改数据库的记录的SQL 语句是:update
55、下面三个阶段中,没有专门的软件管理软件的是:人工管理阶段
56、规范化理论是关系数据库进行设计的理论基础,依据这一理论,关系数据库中的属性关系是:不可分解
57、对于安全性较高的数据库系统,应该采用完全恢复模型 数据恢复模型。
58、通过视图向数据表插入数据,其中不正确的是:B 通过视图可以更改数据列表中的任何列值
59、数据库管理系统是数据库系统的重要组成部分,它是位于操作系统与数据库之间的一层数据库管理软件。它的主要功能包括:数据库预设、数据库运行和管理、数据定义、数据操纵
60、模式是数据库中全体数据的逻辑结构和存储结构的描述。它仅仅涉及到具体存储细节和硬件环境,而不涉及到具体的值。
61、数据库的设计方法有两种:原型法和结构化生命周期法
62、作为一个全新的企业数据库开发平台,SQL 主要由数据库引擎、分析服务、综合服务和报表服务组成
63、通过控制面板、SQL Server 2005配置管理器、管理工具,均可以管理SQL 2005服务器。 64、SQL 2005 数据库提供了两种创建数据库的方式:create
database 命令和数据库创建向导。
65、数据库存储在表中。(错)
66、查询中可以增加新的字段用于计算。(对)
67、……查询……降序……用ASC 关键字。(错)
68、删除数据的语句用drop 。(错)
69、主键字的值的是不可重复的唯一的且不为空。(对)
70、一个仓库可以存放多种零件,文件可以存放在不同仓库中,则零件和仓库是一对多关系。
71、数据库发展经历了网状型、关系型、层次型,其中最常用的是层次型。(错)
72、SQL 是网状型的管理系统。(错)
73、信息与数据的关系……(对)
74、数据库具有数字结构化较大的冗余度,较低的数据独立性、可扩展性的特点。(错)
商店 商品
商店名 商店号 地址 商店号
商店名
数量
75、(1)用SQL语句创建学生表。要求:命名:学生数据类型:符型属性:学号(主键)、名称、性别、政治面貌。
Creat table 学生
学号varchar(10) primary key not null,
名称varchar(8) null,
性别varchar(2) null,
政治面貌varchar(20)
(2)用SQL语句为学生表添加如下记录:0001,张三,男,党员
insect into 学生
values (‘0001’,’张三’,’男’,’党员’) (3)用SQL语句将所有党员的记录改成“共产党员”。
update 学生set 政治面貌=’共产党员’
where 政治面貌=’党员’
(4)用SQL语句删除学生为0003的记录。
delete from 学生
where 学号=’0003’
(5)用SQL语句查出所有男同学的学号、姓名、政治面貌
select 学号,姓名,政治面貌
from 学生
where 性别=’男’
(6)用SQL语句查出政治面貌为党员或团员的信息
select *
from 学生
where 政治面貌=’党员’ or 政治面貌=’团员’
(7)用SQL语句查出每种政治面貌的学生人数。
select 政治面貌count(*) as ‘人数’
from 学生
group by 政治面貌
(8)设计E-R图,画工厂生产产品的数量和日期
工厂:工厂号、工厂名称、地址
产品:产品号、产品名称、成本
(3)查询顾客订单的信息,要求显示顾客编号、商品名称、订单金额等信息。
select erid 顾客编号,ame,/doc/
stname,item 商品名称,amount 订单金额
from orderdetails
od inner join customers c
on erid=erid
where erid='10449' --(6)查询订单中一共有几种商品。(distinct)
select count(item) from orderdetails
select count(distinct item) 商品种类数from orderdetails
--(8)查询十二月份订购商品金额的平均值。(avg)
select avg(amount) 订购商品金额平均值
from orderdetails
where substring(order_date,4,3)='dec'
--或者
select avg(amount) 订购商品金额平均值
from orderdetails
where order_date like '%dec%'
--(11)统计每个州(state)的顾客数,显示州和该州的顾客人数。(group by)
select state 所在州,count(customerid) 顾客人数
from customers group by state
--(14)求orderdetails 表中每个商品的单价。(单价等于总额度除总数量) (/)
select distinct item 商品,sum(amount)/sum(quantity) 单价
from orderdetails group by item
--(16)查询来自Arizona, Washington, Oklahoma, Colorado, or
Hawaii.的客户firstname, city, and state 。(in) 工厂
名称 工厂工厂号 地址 生产 日期
数量 产品 产品号
成本
产品名称
select firstname,city,state
from customers
where
in('Arizona','Washington','Oklahoma','Colorado','Hawaii')
--(17)统计各个州的顾客数,并且顾客数大于。(having)
state select count(customerid) 顾客数,state 所在州
from customers
group by state
having count(customerid)>1
--(19)统计每个客户购物次数和购物总金额数,显示出购物次数超过一次的顾客的编号、购物次数、总金额数。(having)
select customerid 顾客的编号,count(customerid) 购物次数,sum(amount)总金额数from orderdetails group by customerid
having count(customerid)>1
--20)一个完整的数据库生命周期所涵盖的三种不同的企业角色是什么?
--数据库管理人员(DBA),数据库应用开发人员(DBD),数据库商业智能开发人员(DBI)
作业2
1)什么是文件组,它有什么作用?
文件组是数据文件的逻辑集合,它使管理员能够将文件组中的所有文件作为单独的一项进行管理。文件组可以控制数据库中各个对象的物理布局,这可提供大量可管理性和性能方面的好处。例如,可使用多个文件组,对数据库中数据在存储设备中的物理存储方式进行控制,并将读写数据与只读数据进行分离管理,这可以显著提高读写数据的性能。 SQL SERVER 2005有一个主文件组,另外还可以有多个用户定义的文件组,即次文件组。
2)SQL SERVER 2005中数据库的组成是怎样的?
SQL SERVER2005中数据库由数据文件和日志文件组成,分为主数据文件,通常使用.mdf扩展名,辅助数据文件,通常使用.ndf扩展名。其中数据文件可以通过文件组来组织,而日志文件不适用文件组。
SQL SERVER2005数据库包括如下数据库:master、tempdb、msdb、model是个系统数据库,还有一个可选的示例数据库Adventureworks。
3)什么是架构?它的作用是什么? 架构是数据库对象的命名空间,即架构定义了一个边界,边界内的所有名称都是唯一的。架构本身在数据库中必须是唯一的,所以数据库中的每个对象都有一个形式为的唯一完全限定名称。在数据库内,可将其缩短为。
通过架构与对象所有权的分离,可以:
1)在将数据库对象组织到命名空间中时灵活性更强,因为将对象分组到架构中并不依赖于对象所有权;
2)权限管理更加简单,因为既可以对单个对象授予权限,又可以在架构范围授予权限;
3)可管理性提高,因为删除一个用户不必重命名该用户所拥有的所有对象。
2.解答题:
1)用T-SQL语言创建一个数据库学号+StudentDB,要求如下:
a.数据库名为学号+StudentDB
b.创建两个数据文件,主数据文件名为StudentDB_data1,将文件放在Primary文件组内,存放在D盘根目录下,初始大小为M,自动按%增长,最大为M;辅助数据文件名为StudentDB_data2,将文件放在新建的Secondary文件组内,存放在D盘根目录下,初始大小为M,文件大小不自动增长。
c.创建日志文件,文件名为StudentDB_log,将文件存放在E盘根目录下,初始大小为M,文件大小不自动增长。
要求使用两种思路解答此题,
第一种思路是先创建一个仅有primary的文件组的数据库,然后通过alter database命令去修改原来的数据库,为它增加文件组,增加辅助数据文件。
第二种思路是直接一步到位完成数据库的创建,包括primary文件组,secondary文件组,主要数据文件,辅助数据文件,日志的创建。
*/
--2)在题目(1)中数据库中创建架构Testschema,要求所有者是dbo,写出创建的命令。--(a)
create database [9651105StudentDB]
on(name=studentDB_data1,
filename='d:studentDB_',
size=50mb,
filegrowth=20%,
maxsize=400mb)
log on
(name=studentDB_log,
filename='d:studentDB_',
size=6mb,
filegrowth=0)
go
alter database [9651105studentDB] add filegroup secondary
go
alter database [9651105DB] add file
(name=studentDB_data2,
filename='d:studentDB_',
size=10mb,
filegrowth=0) to filegroup secondary
go
use master
go
drop database [9651105studentDB]
go
--(b)
create database [9651105studentDB]
on
PRIMARY (name=studentDB_data1,
filename='d:studentDB_', size=50mb,
filegrowth=20%,
maxsize=400mb),
filegroup secondary
(name=studentDB_data2,
filename='d:studentDB_',
size=10mb,
filegrowth=0)
log on
(name=studentDB_log,
filename='d:studentDB_',
size=6mb,
filegrowth=0)
go
use [9651105DB]
GO
Create schema hema
go
/*3)根据下面的要求建立分区表:
表名:Product
字段:ProductID int,Name varchar(50),color
varchar(15),listPrice int,ProductID为主键。
通过ProductID分区,边界值分别为,,,边界值放置在左边分区,要求将分区分配给不同的文件组。
(1)写出创建数据库(DB+学号),文件组(fg1),分区函数(pf_productID),分区方案(ps_productID)并分区表的语句;
(2)往表中每个区插入一条数据,写出插入数据的语句;
(3)写出通过$partition函数查询分区的语句,并将查询结果截图。*/
create database [DB9651105] on
PRIMARY (name=DB9651105_data,
filename='d:studentDB_',
size=10mb,
filegrowth=10%,
maxsize=50mb),
filegroup fg1
(name=DB9651105_data1,
filename='d:DB9651105_',
size=10mb,
filegrowth=0),
log on
(name=DB9651105_log,
filename='d:DB9651105_',
size=5mb,
filegrowth=0)
go
use [DB9651105]
GO
--创建分区函数
create partition function pf_ProductID(int)
as range left
for values(100)
go
--创建分区方案
create partition scheme ps_ProductID
as partition pf_productID
TO([PRIMARY],fg1)
go
--创建分区表 create table [dbo].[Product](ProductID int primary key,
[Name] varchar(50),
color varchar(15),
listprice int)
on ps_ProductID(ProductID)
GO
--插入数据
insert into [dbo].Product values(1,'pen','black',30)
go
insert into [dbo].Product values(110,'pencil','red',3)
go
insert into [dbo].Product values(210,'book','yellow',10)
go
insert into [dbo].Product values(310,'papers','white',20)
go
--查询分区信息
select *,$_ProductID(ProductID) PartitionNo from
t go
select
作业3
--(一)什么是索引?怎么分类?它有什么作用?根据自己的理解简单说明创建索引的规则。
--答:索引是表(或视图)关联页的集合,用于加速从表中检索行或者用于强制实施唯一性。
--索引主要分为聚集索引和非聚集索引。
--聚集索引:通过物理上的顺序进行排列而建立的索引。
--非聚集索引:通过索引表(相当于书的目录)的方法建立的索引。
--
--创建索引最重要的重用就是为了提高查询性能,所以是否在列* from t where
$_ProductID(ProductID)=1 上创建索引取决于该列
是否经常用于查询。
--(二)聚集索引和非聚集索引有什么区别?分别说明在什么场合下创建聚集索引和非聚集索引?
--答:聚集索引以基于聚集索引键的顺序和存储表的数据行。
--使用聚集索引的场合:
--(1)使用BETWEEN、>、>=、<和<=之类的运算符返回一系列值。
--(2)返回使用ORDER BY或GROUP BY子句排序的数据。
--(3)返回使用JOIN子句合并的数据;通常是外键列。
--(4)返回大型结果集。
--使用非聚集索引的场合:
--(1)使用JOIN或GROUP BY子句提高查询性能。对涉及联接和分组操作的列创建多个非聚集索引,并对所有外键列创建聚集索引。
--(2)表更新频率很低,但是包含大量数据。
--(3)知道查询不会返回大型结果集。
--(4)需要对返回确切结果的查询搜索条件频繁涉及的列进行索引。
--(5)需要对包含多个不同值的列进行索引。
作业4
--(1)
--创建一个名为didateHistory 的新表。JobCandidateHistory 表有以下列和约束:
--JobCandidateID。不可包含null 值的int 列。此列中的值必须是惟一的。
--Rating。不可包含null 值的int 列。此列中的值必须介于1 到10 之间,默认值为5。--RejectedDate。不可包含null 值的datetime 列。
--ContactID。可包含null 值的int 列。此列是t
表中的ContactID 列的外键。
USE [AdventureWorks] GO
CREATE TABLE [HumanResources].[JobCandidateHistory](
[JobCandidateID] [int] NOT NULL UNIQUE,
[Rating] [int] NOT NULL CONSTRAINT
[DF_JobCandidateHistory_Rating] Default (5),
[RejectedDate] [datetime] NOT NULL,
[ContactID] [int] NULL,
CONSTRAINT [FK_JobCandidateHistory_Contact_ContactID]
FOREIGN KEY(ContactID) REFERENCES [Person].[Contact]
(ContactID),
CONSTRAINT [CK_JobCandidateHistory_Rating]
CHECK ([Rating]>=0 AND [Rating]<=10)
) ON [PRIMARY]
--(2)
--测试default约束
insert into [HumanResources].[JobCandidateHistory]
([JobCandidateID],[RejectedDate],[ContactID])
values(2,'2008-10-31',Null)
select * from [HumanResources].[JobCandidateHistory]
--测试唯一性约束
insert into [HumanResources].[JobCandidateHistory]
([JobCandidateID],[RejectedDate],[ContactID])
values(1,'2008-10-31',Null)
--测试foreign key
select * from [Person].[Contact]
insert into [HumanResources].[JobCandidateHistory]
([JobCandidateID],[RejectedDate],[ContactID])
values(3,'2008-10-31',19978)
--测试check约束
insert into [HumanResources].[JobCandidateHistory] ([JobCandidateID],[Rating],[RejectedDate],[ContactID])
values(3,11,'2008-10-31',19977)
--(3)
--在didate 表上创建一个名为dJobCandidate 的新的DELETE 触发器,
--它在有人删除求职者时将该求职者的信息复制到
didateHistory 表中。
--JobCandidateID列必须直接复制过去,并且RejectedDate通过使用getdate 函数设置为当前日期。
--Rating 应保留为其默认值,并且ContactID 应设置为NULL。
USE AdventureWorks
GO
CREATE TRIGGER [dJobCandidate] ON
[HumanResources].[JobCandidate]
AFTER DELETE AS
BEGIN
SET NOCOUNT ON;
INSERT INTO
[HumanResources].[JobCandidateHistory]
(JobCandidateID,RejectedDate) SELECT
JobCandidateID,getdate()
FROM
deleted
END;
--测试触发器
select * from didate
delete from didate where
JobCandidateID=1
select * from [HumanResources].[JobCandidateHistory]
作业5 (一) AdventureWorks 维护着一份各种产品在全年中的特价供应和折扣的列表,该列
表同时适用于客户和分销商。目前,此信息只能直接从
lOffer 表中获得。一项新提出的要求是能够使用存储过程和用户定义函数检索此信息,并且使用存储过程插入新的特价供应。
按照如下要求创建存储过程:
1.在 Sales 架构中创建名为 GetDiscountsForCategoryAndDate
的存储过程,该
过程接受@Category 参数,此参数为 nvarchar 数据类型,并且最多接受 50
个字符,和另一个 @DateToCheck datetime输入参数。
o@DateToCheck 参数必须能够接受 NULL 默认值。如果为
@DateToCheck 参数指定了 NULL 值,则使用 GETDATE 函数将该参数值设置为当前日期和
时间。
o该过程从 lOffer 中检索以下列:Description、
DiscountPct、Type、Category、StartDate、EndDate、MinQty 和 MaxQty。
应该基于 @Category 和 @DateToCheck 参数筛选行。
create procedure countsForCategoryAndDate
(@Category nvarchar(50),@DateToCheck datetime=null)
as
begin
select
Description,DiscountPct,Type,Category,StartDate,EndDate,MinQty,MaxQty
from lOffer
where
end
Category=@Category and
isnull(@DateTocheck,getdate()) between StartDate and EndDate GO
作业6
(一)在某个SQL SERVER 2005数据库服务器中有数据库ExerciseDB,数据库ExerciseDB
中有表Tb (ID int, name varchar(10)),表中有两条数据(1,’a’)和(2,’b’)。
根据下面的要求写出Transact-SQL语句。
(1)设置ExerciseDB的恢复模式为完整模式;
(2)创建备份设备BackupDevice,该设备利用磁盘,文件的完整路径为
C:;
(3)对ExerciseDB做完整数据库备份至设备BackupDevice;
(4)插入数据(3,’c’)至Tb,对ExerciseDB做差异备份至设备BackupDevice;
(6)插入数据(5,’e’)至Tb,对ExerciseDB做日志备份至设备BackupDevice;
(8)插入数据(7,’g’)至Tb,对ExerciseDB做差异备份至设备BackupDevice;
(9)删除数据库ExerciseDB,利用前面的备份恢复至Tb中有2条数据的状态;
(10)删除数据库ExerciseDB,利用前面备份恢复至Tb中有3条数据的状态;
(12)删除数据库ExerciseDB,利用前面备份恢复至Tb中有5条数据的状态;
(14)删除数据库ExerciseDB,利用前面备份恢复至Tb中有7条数据的状态;
create database ExerciseDB
use ExerciseDB
GO
create table Tb (
ID int,
name varchar(10))
insert into Tb(ID,name)
values (1,'a')
insert into Tb(ID,name)
values (2,'b')
/doc/
E [master]
GO
ALTER DATABASE [ExerciseDB] SET RECOVERY FULL WITH
NO_WAIT
GO
/doc/
E [master]
GO
EXEC _addumpdevice @devtype = N'disk',
@logicalname =
N'BackupDevice', @physicalname = N'C:'
GO
/doc/
E [master]
GO
BACKUP DATABASE [ExerciseDB] TO [BackupDevice] WITH
NOFORMAT, NOINIT, NAME = N'ExerciseDB-完整数据库备份', SKIP,
NOREWIND, NOUNLOAD, STATS = 10
GO
/doc/
e ExerciseDB
GO insert into Tb(ID,name)
values (3,'c')
USE [master]
BACKUP DATABASE [ExerciseDB] TO [BackupDevice] WITH
DIFFERENTIAL , NOFORMAT, NOINIT, NAME = N'ExerciseDB-差异数据库备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
/doc/
e ExerciseDB
GO
insert into Tb(ID,name)
values (5,'e')
USE [master]
GO
BACKUP LOG [ExerciseDB] TO [BackupDevice] WITH
NOFORMAT, NOINIT, NAME =
N'ExerciseDB-事务日志备份', SKIP, NOREWIND, NOUNLOAD,
STATS = 10
GO
/doc/
e ExerciseDB
GO
insert into Tb(ID,name)
values (7,'g')
USE [master]
GO
BACKUP DATABASE [ExerciseDB] TO [BackupDevice] WITH
DIFFERENTIAL , NOFORMAT, NOINIT, NAME = N'ExerciseDB-差异数据库备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO DATABASE [ExerciseDB]
GO
USE [master]
GO
RESTORE
TO
N'D:SQL2005MSSQL.1MSSQLDATAExerciseDB_',
NOUNLOAD, STATS = 10 GO
DATABASE [ExerciseDB]
GO
USE [master]
GO
RESTORE DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 1, NORECOVERY,
NOUNLOAD, STATS = 10
GO
RESTORE
GO
DATABASE [ExerciseDB]
GO
USE [master]
GO
RESTORE DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 1, NORECOVERY,
NOUNLOAD, STATS = 10
GO
RESTORE LOG [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 4, NOUNLOAD, STATS = 10
DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 2, NOUNLOAD, STATS = 10
DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 1, MOVE N'ExerciseDB_log' GO
DATABASE [ExerciseDB]
USE [master]
GO
RESTORE DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 1, NORECOVERY,
NOUNLOAD, STATS = 10
GO
RESTORE DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 2, NORECOVERY,
NOUNLOAD, STATS = 10
GO
RESTORE DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 3, NORECOVERY,
NOUNLOAD, STATS = 10
GO
RESTORE
GO
(二)已知SQL SERVER 2005数据库服务器GZ_SQL。在服务器上有数据库DB,DB上有表Test,该表属于架构Sales。按照下面的要求写出Transact-SQL语句
(1)创建一个SQL SERVER验证的登陆名HRAppadmin,密码是强密码,默认数据库是DB。
(2)为登陆名HRAppadmin创建一个用户HRApp,默认架构是Sales。
(3)将Test的SELECT,INSERT权限授予HRApp用户。
(4)将Sales架构上的SELECT权限授予HRApp用户。
(5)撤销HRApp用户对表Test的INSERT权限。
/doc/
DATABASE [ExerciseDB] FROM DISK =
N'C:' WITH FILE = 6, NOUNLOAD, STATS = 10 E [master]
GO
CREATE LOGIN [HRAppadmin] WITH
PASSWORD=N'pa$$w0rd',
GO
/doc/
E [DB]
GO
CREATE USER [HRApp] FOR LOGIN [HRAppadmin] WITH
DEFAULT_SCHEMA=[Sales]
GO
/doc/
e [DB]
GO
GRANT INSERT ON [Sales].[Test] TO [HRApp] WITH GRANT
OPTION
GO
use [DB]
GO
GRANT SELECT ON [Sales].[Test] TO [HRApp] WITH GRANT
OPTION
GO
--Select * from
/doc/
e [DB]
GO
GRANT SELECT ON SCHEMA::[Sales] TO [HRApp] WITH
GRANT OPTION
GO
DEFAULT_DATABASE=[DB],
CHECK_EXPIRATION=OFF, CHECK_POLICY=ON 5. use [DB]
Revoke INSERT ON [Sales].[Test] TO [HRApp] CASCADE
Go
选择题
1.事务语句:开始的,结束的,回滚的
2.数据库管理系统有哪此?()
3.表是由什么组成?字段和记录
4.数据类型是什么。决定字段能包含哪类型数据的设置
5.修改数据库记录的语句(alter(定义),update(修改)
6.数据库管理发展的三个阶段当中没有专门的软件对数据进行管理的是人工管理阶段
7.规范化理论是关系数据库设计的基础:第一范式P7
8.如果事务1获得了数据库对象的排他锁(排他锁,排除其他事务对他的权限)
9.如果安全性比较高的数据库,数据库应该采取哪种恢复模型。完全恢复模型
35、10.数据库管理系统主要功能是?数据库预设数据库运行和管理数据定义数据操纵
保存事务的的语句?save transaction
1.创建数据库之前应该做什么?(画ER图)
2.学生与课程之间是典型的什么关系(多对多关系)
2005属于一个数据库管理系统
4.雇员与订单的关系(一对多关系)
5.保证数据库中数据的独立性,要修改什么?(三级模式中的两层映象)
6.关系模型主码有几个?(一个)
7.不属于SQL2005中BI(智能系统)的是(关系数据库((不是报表不是集成的那个))7以下软件哪个不是数据库管理系统?DB(属于编程的)
8.更新数据表中的某个命令用什么?(update) 9.关于索引中不正确的是:一个数据表可以有多个聚集索引。
1、提交事务的语句是什么?commit transaction
2、A VG属于什么函数?聚合函数
3、SQL2005数据库中主数据文件用……作为拓展名?.mdf
4、实体完整性,只通过……来实现的(主码)
5、数据库系统和数据管理系统的关系是(DBS包括DBMS)
6、概念模型是按用户的观点来对数据和信息建模,其中最著名的是关系模型
7、下列不属于因事务的并发执行而带来的事务不一致的是(死锁)
8、对于大型企业,采用SQL2005的什么版本(企业版)
9、采用模糊查询XXX使用------关键字(like)
10、除了Management studio(可视化工具)还可以创建索引的是:(create index)
判断题
1.利用视图向数据表插入数据时,必须确保视图中没有定义的列允许为空值,否则系
统就提示出错信息(对)
2.通过视图,用户可以更新数据表中的任何列值(错)
3.用户只能访问视图中定义的字段(对)
4.数据库存储在表中(错)
5.在查询中可以增加新的字段用于计算(对)
6.要将从数据库中查到的数据降序要用asc (错)
7.删除数据的SQL语句是drop (错)
5、要求组建字段不可为空(错)
7.主键字的值的是不可重复的唯一的且不为空。(对)
8.仓库中可以存放多种零件,每个零件可以存放在不同的仓库是一对多的关系(错)
2005是网状型数据管理系统(错)
10.数据库经过了层次型,网状型,关系型,现在常用的是网状型(错) 11.信息与数据的关系,信息是经过提炼升华的数据(对)
12.具有数据结构性,具有冗余度,较低数据独立性与扩展性(错)
2005数据库日记文件的后缀名是log (对)
2.日期型字段不能进行排序(错)
3.修改数据库记录的语句是ather(错)(【正确答案是update】
4.利用SQL的delete语句可以删除数据库(错)
5.在SQL定义某个表格命令是用create(对)
6.如果一个关系但他是另一个关系的关键字,则外键定义````````(对)
7.主键的作用是对表中的数据唯一性(对)
8.学生表与专业表进行xxxx,参照完整性(对)
2005是microsoft 的软件(对)
10.网状模型是当前最常用的(错)
1、没有主键表就不满足数据库的完整性(√)
2、事务在对数据库对象修改之前,必须先对其共享锁,直到事物结束前才能释放(×)
加排它锁
3、利用SQL 2005 查询create语句可创建数据库(√)
4、主键的作用是对表中的数据(实施)提供参照完整性,(×)外键
5、如果表中某个属性,或某个属性值,可以唯一标志,即可以选择为外键(×)
6、索引可以加快查询和排序的速度(√)
7、往数据库中添加数据的语句是insert into(错,只用insert,insert into用于插入数
据表,153页)
8、使用设计器建立一个新表,主要输入字段名称和和数据类型。(√)
9、如果第一个关系满足第一范式,而且每一个非主属性,全部依赖**** 则为第三范 式模型(×)
10、关系模型的规范化,需要考虑数据库间的依赖关系,二数据库关系中最重要的
是函数依赖(√)
发布评论