SQL数据库练习打印.docx
- 文档编号:30007368
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:31
- 大小:33.45KB
SQL数据库练习打印.docx
《SQL数据库练习打印.docx》由会员分享,可在线阅读,更多相关《SQL数据库练习打印.docx(31页珍藏版)》请在冰豆网上搜索。
SQL数据库练习打印
1.触发器可以创建在(A)中。
A.表
2.删除表的语句是(A)。
A.DROP
3.以下触发器是当对[表1]进行(D)操作时触发。
D.修改、插入、删除
CreateTriggerabcon表1
Forinsert,update,delete
As……
4.规则对象在使用上与(A)约束类似。
A.CHECK
5.主索引可确保字段中输入值的(C)性。
C.唯一
6.关于视图下列哪一个说法是错误的(B)。
B.视图中也保存有数据
7.执行带参数的过程,正确的方法为(A)。
A.过程名参数
8.查询毕业学校名称与“清华”有关的记录应该用(D)。
D.SELECT*FROM学习经历WHERE毕业学校LIKE’%清华%’
9.Select职工号FROM职工WHERE工资>1250命令的功能是(D)。
D.从[职工]关系中检索工资大于1250的职工
10.关于关系图下列哪一个是正确的(C)。
C.关系图是在不同表中的字段之间建立关联
11.下面关于触发器的描述不正确的是(C)
A.每张表(视图)只有3种触发器动作,而且一个触发器只能作用在一个表(视图)上。
B.触发器中有两个逻辑表,其中一个逻辑表命名为deleted,另一个命名为inserted。
C.当试图从触发器所定义的目标表中删除数据的时候,DELETE触发器被激发,同时,需要删除的数据被放置到inserted表中。
D.当试图插入数据到触发器所定义的目标表中时,INSERT触发器被激发,同时,需要插入到目标表中的数据被放置到inserted表中。
12.下列哪个不是SQLServer数据库约束类型(D)
A.主关键字约束、默认约束B.外关键字约束、条件约束
C.唯一性约束、默认约束D.检查约束、外关键字约束
13.SQLServer2000采用的身份验证模式有(D)D.WINDOWS身份验证模式和混合模式
14.SQLServer2000提供了一整套管理工具和实用程序,其中负责启动、暂停和停止SQLServer的4种服务是(D)D.服务管理器
15.SQLServer2000中的数据以页为基本存储单位,页的大小为(A)A.8KB
16.下面哪个不是SQLServer2000数据库对象(B)
A.表、视图B.队列、约束C.索引、存储过程D.触发器、约束
17.在SQLServer2000中,当数据表被修改时,系统自动执行的数据库对象是(B)
A.存储过程B.触发器C.视图D.其他数据库对象
18.SQLServer的字符型系统数据类型主要包括(B)B.char、varchar、text
19.在SQLServer2000中,索引的顺序和数据表的物理顺序相同的索引是(A)
A.聚集索引B.非聚集索引C.主键索引D.唯一索引
20.要查询book表中所有书名中包含“计算机”的书籍情况,可用(B)语句。
B.SELECT*FROMbookWHEREbook_nameLIKE‘%计算机%’
21.不属于数据库管理系统三个要素组成的是(D)。
A.数据结构B.数据操作C.完整性约束D.数据分析
22.删除表中数据的语句是(D)。
A.DROPB.ALTERC.UPDATED.DELETE
23.限制输入到列的值的范围,应使用(D)约束。
A.CHECKB.PRIMARYKEYC.FOREIGNKEYD.UNIQUE
24.触发器可引用视图或临时表,并产生两个特殊的表是(A)。
A.Deleted、InsertedB.Delete、InsertC.View、TableD.View1、table1
25.使用索引下列哪个说法是正确的(B)。
B.缩短查询时间
26.关于视图下列哪一个说法是错误的(B)。
A.视图是一种虚拟表B.视图中也存有数据C.视图也可由视图派生出来D.视图是保存在数据库中的SELECT查询
27.创建表的命令是(C)。
C.CreateTABLE表名
28.用于模糊查询的匹配符是(D)。
D.LIKE
29.在sqlSERVER中不是系统数据库的是(D)。
A.masterB.modelC.tempdbD.pubs
30.关于关系图下列哪一个是正确的(B)。
A.关系图是在同一个表中不同字段之间建立关联
B.关系图是在不同表中的字段之间建立关联
C.关系图是表与表之间建立关联,与字段无关
D.关系图是在不同数据库之间建立关联
1、在SELECT查询语句中用[distinct]关键字来删除重复记录。
2、DATEDIFF(YEAR,’2004-5-6’,’2008-9-7’)这个表达式的值[4]。
3、在SQLServer中,根据索引对数据表中记录顺序的影响,索引可以分为[asc]和[desc]。
4、[检查]约束通过检查一个或多个字段的输入值是否符合设定的检查条件来强制数据的完整性。
5.IBM公司的研究人员E.F.Codd连续发表了论文,提出了关系模型,奠定了[关系数据库]管理系统的基础。
6.数据库的数据模型包含[数据结构、数据操作、完整性约束]三个要素。
7.[内嵌表值函数]可用于实现参数化视图的功能,这种类型的函数在使用参数和扩展索引视图方面提供了比[视图]更多的灵活性。
8.[存储过程]是已经存储在SQLServer服务器中的一组预编译过的Transact-SQL语句。
9.SQLServer数据库的体系结构也是三级模式结构,但术语与传统的关系模式不同,在SQLServer中,[外模式]对应于视图、[模式]对应于基本表、[内模式]对应于存储文件。
10.SQLServer的数据库文件的扩展名为[mdf]、事务日志文件的扩展名为[ldf]。
11.建立和使用[约束]的目的是为了保证数据的完整性。
12.BACKUP命令是对数据库进行[备份],RESTORE命令是对数据库进行[恢复]。
13.从最终用户角度来看,数据库应用系统分为单用户结构、主从式结构、分布式结构、[客户/服务器]结构和[浏览器/服务器]结构。
14.对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的[基本表]。
15.SQLServer2000的安全性分为两类:
[数据访问]安全性和[数据运行]安全性。
16、SQLServer登录身份验证模式类型有[Windows认证模式]和[混合模式]两种。
17、数据库对象就是存储和管理数据库的结构形式,这些数据库对象包括数据库图表、表、函数、视图、存储过程、触发器、缺省、规则等。
18、表是由行和列组成的,行有时也称为[记录],列有时也称为[字段]或域。
19、数据库操作语句就是指insert、[update]、[delete]和select语句。
20、创建索引的方法可以分为[直接方法]和[间接方法]。
21、在MicrosoftSQLServer系统中,支持3种类型的备份介质:
[硬盘文件]、磁带和[命名管道]。
22、触发器有3种类型,即insert类型、[update]和[delete]。
23、Transact-SQL语言有4部分元素组成,分别是:
数据定义语言、[数据控制语言]、[数据操作语言]和一些附加的语言元素。
24、事务的4个属性:
原子性、一致性、[独立]性和[持久]性。
25.选择运算是根据某些条件对关系做[水平]分割;投影是根据某些条件对关系做[垂直]分割。
26.Transact-SQL中的变量分为局部变量与全局变量,局部变量用@开头,全局变量用@@开头。
27.创建临时表时,临时表以在表名前加#表示。
28.SQLServer2000的文件包括:
数据文件(.mdf或.ndf)和日志文件。
29.SQLServer2000提供备份数据库的两种方式是:
使用BACKUPDATABASE将数据库文件备份出去和直接拷贝数据库文件mdf和日志文件ldf。
30.在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是ALTER
31.一个事务的操作必须是具备以下四个属性:
原子性、一致性、隔离性和永久性
32.DBMS是位于用户与操作系统之间的一层数据管理软件,它属于[系统]软件,它为用户或应用程序提供访问数据库的方法。
33.关系模型用[二维表]结构表示实体集,用键来表示实体间联系。
34.数据库是被长期存放在计算机内的、有组织的、统一管理的相关[数据]的集合。
35.数据库管理系统由三个要素组成:
[数据结构]、[数据操作]和[完整性约束]。
36.SQLServer数据库的体系结构也是三级模式结构,在SQLServer中,[外模式]对应于视图、[模式]对应于基本表、[内模式]对应于存储文件。
37.[关系完整性]是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。
38.数据完整性的类型有[实体]完整性、[域]完整性、[参照]完整性和用户自定义完整性。
39.视图是由一个或多个[数据表]或视图导出的[虚拟表]或查询表。
40.[角色]是指服务器管理、数据库管理和数据库访问特定的权限的集合。
41.SQLServer的安全性分为两类:
[数据访问]安全性和[数据运行]安全性。
42.[存储过程]是已经存储在SQLServer服务器中的一组预编译过的Transact-SQL语句。
43.当[表]被删除时与它关联的触发器也一同被删除。
一、有一个[学生课程]数据库,数据库中包括三个表:
学生表由学号、姓名、性别、年龄、所在系五个属性组成,可记为:
学生表(学号,姓名,性别,年龄,所在系)[学号]为关键字。
课程表由课程号、课程名、先修课号、学分四个属性组成,可记为:
课程表(课程号,课程名,先修课号,学分)课程表为关键字。
学生选课表由学号、课程号、成绩三个属性组成,可记为:
成绩表(学号,课程号,成绩)(学号、课程号)为关键字。
1、建立一个[学生表],其中学号属性不能为空,并且其值是唯一的。
CREATETABLE学生表
(学号CHAR(5)NOTNULLUNIQUE,
姓名CHAR(20),
性别CHAR
(2),
年龄INT,
所在系CHAR(15))
2、查询全体学生的详细记录。
SELECT*
FROM学生表
3、查询年龄在20至23岁之间的学生的姓名、系别、和年龄。
SELECT姓名,所在系,年龄
FROM学生表
WHERE年龄BETWEEN20AND23
4、计算1号课程的学生平均成绩。
SELECTAVG(成绩)
FROM成绩表
WHERE
课程号='1'
二、阅读下列程序,说明它们的功能。
1.如果“Syudent_info”存储过程存在,则删除。
创建存储过“Syudent_info”
use成绩数据库
Ifexists(selectnamefromsysobjects
Wherename=’student_inf’andtype=’p’)Dropprocedurestudent_inf
Go
Createprocedurestudent_infoas
Select学号,姓名,总学分fromxsqk
2.创建触发器“abc”,当修改XSCJ表中的纪录时,成绩>60分,则根据XSKC表中的该门课程的学分修改XSCJ表中该记录的学分。
use成绩数据库
CREATETRIGGERabcON[dbo].[XSCJ]FORUPDATE
AS
ifupdate(成绩)
updatexscj
setxscj.学分=(select学分fromxskcwheredeleted.课程号=xskc.课程号)
fromxscj,xskc,deleted
wherexscj.成绩>=60anddeleted.学号=xscj.学号anddeleted.课程号=xscj.课程号
3.在学生信息表中增加email、学历、照片列。
use教学成绩管理数据库
go
altertable学生信息表
addemailvarchar(20)null,学历text,
照片image
4.查询年龄为20岁、性别为‘女’的学生
use教学成绩管理数据库
select姓名,性别,年龄=datediff(year,出生日期,getdate())
from学生信息表
where(datediff(year,出生日期,getdate())=20)and(性别='女')
5.查询每个学生的学号、姓名、总分和均分,结果按均分降序排列
use教学成绩管理数据库
select教学成绩表.学号,姓名,sum(分数)总分,avg(分数)均分
from学生信息表join教学成绩表
on学生信息表.学号=教学成绩表.学号
groupby教学成绩表.学号,姓名
orderbyavg(分数)desc
三、现有关系数据库如下:
数据库名:
学生成绩数据库
学生表(班级编号,学号,姓名,性别,民族,身份证号,出生日期)课程表(课程号,课程名,开课学期,学时)成绩表(ID,学号,课程号,分数)用SQL语言实现下列功能的sql语句代码:
1.查询学生信息表中的年龄(重复年龄只显示一次)
use教学成绩管理数据库
selectdistinct年龄=datediff(year,出生日期,getdate())
from学生信息表
2.从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数
use学生成绩数据库
select成绩表.学号,姓名,课程名,分数
from教学成绩表,学生信息表
where成绩表.学号=学生表.学号AND成绩表.课程号=课程表.课程号
3.从课程表中统计第二学期的总学时。
执行结果为:
课程号课程名开课学期学时
…………
…………
sum
============
…
Select课程号,课程名,开课学期,学时From课程表
Where开课学期=2computeavg(学时)
4.编写一个存储过程,输入学号,从“教学成绩表视图”显示该学生的姓名、课程名、分数。
CREATEPROCEDURE成绩1@xhchar(6)
as
select姓名,课程名称,分数from教学成绩表视图
where学号=@xh
5.创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。
CreateTrigger触发器7On学生表
Forupdata
As
Print“学生姓名已被修改”
四、现有关系数据库如下:
数据库名:
学生成绩数据库
学生表(班级编号,学号,姓名,性别,民族,身份证号,出生日期)
课程表(课程号,课程名)
成绩表(ID,学号,课号,分数)用SQL语言实现下列功能的sql语句代码:
1.在[学生成绩数据库]的[学生表]中查询年龄为20岁或22岁的学生.
use教学成绩管理数据库
select姓名,性别,年龄=datediff(year,出生日期,getdate())
from学生表where(datediff(year,出生日期,getdate())=20)
or(datediff(year,出生日期,getdate())=22)
2.在[学生成绩数据库]中查询每个学生的班级编号、学号、姓名、平均分,结果按平均分降序排列,均分相同者按班级排列.
use教学成绩管理数据库
select班级编号,a.学号,a.姓名,avg(分数)平均分from学生表asajoin成绩表asbona.学号=b.学号groupby班级编号,a.学号,a.姓名orderbyavg(分数)desc,班级编号asc
3.编写一个自定义函数,根据[学生表]中的[出生日期]列,计算年龄。
CREATEFUNCTIONdbo.计算年龄(@vardatedatetime,@Curdatedatetime)RETURNStinyintASBEGINreturndatediff(yyyy,@vardate,@Curdate)END
4.创建一个视图“教学成绩表视图”显示学生的学号、姓名、课程名、分数。
CREATEVIEW[教学成绩表视图]ASSELECT学号,姓名,课程名,分数FROM学生表,成绩表WHERE学生表.学号=成绩表.学号
5.编写一个存储过程,输入学号,从“教学成绩表视图”显示该学生的姓名、课程名、分数。
CREATEPROCEDURE[成绩1]@xhchar
(6)asselect姓名,课程名称,分数from教学成绩表视图where学号=@xh
6.把学生表、成绩表通过“学号”建立约束关系。
altertable学生表addconstraint约束1foreignkey(学号)references成绩表(学号)
7.创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。
CreateTrigger触发器7On学生表
Forupdate
AsPrint'学生姓名已被修改'
Go
8.在学生表中插入记录:
班级编号学号姓名性别民族身份证号出生日期050201050201001王莉欣女汉530102197906252241979-06-25;050202050202001张晶男NULL01020319801224121NULL把张晶的民族改为“汉”、出生日期改为“1980-12-24”.
insert学生表values('050201','050201001','王莉欣','女','汉','53010219790625224','1979-06-25')
insert学生表values('050201','050201001','张晶','男',null,01020319801224121,null)
update学生表set民族='汉',身份证号='01020319800226121',出生日期='1980-02-26'
参考语法格式:
数据库
CREATEDATABASEdatebase_name
[ON[PRIMARY]
[
[,
[LOGON{[
[FORLOAD|FORATTACH]
[
:
=
([NAME=logical_file_name,]
[FILENAME='os_file_name’,]
[SIZE=size,]
[MAXSIZE={max_size|UNLIMITED},]
[FILEGROWTH=growth_increment])[,...n]
:
=
FILEGROUPfilegroup_name
ALTERDATABASEdatabase
{ADDFILE
|ADDLOGFILE
|REMOVEFILElogical_file_name
|ADDFILEGROUPfilegroup_name
|REMOVEFILEGROUPfilegroup_name
|MODIFYFILE
|MODIFYFILEGROUPfilegroup_namefilegroup_property|NAME=new_filegroup_name
}
DROPDATABASEdatabase_name[,…n]
数据表
CREATETABLE[database_name.[owner].|owner.]table_name
({
[ON{filegroup|DEFAULT}]
:
=
{column_namedata_type}[DEFAULTconstant_expression]
|[IDENTITY[(seed,increment)]]]
:
=[CONSTRAINTconstraint_name]
{[NULL|NOTNULL] |[{PRIMARYKEY|UNIQUE}]
|[[FOREIGNKEY] REFERENCESref_table[(ref_column)] ]
|CHECK(logical_expression)}
ALTERTABLEtable
{[ALTERCOLUMNcolumn_name{new_data_type[(precision[,scale])][NULL|NOTNULL]]
|ADD{[
|ADD {
|DROP{[CONSTRAINT]constraint_name|COLUMNcolumn}[,...n]}
DROPTABLEtable_name[,…n]
SQL查询语句
SELECTselect_list
[intonew_data_name]
FROMtable_list
[WHEREsearch_coditons]
[GROUPBYgroup_by_list]
[havingsearch_conditions]
[orderbyordre_list[ASCDESC]]
触发器
CREATEPROC[EDURE]procedure_name
[{@parameterdate_type}[=de
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 数据库 练习 打印
![提示](https://static.bdocx.com/images/bang_tan.gif)