23级数媒技专业专升本《数据库原理与技术》期末试题
答题的内容用mark高亮标签表示出来。
一、单选题 (每小题1分,共30分)
1.删除一个视图的语句是(C)
A.revoke B.delete
C.drop D.clear
2.一个事务的执行不受其他事务的干扰是指事务的(C )
A.原子性 B.一致性
C.隔离性 D.持久性
3.select '1+2';的显示结果是( A )
A.1+2 B.3
C.3.0000 D.'1+2'
4.查看系统变量的值的语句是( D)
A.select @global/session.系统变量名;
B.select @@global/session.系统变量名;
C.select global/session.系统变量名;
D.select @系统变量名;
5.下列(D)不属于连接的种类
A.左外连接 B.内连接
C.交叉连接 D.中间连接
6.一下哪项为左外连接( A )
A.left join B.right join
C.inner join D.cross join
7.条件age in(20,30,40)的意思是(D )
A. 年龄在20到40之间 B. 年龄在30-40之间
C. 年龄在20-30之间 D. 年龄为20或30或40
8.删除外键的语句为(A )
A. ALTER TABLE 表名 DROP FOREIGN KEY 外键名
B. ALTER TABLE 表名 DROP 外键名
C.DROP FOREIGN KEY 外键名
D.ALTER TABLE 表名 DELETE FOREIGN KEY 外键名
9.子查询中如果和in、any、all搭配使用,子查询的查询结果一般是( A )
A.一列多行 B.一行多列
C.多行多列 D.以上都行
10.查找条件为:姓名不是NULL的记录( C )
A.WHERE NAME ! NULL B.WHERE NAME NOT NULL
C.WHERE NAME IS NOT NULL D.WHERE NAME!=NULL
11.以下聚合函数求数据总和的是( B)
A.MAX B.SUM
C.COUNT D.AVG
12.以下表达降序排序的是( C )
A.ASC B.ESC
C.DESC D.DSC
13.从GROUP BY分组的结果集中再次用条件表达式进行筛选的子句是(C)
A.FROM B.ORDER BY
C.HAVING D.WHERE
14.向数据表中插入一条记录用以下哪一项( B)
A.CREATE B.INSERT
C.SAVE D.UPDATE
15.若用如下的SQL语句创建了一个表SC:
CREATE TABLE SC (
Sa CHAR (6) NOT NULL,
Ca CHAR (3) NOT NULL,
SCORE INT ,
NOTE CHAR (20)
);
向sc表插入如下行时,( B ) 行可以被插入。
A.(NULL,' 103' , 80,'t1E' )
B.(' 200823' ,' 101', NULL,NULL)
C.(' 201132', NULL, 86,'')
D.(' 201009',' 111, 60, LE)
16.以下删除记录正确的( A )
A.delete from emp where name='dony';
B.Delete * from emp where name=' dony';
C.Drop from emp where name=' dony' ;
D.Drop * from emp where name= 'dony';
17.以下插入记录正确的( A )
A.insert into emp(ename,hiredate,sal) values (value1,value2,value3);
B.insert into emp (ename,sal)values(value1,value2,value3);
C.insert into emp (ename)values(value1,value2,value3);
D.insert into emp (ename,hiredate,sal)values(value1,value2);
18.以下语句不正确的是( C)
A.select * from emp;
B.select ename, hiredate,sal from emp;
C.select * from emp order deptno;
D.select * from y where deptno=1 and sal<300;
19.delete from employee语句的作用是( B )
A.删除当前数据库中整个employee表,包括表结构
B.删除当前数据库中employee表内的所有行
C.由于没有where子句,因此不删除任何数据
D.删除当前数据库中employee表内的当前行
20.向该表中插入数据,哪条能成功?( C)
A. insert into values(11, 'zhangsan', 'null');
B. insert into test values(11, 'zhangsan', 'null');
C. insert into test (id, name) values(11, 'zhangsan');
D. insert into test (id, class) values(11, 1);
21.修改lisi的班级为2的语句为( B)
A.update test set class=2 where name=lisi;
B.update test set class=2 where name='lisi';
C.alter table test set class 2 where name=lisi;
D.alter table test set class=2 where name='lisi';
22.下列哪个不是mysql中的整数类型(C )
A.INT B.TINYINT
C.DOUBLE D.MEDIUMINT
23.创建数据库使用以下哪项(D )
A.create mytest
B.create table mytest
C.database mytest
D.create database mytest
24.一张表的主键个数为( C )
A.必须有一个且只能有一个 B.没有限制
C.至多1个 D.至多2个
25.下列哪项不是数据库的特点( B )
A.实现数据的持久化
B.数据断电丢失
C.使用完整的管理系统统一管理
D.数据易于查询
26.下列哪个不是常见的DBMS (D )
A.MySQL B.Oracle
C.SqlServer D.OUTLOOK
27.MySQL 中,预设的、拥有最高权限超级用户的用户名为( D)
A.test B.Administrator
C.DA D.root
28.创建视图的语句是(D)
A.alter table B.alter view
C.create table D.create view
29.若要在基本表S中增加一列CN (课程名),可用(D)
A.ADD TABLE S ALTER CN CHAR(8)
B.ALTER TABLES ADD CN CHAR ( 8 )
C.ADD TABLE S CN CHAR( 8)
.ALTER TABLE S ADD CN CHAR( 8)
30.DECIMAL(M,D)数据类型中,M表示(A)
A.整数部位+小数部位的位数
B.小数部位的位数
C.整数部位的位数
D.10
二、多选题 (每小题2分,共10分)
1.下列哪些情况下视图的数据无法进行更新、插入、删除(ABCD)
A.select语句中包含子查询
B.from一个不能更新的视图
C.where 字句的子查询引用了from 字句中的表
D.sql语句中包含 聚合函数,distinct,group by,having ,union,union all
2.以下是修改视图的语句是(AB )
A.create or replace view st1 as select* from student;
B.alter view st1 as select name from student join class on student.cid=class.id;
C.alter table st1 modify class int(3);
D.create or replace table st1 as select* from student;
3.事务的属性包括(ABCD)
A.原子性 B.一致性
C.隔离性 D.持久性
4.以下否定语句搭配正确的是(AB)
A.not in B.is not null
C.not is null D.in not
5.删除test表中所有数据的语句为(CD )
A.drop table test; B.delete table test;
C.delete from test; D.truncate test;
三、判断题 (每小题2分,共20分)
1.事务必须是一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行,单个语句不是事务。( × )
2.从表中添加外键约束的字段数据必须来源于主表的关联列。( √ )
3.一个表中只能有一个外键。( × )
4.对于整数数据类型,如果不设置有符号无符号,默认无符号。( × )
5.VARCHAR(M)类型 ,M可以省略。( × )
6.MySQL中可以删除某行中单独某一列的数据。( × )
7.用desc 表名的语句可以查询表中已经存在的数据。( × )
8.SQL是MySQL专有的语言,其他数据库软件无法使用。( × )
9.SQL对大小写不敏感,但是习惯上我们将关键字大写。( √ )
10.一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。( √ )
四、填空题 (每小题2分,共10分)
1.变量分为系统变量和自定义变量_。
2.用关键字_delimiter;DELIMITER可以重新定义语句结束的标记。
3.表由列组成,我们也称为字段_。所有表都是由一个或多个列组成的。
4.MySQL的命令可以通过 \字母 的方式来表示,其中清除当前输入语句的指令是\C__。
5.事务回滚的语句rollback;ROLLBACK。
五、解答题 (每小题3分,共30分)
1.写出 查看已存在的数据库的语句。
SHOW DATABASES;
2.写出 创建一个名为exam的数据库 的语句。
CREATE DATABASE exam;
3.写出 创建如下两个表,一个名为class,一个名为student 的语句
两表中分别已经存在如下数据,实现如下功能:
use exam;
CREATE TABLE class (id int primary key, cname char(10));
CREATE TABLE student(sid int primary key,sname char(20) not null,classid int references class(id),score float(5,2));
insert into class values (1,'wang3'),(2,'wang4'),(3,'wang5'),(4,'wang6');
insert into student values
(1,'jim',2,70.3),
(5,'tom',2,80.4),
(6,'tony',3,63.5),
(3,'lily',1,49.9),
(2,'lucy',2,58.7),
(4,'james',3,98.7),
(7,'parker',1,96.3);
4.学生表中插入一条数据:8,Xxxxx,1,99.2 其中Xxxx为同学自己姓名汉语拼音全拼。
INSERT INTO student VALUES(8,'xujie',1,99.2);
select * from student;
5.修改学生表中sname为自己姓名汉语拼音全拼记录的sname为自己姓名中文全称。
UPDATE student SET sname= '许杰'WHERE sid=8;
6.删除学生表中sname为自己姓名中文全称的记录。
DELETE FROM student WHERE sname='许杰';
7.查询所有学生的 sid,name,score 按sid的升序排列。
SELECT sid,sname,score FROM student ORDER BY sid ASC;
8.建立存储过程,根据classid 查询班级平均分。
DELIMITER //
CREATE PROCEDURE score()
BEGIN
SELECT c.cname, s.score
FROM class c
JOIN (SELECT classid, ROUND(AVG(score),2) score FROM student GROUP BY classid) s
WHERE s.classid = c.id;
END //
DELIMITER ;
CALL score();
9.建立视图,查看各班级分别有哪些同学(班级名、学生姓名)。
CREATE VIEW v_student AS
SELECT c.name,s.name
FROM student s
JOIN class c ON c.id = s.classid ORDER BY c.cname ASC;
10.查询哪个班级没有没有学生(班级名)。
select cnme from class where id not in (select Classid from student)