一 、单选题
1、数据库系统和文件系统的主要区别是( B )。
A. 数据库系统复杂,而文件系统简单
B. 文件系统不能解决数据冗余和数据独立性问题,而数据库系统能够解决
C. 文件系统只能管理文件,而数据库系统还能管理其他类型的数据
D. 文件系统只能用于小型、微型机,而数据库系统还能用于大型机
2、在数据库中存储的是( C )。
A. 数据
B. 数据模型
C. 数据及数据之间的联系
D. 信息
3、下述关于数据库系统的正确叙述是( A )。
A. 数据库系统减少了数据冗余
B. 数据库系统避免了一切冗余
C. 数据库系统中数据的一致性是指数据类型一致
(数据一致性通常指 关联数据之间的逻辑关系是否正确和完整。而数据存储的一致性模型则可以认为是 存储系统和数据使用者之间的一种约定。)
D. 数据库系统比文件系统能管理更多的数据
4、数据库系统的数据独立性是指( B )。
A. 不会因为数据的变化而影响应用程序
B. 不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序
C. 不会因为存储策略的变化而影响存储结构
D. 不会因为某些存储结构的变化而影响其他的存储结构
5、关系数据库中的关键字是指( D )。
A. 能唯一决定关系的字段
B. 不可改动的专用保留字
C. 关键的很重要的字段
D. 能唯一标识元组的属性或属性集合
6、在数据库中,产生数据不一致的根本原因是( D )。
A. 数据存储量太大
B. 没有严格保护数据
C. 未对数据进行完整性控制
D. 数据冗余
7、 若要删除数据库中已经存在的表S,可用( C )。
A. DELETE TABLE S
B. DELETE S
C. DROP TABLE S
D. DROP S
8、设关系数据库中一个表S的结构为S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要把“张二的化学成绩80分”插入S中,则可用( D )。
A. ADD INTO S VALUES(’张二’,’化学’,’80’)
B. INSERT INTO S VALUES(’张二’,’化学’,’80’)
C. ADD INTO S VALUES(’张二’,’化学’,80)
D. INSERT INTO S VALUES(’张二’,’化学’,80)
9、SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最频繁的语句是( A ) 。
A. SELECT
B. INSERT
C. UPDATE
D. DELETE
10、学生关系模式 S( S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。要在表S中删除一个属性“年龄”,可选用的SQL语句是( B )。
A. DELETE Age from S
B. ALTER TABLE S DROP Age
C. UPDATE S Age
D. ALTER TABLE S ‘Age’
11、SQL语言是( B )的语言,容易学习 。
A.过程化
B.结构化
C.格式化
D.导航式
12、若要在基本表S中增加一列CN(课程名),可用( C )。
A.ADD TABLE S(CN CHAR(8))
B.ADD TABLE S ALTER(CN CHAR(8))
C.ALTER TABLE S ADD(CN CHAR(8)
D.ALTER TABLE S (ADD CN CHAR(8))
13、若用如下的SQL语句创建了一个表SC:
CREATE TABLE SC (S# CHAR(6) NOT NULL,C# CHAR(3) NOT NULL,SCORE INTEGER,NOTE CHAR(20));向SC表插入如下行时,( B )行可以被插入 。
A.(’201009’,’111’,60,必修)
B.(’200823’,’101’,NULL,NULL)
C.(NULL,’103’,80,’选修’)
D.(’201132’,NULL,86,’ ’)
14、一个规范化的关系至少应当满足( A )的要求。
A.一范式
B.二范式
C.三范式
D.四范式
15、有关系S(S#,SNAME,SEX),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SEX是性别, C#是课程号,CNAME是课程名称。要查询选修“数据库”课的全体男生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。这里的WHERE子句的内容是( A )。
A.S.S# = SC.S# and C.C# = SC.C# and SEX=’男’ and CNAME=’数据库’
B.S.S# = SC.S# and C.C# = SC.C# and SEX in’男’and CNAME in’数据库’
C.SEX ’男’ and CNAME ’ 数据库’
D.S.SEX=’男’ and CNAME=’ 数据库’
16、在SQL中,建立视图用的命令是 ( C )。
A.CREATE SCHEMA
B.CREATE TABLE
C.CREATE VIEW
D.CREATE INDEX
17、设关系数据库中一个表S的结构为:S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要更正王二的化学成绩为85分,则可用( A ) 。
A. UPDATE S SET grade=85 WHERE SN=’王二’ AND CN=’化学’
B. UPDATE S SET grade=’85’ WHERE SN=’王二’ AND CN=’化学’
C. UPDATE grade=85 WHERE SN=’王二’ AND CN=’化学’
D. UPDATE grade=’85’ WHERE SN=’王二’ AND CN=’化学’
18、在SQL语言中,”授权”命令是( A )
A. GRANT
B. REVOKE
C. OPTION
D. PUBLIC
19、对于MySQL错误的说法是:( D )
A. MySQL是一款关系数据库系统
B. MySQL是一款网络数据库系统
C. MySQL可以在linux或者是windows下运行
D. MySQL对SQL的支持并不是太好
20、为数据表创建索引的目的是( A )
A、提高查询的检索性能
B、创建唯一索引
C、创建主键
D、归类
21、在MySQL中为数据表创建主键索引,可以在以下方法 ( D )来创建主键索引。
A、Create index
B、Alter index
C、Create Database
D、以上都不可以
22、对视图的描述错误的是:( C )
A. 是一张虚拟的表
B. 在存储视图时存储的是视图的定义
C. 在存储视图时存储的是视图中的数据
D. 可以像查询表一样来查询视图
23、在数据库逻辑设计阶段,需要将 ( C )转化为关系模式。
A、层次模型 B、物理模型
C、E-R模型 D、网状模型
24、建立索引的目的是( D )。
A.降低SQL Server数据检索的速度
B.与SQL Server数据检索的速度无关
C.加快数据库的打开速度
D.提高SQL Server数据检索的速度
25、MySQL 的字符型系统数据类型主要包括( B )。
A Int、money、char
B char、varchar、text
C datetime、binary、int
D char、varchar、int
26、下面关于“主键”描述不正确的是( B )
A 一个关系的“主键”不能有两个
B 一个关系的“主键”不能成为另一个关系的外键
C 一个关系的“主键”不许为空
D 可以由多个属性组合而成一个关系的“主键”
27、下列不属于设计表时要明确的项目是 ( D )。
A. 列的名称
B. 列的数据类型和宽度
C. 表间的关系
D. 表中的数据
28、下列有关查询的说法中,错误的是( C )
A、GROUP BY子句用于对查询结果进行分组输出。
B、HAVING子句后面可以跟上统计函数。
C、子查询返回的是单个值,且不可以嵌套。
D、EXISTS子查询实际上不产生任何数据,只返回TRUE或FALSE值
29、在MySQL中创建和修改一个数据库表分别使用的关键字是( C )
A、USE, UPDATE B、INSERT, ALTER
C、CREATE, ALTER D、CREATE, UPDATE
30、SQL的视图是从( C )中导出的。
A、基本表 B、视图
C、基本表或者视图 D、数据库
二、填空题:(每题2分,共20分)
1、数据管理技术经历了__人工管理__、文件系统__和__数据库系统__三个阶段。
2、DBMS是___数据库管理系统___的简称,DBS是__数据库系统__的简称。
3、实体之间的联系可抽象为三类,它们是__一对一、一对多 和__多对多。
4、按照数据结构的类型来命名,逻辑模型分为__层次模型__、网状模型__和__关系模型。
5、创建、修改和删除表命令分别是__CREATE_TABLE__、ALTER_TABLE__和__DROP_TABLE_。
6、用SELECT进行模糊查询时,可以使用like匹配符,但要在条件值中使用 % 或 _ 等通配符来配合查询。
7.聚合函数有最大、最小、求和、平均和计数等,它们分别是MAX、MIN、SUM、avg和count。
8、HAVING子句与WHERE子句很相似,其区别在于:
WHERE子句作用的对象是__基本表和视图__,HAVING子句作用的对象是分组。
9、在MySQL中,用_DELETE命令可以从表中删除行,用DROP命令可以从数据库中删除表。
10、在ALTER TABLE中ADD用来添加新字段;ALTER用来修改已有字段。
11、[权限]在MySQL中,用GRANT命令可以授予权限,用REVOKE_命令可以收回权限。
12、使用SQL语句在XK数据库中创建一个名为V_STUDENT的视图,该视图仅查看“STUDENT”表中“00电子商务”班的学生信息。
USE XK
CREATE VIEW V_STUDENT
AS
SELECT *
FROM STUDENT
WHERE CLASS=’ 00电子商务’
13、创建CJ表并建立学号和课程号的联合主键,并在成绩列上创建索引。
CREATE TABLE XS_KC2
(
学号 CHAR(6) NOT NULL,
课程号 CHAR(3) NOT NULL,
成绩 TINYINT(1),
学分 TINYINT(1),
___ PRIMARY KEY ___ (学号,课程号),
INDEX SC(成绩)
);
14、有一学生表STUDENT,该表已经使用“学号”列作为主键。现在要创建一个成绩表CJ(学号 char(6),课程号 char(3),成绩 int(3),要求CJ表中学生学号参照STUDENT表中的学号,当修改STUDENT表中学号时,CJ表中的学号也随之变化。
CREATE TABLE CJ
(
学号 char(6) NULL,
课程号 char(8) NOT NULL,
成绩 int(3) NULL,
PRIMARY KEY (学号),
FOREIGN KEY (学号)
REFERENCES _STUDEND (学号)
ON UPDATE CASCADE
);
三、写运行结果:
有一个XSKC数据库,数据库中包括两个表:
学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在院系(Sdept)五个属性组成,记为: Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。
成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SG(Sno,Cno,Grade) (SNO, CNO)为关键字。
用SQL语言实现下列功能:
学生表Student
Sno Sname Ssex Sage Sdept
0001 张梨花 女 22 软件
0002 李刚 男 17 计算机
0003 王军 男 19 经济
0004 李海红 女 18 软件
成绩表SG
Sno Cno Grade
0001 101 95
0001 103 85
0002 103 90
0003 101 55
0004 103 67
写执行下列SQL语句后的运行结果:
1、SELECT Sno AS ‘Number of Student ‘, 姓名AS name FROM student
WHERE Sdept =’ 软件’;
运行结果:
Number of Student name
0001 张梨花
0004 李海红
2、Select Ssex,avg(Sage) from student group by Ssex
运行结果:
Ssex avg(Sage)
女 20
男 18
3、select Sname,grade from student,SG where student.sno=sg.sno order by grade DESC;
// 在MySql中,使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列
运行结果:
Sname grade
张梨花 95
李刚 90
张梨花 85
李海红 67
王军 55
四、写SQL语句:
用SQL语言实现下列功能:
1. 创建学生表Student,并设置学号(Sno)为主键,姓名(Sname)建立普通索引。
create table Student(
Sno char(4) not nul primary key ,
Sname char(20),
index Sname_index(Sname(10))
);
2. 创建成绩表 SG(Sno,Cno,Grade) ,设立(SNO, CNO)为关键字,成绩为普通索引。
create table SG(Sno,Cno,Grade)
Sno char(10) not null,
Cno char(10) not null,
Grade int,
primary key(Sno,Cno),
index Grade_index(Grade(10))
);
3. 向成绩表SG中插入一条记录(‘08111’,‘203’,80)
INSERT INTO SG(Sno,Cno,Grade) VALUES(‘08111’,‘203’,80);
4. 向学生表Student中插入一条记录(‘08111’,‘张翰’,’男’,22,’计算机’)
INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept) VALUES(‘08111’,’张翰’,’男’,22,’计算机’);
5. 学生“李刚”从“计算机”学院转到“经济”学院,请修改其数据记录
UPDATE Student SET Sdept=’经济’ WHERE Sname=’李刚’;
6、将SG表中103课程的成绩提高10%
UPDATE SG SET Grade = Grade *1.1 where Cno =’103’;
7.删除学号为0002的学生记录。
DELETE FROM Student WHERE Sno=’ 0002’;
8、删除SG表中0002学生的103课程的记录
DELETE * FROM SG WHERE Sno=’ 0002’ AND Cno=’103’;
9.查询学习101号课程的学生最高分数、平均成绩。
SELECT MAX(Grade),AVG(Grade) FROM Student WHERE Cno=’101’;
10.查询成绩表中103号课程的所有记录
SELETE * FROM SG WHERE Cno=’103’;
11.查询Student表中所有记录,并按年龄的降序排序。
SELECT * FROM Student ORDER BY Sage DESC;
12. 查询“软件”学院的女学生的记录。
SELECT * FROM Student WHERE Sdept=’软件’ AND Ssex=’女’;
13.查询Student表中姓“王”的同学记录。
SELECT * FROM Student WHERE Sname=’王%’;
14.查询成绩表中成绩在60到80之间的所有记录
SELECT * FROM SG WHERE Grade BETWEEN 60 AND 80;
15.假设你已用root登录,请为王军创建名为Wang的新用户,初始密码为123456。并指定该用户对student表有修改、删除记录的权限,对SG表有查询权限。
create user ‘wang’ ‘@‘localhost’ identified by ‘123456’ grant select,update on jxgl.students to ‘wang’@‘localhost’;
五、连线题
创建数据库 CREATE DATABASE
建立索引 CREATE INDEX
删除视图 DROP VIEW
修改表数据 ALTER TABLE
插入表记录 INSERT
删除记录 DELETE
外键 FOREIGN KEY
主键 PRIMARY KEY
回收权限 REVOKE
分类汇总 GROUP BY
修改表结构 UPDATE
排序 ORDER BY
授权 GRANT
六、数据库设计
1、百货公司管辖若干连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。
实体类型“商店”的属性有:店号、店名、店址、店经理。
实体类型“商品”的属性有:商品号、品名、单价、数量。
实体类型“职工”的属性有:工号、姓名、性别、工资。
在联系中应反映出职工参加某商店工作的入职时间、商店销售商品的月销售量。
试画出反映商店、商品、职工实体类型及其联系的E-R图。