广州民航职业技术学院2015/2016学年第一学期14级《数据库原理与应用》期末考试卷(A卷)(闭卷)班级__________ 学号 _________ 姓名 _______ 成绩 _______注意:选择和判断题的答案请填到答题卡上。
一、单项选择题(每题2分,共15题,30分)1 •用于对数据库中数据的物理结构描述的是( C )A •逻辑模式 B.用户模式 C •存储模式 D.概念模式2•现要查找缺少学习成绩(G)的学生学号(Sno)和课程号(Cno),相应的SQL语句SELECT Sno, Cno FROM SC WHERE中WHERE后正确的条件表达式是 DA. G=0B.G<=0C.G=NULLD. G IS NULL3•下述SQL语句中,起修改表中数据作用的命令动词是 C 。
A. ALTERB. CREATEC. UPDATED. INSERT4.在关系数据库系统中,定义数据结构的数据称作“元数据”,它们也以二维表的形式存储于数据库中,称作__C _____ 。
A、数据文件B、源代码C、数据字典D、源文件5.数据库创建后就可以创建表了,创建表可以用 D 等方法来创建。
A、企业管理器B、查询分析器C、OSQLD、企业管理器和CREATE TABLE 语句6.删除一个表,正确的SQL语句是(_C__)0A、DROP 表名B、Alter Table 表名C、DROP Table 表名D、Alter 表名7.表Tabl_1中有一列被表Tabl_2引用作外码。
在数据库中定义这两个表时,正确的安排顺序是( A )A 、先定义表Tabl_1,然后再定义表Tabl_2B 、可以先定义表Tabl_2C 、于定义的先后顺序无关系D 、以上说法都不对 8•假定Sname 是字符串类型,下来条件表达式,符合语法要求的是(D )11.设学生表和课程表的结构分别为 (学号, 姓名)和(学号, 课程名,如果希望查询出“选修了‘数据库应用技术'课程的学生姓名和成绩” 对应的 SQL 语句是( D )A .SELECT 姓名,成绩 FROM 学生表 WHERE 学生表.学号=课程表.学号AND 课程名二‘数据库应用技术’B .SELECT 姓名,成绩 FROM 课程表 WHERE 学生表.学号=课程表.学 号AND课程名二‘数据库应用技术’C .SELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表. 学号ORA . S name<>12355B .Sname= 伪劣商品C . S name 工 王一平D .Sname=‘12355'下列 SQL 语句中,能够完成求某列最小值的是(CA . S ELECT AVG(Age) FROM StudentB .S ELECT MAX(Age) FROM Student C . S ELECT MIN(Age) FROM Student D . S ELECT COUNT(*) FROM Student表中任意两行不能相同9.)。
10.在关系数据库中,实现”的约束是靠( C )。
A.外键B.属性C. 主键D.列成绩), ,则课程名二‘数据库应用技术’D.SELECT 姓名,成绩FROM 学生表,课程表WHERE 学生表.学号= 课程表.学号AND课程名二‘数据库应用技术’ 12.一个在已有视图上的定义的新视图语句中,其子查询语句中( D )。
A •不一定出现视图名B.数据源中可能有视图,也可能没有视图C •数据源中必须有基表和视图D •数据源中至少有一个视图13.只有选项(C )可用于检索游标中的记录。
A. DEAOCATE B . DROP C . FETCH D . CREATE14.“Create Unique Index AAA On学生表(学号)”将在学生表上创建名为AAA 的(A )。
A .惟一索引B .聚集索引C .复合索引D .唯一聚集索引15.关闭游标使用的命令是(A )A. CLOSE CURSORB. DROP CURSORC. DEETE CURSORD. DEALLOCATE二、填空题(每空2分,共10分)1.在关系数据库中,主码约束要求:主码取值—非空,而且—唯一______________ 。
2. ___________________________________________________ 关系数据库系统中,体现实体完整性的约束是—主码约束______________________________ ,体现参照完整性约束的是_外码约束____________ 。
3.当多表查询使用等值连接时,要求连接条件必须是—可比较的值—;即必须是语义相同的列,否则比较失去意义。
三、判断题(每小题2分,共10分)1.目前,在数据库系统中,使用最广泛的数据模型是面向对象模型(x )02.主键可以取空值(X)。
3.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
(V )4.根据索引的特点,应该对那些数据量大、查询频度较高、实时性要求强的基本表创建索引,(V )5.在实际应用中,尽可能不要通过视图对记录进行更新操作。
(V )四、简述题(每小题10分,共10分)1•一个数据库中需要定义6个表,其中有两个表中有外码。
在建数据库时,各表的定义是否可以随意安排?正确的做法应当如何安排?为什么?为6个表录入数据时,应如何安排录入的顺序??为什么??当新建数据库时,有外码的表应当在引用表定义之后定义;否则,在执行创建语句时,找不到引用表,系统会视为错误。
引用无效,导致语句不能执行。
(以上内容回答正确得5分)这个问题也与数据引用有关。
如果一个表中定义了外码,在录入数据时,系统将检查每行数据是否满足约束条件。
如果外码列使用了引用表列的实际数据,而该数据在被引用表中未录入,则认为破坏了外码约束,系统报错,禁止输入该数据行。
(以上内容回答正确得5分五、程序应用题(40分)阅读下列说明,回答问题1至问题2。
【说明】有一个人事管理系统数据库,包括两个表:员工基本信息表、部门信息表、员工工资信息表。
三个表的结构如表1、表2、表3。
完成以下各题。
表1员工基本信息表表部门信息表表员工工资信息表问题 2】1、修改部门信息表,在“部门名称”列增加唯一约束 1、 SQL 弋码如下: USE 人事管理系统 ALTER TABLE 部门信息表ADD CONSTRAINTUN_BMNAME UNIQUE ( 部门名称 ) (五分)【问题 1】利用T-SQL 语句创建员工基本信息表、部门信息表、 出相关SQL 弋码员工工资信息表,写CREATE TABLE 员工工资信息表( 工资编号 员工编号 工资发放时间 员工基本工资 加班工资 缺勤扣除 其他工资INT NOT NULL, INT NOT NULL, DA TETIME NOT NULL INT NULL, INT NULL, INT NULL, INT NULL,CONSTRAINT PK_GZID_YGIDPRIMARY KEY ( 工资编号 ,员工编号 )BMNAME 。
2、使用SQL语句将如表4所示部门信息记录表插入部门信息表中。
表部门信息记录表USE人事管理系统INSERT INTO 部门信息表(部门编号部门名称部门描述,部门经理编号)VALUES(000,'人力资源部','负责招聘等工作’,200)INSERT INTO 部门信息表(部门编号部门名称部门描述,部门经理编号)VALUES(001,'财务部','负责工资管理',202)INSERT INTO 部门信息表(部门编号部门名称部门描述,部门经理编号)VALUES(002,'市场部','负责销售',203)INSERT INTO 部门信息表(部门编号部门名称部门描述,部门经理编号)VALUES(003,'开发部','负责产品开发',204)(五分)3、使用SQL语句将部门信息表中的人力资源部部门经理编号改为201。
USE人事管理系统UPDA TE 部门信息表SET 部门经理编号= 201WHERE 部门名称= ' 人力资源部' (五分)【问题3】创建一个名为“ proc_2 ”的存储过程,用于向学生表的所有字段添加一条记录,记录内容由调用时决定。
然后调用该存储过程输入一条记录 ( 1111,' 关羽','M','English',30 ) Use SCinfoIf exists (select name from sysobjects where name=' proc_2 ')Drop procedure proc_2GoCREATE PROCEDURE proc_2 @Sno SMALLINT, @Sname VARCHAR(8), @Ssex CHAR(1), @Sdept VARCHAR(20), @Sage TINYINTASINSERT INTO Students VALUES(@Sno,@Sname,@Ssex,@Sdept,@Sage) GO(8 分) EXEC proc_2 1111,'关羽','F','English',30GO(2 分)【问题4】1、飞天公司是一家新成立的公司,由于业务需要急需要汽车一辆,但因资金问题无力购买,决定暂时租一辆使用,一个出租公司(A公司)的出租条件为每月付给1000元工资, 另外每千米付0.1元/汽油费;一出租公司(公司B)的出租条件为每千米付1.35元的费用。
设计一个函数,当输入飞天公司每月用车里程(千米)时返回应该选择的公司名称。
(8 分)1、CREATE FUNCTION CHOSE(@DISTANCE AS INT)RETURNS VARCHAR(20)BEGINDECLARE @STR VARCHAR(20)IF (1000 +0.1* @DISTANCE )>(1.35 * @DISTANCE)SET @STR = 'B 公司'ELSESET @STR = 'A 公司'RETURN @STREND (8 分)1000(千米)(2 分)2、调用上述设计的函数,假设飞天公司每月用车里程Select dbo.CHOSE(1000)。