数据库练习题 .doc

上传人:s****u 文档编号:12782134 上传时间:2020-05-24 格式:DOC 页数:12 大小:74.50KB
返回 下载 相关 举报
数据库练习题 .doc_第1页
第1页 / 共12页
数据库练习题 .doc_第2页
第2页 / 共12页
数据库练习题 .doc_第3页
第3页 / 共12页
点击查看更多>>
资源描述
填空选择类练习题一、填空题1、系统自动创建的索引有_unique (唯一索引) 和 primary_(主键索引)_。2、SQL语言支持关系数据库的三级模式结构分别是_ 外模式 _、 内模式_、_模式_。3、主数据文件的扩展名为 .mdf 。4、主键约束是_非空_和_唯一_的组合。5、数据库文件有_主数据文件(.mdf)_、_辅助数据文件(.ndf)_、_日志文件(.ldf)_。6、SQL语言支持关系数据库的三级模式结构分别是_ 外模式 _、 内模式_、模式_。7、视图的查询不可以包含_compute / compute by_、_order by_和_into_关键字。8、数据库领域常用的数据模型有_层次模式_、_网状模式_、_关系模式_、_面向对象_。9、在一个表中只能设置_1_个主键约束,可以定义_多_个唯一性约束。二、选择题1、次数据文件用于存储不能存在主数据文件中的数据,默认扩展名为(A )。 A.ndf B.mdf C.log D.dat 2、关系模型中数据的逻辑结构是一张二维表,它由( A)组成。 A行和列 B行 C关系 D列3、一个查询的结果成为另一个查询的条件,这种查询被称为( D)。 A连接查询 B内查询 C自查询 D子查询 4、SELECT语句中,下列( B)子句用于对数据按照某个字段分组?(A )子句用于对分组统计进一步设置条件。 AHAVING子句 BGROUP BY 子句 CORDER BY 子句 DWHERE子句 5、在SELECT语句中,下列子句用于对搜索的结果进行排序( C)。 AHAVING子句 BGROUP BY 子句 CORDER BY 子句 DWHERE子句 6、修改视图时,使用( A )选项,可以对CREATE VIEW的文本进行加密。 AWITH ENCRYPTION BWITH CHECK OPTION C VIEW _METADATA DAS SQL语句7、与WHERE AGE BETWEEN 18 AND 23完全等价的是(D )。 AWHERE AGE18AND AGE23 BWHERE AGE18AND AGE23 CWHERE AGE18AND AGE23 DWHERE AGE18AND AGE23 一、填空题1、在查询编辑器窗口输入的SQL语句,可以被保存或重新打开,SQL文件的扩展名为_.sql_。2、数据库领域常用的数据模型有_层次模式_、_网状模式_、_关系模式_、_面向对象_。3、数据库文件有_.mdf_、_.ndf_、_.ldf_。4、主数据文件的扩展名为_.mdf_。5、主键约束是_非空_和_唯一_的组合。6、在一个表中只能设置_1_个主键约束,可以定义_多_个唯一性约束。7、视图的查询不可以包含_compute /compute by_、_order by_和_into_关键字。8、系统自动创建的索引有_unique_和_primary_。9、游标包含_结果集_和_位置_两部分。二、选择题1、创建视图命令是(A )。 ACREATE VIEW BDROP VIEW CCREATE TABLE DCREATE RULE 2、在SELECT语句中,如果想要返回的结果集中不包含相同的行,应该使用关键字( C )。 ATOP BAS CDISTINCT DJOIN 3、在SELECT语句中,下列子句用于将查询结果存储在一个新表中( B )。 ASELECT子句 BINTO子句 CFROM 子句 DWHERE子句 4、为了对表中的各行进行快速访问,应对此表建立( C )。 A约束 B规则 C索引 D视图 5、通过CREATE TABLE语句或者其他方法创建了一个表后,可以使用(B )语句在表中添加记录。 ADELETE BINSERT CUPDATE DINSEATER 6、(B )在定义列时,它可以为表中的指定列提供。 AFOREIGN约束 (外码) BDEFAULT约束( 默认值 ) CUNIQUE约束 (唯一性) DCHECK(域完整性)7、单击【查询编辑器】窗口中的任意位置。按(A )命令,可以在全屏显示模式和常规显示模式之间进行切换。 AShift+Alt+Enter BShift +Enter CShift+Alt DShift 1、单击【查询编辑器】窗口中的任意位置。按(A )命令,可以在全屏显示模式和常规显示模式之间进行切换。 AShift+Alt+Enter BShift +Enter CShift+Alt DShift 2、在查询编辑器窗口输入的SQL语句,可以被保存或重新打开,SQL文件的扩展名为_.SQL_。3、关系模型中数据的逻辑结构是一张二维表,它由( )组成。 A行和列 B行 C关系 D列 4、关系模型的完整性规则是对数据的约束。关系模型提供了三类完整性规则_实体_、_参照_和_自定义_。5、次数据文件用于存储不能存在主数据文件中的数据,默认扩展名为(B )。 A.ndf B.mdf C.log D.dat 6、通常情况,SQL Server 2005主要支持PRIMARY约束、UNIQUE约束、CHECK约束、DEFAULT约束、FOREIGN约束。( B)在定义列时,它可以为表中的指定列提供默认值。 AFOREIGN约束 BDEFAULT约束 CUNIQUE约束 DCHECK 7、创建S时,要求约束sex 属性只能取值为男或者女,正确的命令是(B )。 ACREATE TABLE S BCREATE TABLE S ( ( sex char(2), sex char(2), CHECK( sex in (男,女) CHECK(男,女) ) ) CCREATE TABLE S DCREATE TABLE S ( ( sex char(2), sex in (男,女)char(2), sex in (男,女) ) 8、通过CREATE TABLE语句或者其他方法创建了一个表后,可以使用( B)语句在表中添加记录。 ADELETE BINSERT CUPDATE DINSEATER 9、一个查询的结果成为另一个查询的条件,这种查询被称为( D)。 A连接查询 B内查询 C自查询 D子查询 10、为了对表中的各行进行快速访问,应对此表建立(C )。 A约束 B规则 C索引 D视图 11、SELECT语句中,下列( B)子句用于对数据按照某个字段分组?(A )子句用于对分组统计进一步设置条件。 AHAVING子句 BGROUP BY 子句 CORDER BY 子句 DWHERE子句 12、在SELECT语句中,下列子句用于将查询结果存储在一个新表中( B)。 ASELECT子句 BINTO子句 CFROM 子句 DWHERE子句 13、在SELECT语句中,下列子句用于对搜索的结果进行排序(C )。 AHAVING子句 BGROUP BY 子句 CORDER BY 子句 DWHERE子句 14、在SELECT语句中,如果想要返回的结果集中不包含相同的行,应该使用关键字(C )。 ATOP BAS CDISTINCT DJOIN 15、与WHERE AGE BETWEEN 18 AND 23完全等价的是(D )。 AWHERE AGE18AND AGE23 BWHERE AGE18AND AGE23 CWHERE AGE18AND AGE23 DWHERE AGE18AND AGE23 16、创建视图命令是( A)。 ACREATE VIEW BDROP VIEW CCREATE TABLE DCREATE RULE 17、修改视图时,使用( A)选项,可以对CREATE VIEW的文本进行加密。 AWITH ENCRYPTION BWITH CHECK OPTION C VIEW _METADATA DAS SQL语句简答类练习题1. 数据库管理系统的构成有哪些?P2数据库系统由数据库、操作系统、数据库管理系统、应用系统、数据库管理员和用户等组成。2. 数据模型有哪些?层次模型、网状模型、关系模型、面向对象 3. 实体间的关系有哪几种?一对一、一对多、多对多4. 数据库管理经历了哪3个阶段?1:程序管理阶段 2:文件管理阶段 3:数据库系统管理阶段(人工管理、文件系统和数据库管理系统)5. 数据完整性有哪些?正确性、有效性、相容性 (实体完整性约束 参照完整性约束 用户自定义完整性)6. 数据库对象有哪些?至少5个表、视图、索引、约束、触发器、默认值、用户和角色、规则、类型、函数7. 数据库文件有哪3类?主数据文件、辅助数据文件、日志文件8. 关系运算符有哪些?选择、投影、连接9. 备份的方法有哪些?完全数据库备份、数据库和事务日志备份、差异备份、数据库文件和文件组备份10. 身份验证模式有哪2种?Windows验证模式、SQL Server验证模式表的操作:1、创建T表(教师基本情况表)(TNO,TN,SEX,AGE,PROF,SAL,DEPT)分别表示教师的编号,姓名,性别,年龄,职称,工资,系别。TC表(教师授课表)的结构为TC(TNO,CNO)分别表示教师的编号,课程编号USE exampleGOCREATE TABLE t(TNO char(10) NOT NULL PRIMARY KEY,/*教师编号字段*/TN char(10) NULL,/*教师姓名字段*/SEX char(2) NULL,/*教师性别字段*/AGE int NULL,/*教师年龄字段*/PROF char(20) NULL,/*教师职称字段*/SAL int NULL,/*教师工资字段*/DEPT char(10) NULL,/*教师所在系别字段*/ )GOINSERT INTO t VALUES(0001,张老师,男,41,副教授,2200,电力系)GOINSERT INTO t VALUES(0002,张益琳,女,32,讲师,1500,动力系)GOCREATE TABLE TC(TNO char(10) NOT NULL,/*教师编号字段*/CNO char(10) NULL,/*教师执教课程字段*/ )GOINSERT INTO tc VALUES(0001,C5)GO2、把所有教师的工资提高到平均工资的1.2倍。update t set sal=sal*1.23、 删除张益琳教师的记录。delete twhere Tn=张益琳4.增加一个tel char(20)列。ALTER TABLE tADD tel char(20)5.将工资字段属性改为float型。ALTER TABLE t ALTER COLUMN sal char(20) 6.删除tel字段。ALTER TABLE tDROP COLUMN tel7.将张老师的年龄改为50岁。update t set age=50where Tn=张老师8.将张老师的执教课程字段改为C10.UPDATE tc SET cno=c10WHERE tno IN (SELECT tno FROM t WHERE tn=张老师)9.将TC表改为TC_01表。exec sp_rename tc,tc_0110.将系别字段命名为sdept.exec sp_rename t.dept,sdept11.删除TC_01表.drop table tc_01查询操作:必考1. 查询xs表中所有内容2. 查询xs表中学号,姓名3. 查询xs表中专业4. 查询xs表中专业,过滤掉重复元组。5. 查询xs表中学号,姓名,并设置学号为学生学号6. 查询xs表中学号,姓名,出生时间,年龄7. 查询xs表前3条记录8. 查询xs表中学号,姓名,性别并把查询内容生成新表xs_new9. 生成新表xs_new1,使此表的框架和xs 表相同,但表中无记录。10. 查询xs表中年龄在23岁以下的学生学号,姓名,出生日期。11. 查询cj表中选修了a001的j001学生学号12. 查询xs表中姓王的学生13. 查询xs表中姓王的女学生14. 查询xs表中的所有学生记录,并按总学分降序排列15. 查询xs表不属于信息管理专业学生记录16. 查询选修了课程的学号,姓名,课程号,成绩 xs表学号姓名性别出生时间专业总学分101王林男1988-2-3信息管理20102程明男1988-5-15信息管理20103王燕女1987-8-23信息管理20104李丽女1988-12-22网络工程24105李强男1987-4-5网络工程26 cj表学号课程号成绩101a00189101a00298102j00160102j00270答案:1. select * from xs2. select 学号,姓名 from xs3. select 专业 from xs4. select distinct 专业 from xs5. select 学号 as 学生学号,姓名 from xs6. select学号,姓名,出生时间,datediff(year,出生时间,getdate( ) as 年龄 from xs7. select top 3 * from xs8. select 学号,姓名,性别 into xs_new from xs9. select * into xs_new1 from xs where 1210. select学号,姓名,出生时间 from xs where datediff(year,出生时间,getdate( )2311. select 学号 from cj where 课程号 in(a001,j001)12. select * from xs where 姓名 like 王%13. select * from xs where 姓名 like 王% and 性别=女14. select * from xs order by 总学分 desc15. select * from xs where 专业信息管理16. select xs.学号,姓名,课程号,成绩 from xs,cj where xs.学号=cj.学号假设有basetest数据库的如下关系Student(sno,sname,ssex,sage,sdept)Sc(sno,cno,grade)Course(cno,cname,cpni,ccredit)Use basetest5.用in 和exists 分别实现下面内容1) 查询选修了高等数学的学号,成绩和课程号2) 查询选修了高等数学的学号,姓名和系别6.用比较子查询实现查询大于平均年龄的学生信息答案:5.1)select sno,grade,cnofrom scwhere cno in(select cnoFrom coursewhere cname=高等数学)select sno,grade,cnofrom scwhere exists(select *from coursewhere cno=sc.cno and cname=高等数学)2) select sno,sname,sdeptfrom studentwhere sno in(select snofrom scwhere cno in(select cnofrom coursewhere cname=高等数学)select sno,sname,sdeptfrom studentwhere exists(select *from scwhere sno=student.sno and exists(select *From courseWhere cno=sc.cno and cname=高等数学)6. select * from student Where sage(select avg(sage) from student)select * from studentwhere sdept!=IS and sageall(select sageFrom studentWhere sdept=IS)视图的操作:必考use basetest1、创建stud_view视图,显示学生的姓名、选修课程和成绩。create view stud_viewasselect sname,cno,gradefrom sc,studentwhere sc.sno=student.sno2、创建stud_view1视图,可以查看平均成绩在80分以上的学生姓名。create view stud_view1asselect snamefrom studentwhere sno in (select sno from sc group by sno having avg(grade)80)3、创建student_view2视图,可以显示课程名和选修该课程的学生人数。create view student_view2asselect sc.cno,cname,count(sno) 人数from sc,coursewhere sc.cno=course.cnogroup by sc.cno,cname5、创建depart_view视图查看每个系的学生人数。create view depart_viewasselect sdept,count(sno) as 人数from studentgroup by sdept6、创建stud_view2视图可以查看每个学生的选修课程的门数和平均成绩。create view stud_view2asselect sno,count(sno) as 门数,avg(grade) as 平均成绩from scgroup by sno7、在stud_view2视图上查询平均成绩在80分以下的学生学号。select snofrom stud_view2where 平均成绩80触发器(考)、程序控制(考)、自定义函数、存储过程(二选一):例5 创建一个自定义函数,返回特定学号学生选修课程的平均成绩。(自定义函数) USE basetestGOCREATE FUNCTION info_student(sno nchar(8)RETURNS FLOATASBEGINDECLARE Grade FLOATSET Grade=(SELECT AVG(grade) FROM sc WHERE sno=sno GROUP BY sno) RETURN GradeEND例10 求5的阶乘 (程序控制)DECLARE r int,times intSET r=1SET times=1label1: SET r=r *times SET times=times+1 IF times= 0 BEGIN SET i = i +1 IF i 100 BEGIN SELECT 1到100的和 = sum BREAK END ELSE SET sum = sum + i END例15 返回女生信息(存储过程)IF EXISTS(SELECT name FROM sysobjects WHERE name=stu_pro and type=p ) DROP PROCEDURE stu_proGOCREATE PROCEDURE stu_pro AS SELECT * FROM student WHERE ssex=女GO-调用EXECUTE stu_proGO例5 检查插入的学生是否是is系的学生(触发器)USE basetestIF EXISTS ( SELECT name FROM sysobjects WHERE name = sc_tr AND type = TR ) DROP TRIGGER sc_trGOCREATE TRIGGER sc_trON scFOR INSERTASIF EXISTS ( SELECT sno FROM inserted WHERE sno NOT IN ( SELECT sno FROM student WHERE sdept=IS ) )BEGIN PRINT 该学生不是系的学生 ROLLBACK tranENDGO例6 学生选修过的课程不能删除(触发器)USE basetestGOIF EXISTS ( SELECT name FROM sysobjects WHERE name = course_tr AND type = TR ) DROP TRIGGER course_trGOCREATE TRIGGER course_trON courseFOR DELETEASIF EXISTS ( SELECT cno FROM deleted WHERE cno IN ( SELECT cno FROM sc ) )BEGIN PRINT 课程有学生选修不能被删除 ROLLBACK tranENDGO例7 在course表中没有的课程不允许更新选课记录 (触发器)USE basetestGOIF EXISTS ( SELECT name FROM sysobjects WHERE name = sc1_tr AND type = TR ) DROP TRIGGER sc1_trGOCREATE TRIGGER sc1_trON scFOR UPDATEASIF EXISTS ( SELECT cno FROM inserted WHERE cno NOT IN ( SELECT cno FROM course ) ) BEGIN PRINT 没有该课程的记录 ROLLBACK ENDGO
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!