一、单选题
1. 以下聚合函数求数据平均值的是( )
MAX B、 SUM C、 COUNT D、 AVG
2. MySQL默认事务的隔离级别( )
A、 read uncommitted(读取未提交内容)
B、 read committed(读取提交内容)
C、 repeatable read(可重读)
D、 serializable (可串行化)
3. 修改数据库表结构用以下哪一项( )
A、 UPDATE B、 CREATE C、 UPDATED D、 ALTER
4. 删除用户账号命令是( )
A、 DROP USER
B、 DROP TABLE USER
C、 DELETE USER
D、 DELETE FROM USER
5. SQL是一种( )语言。
A、 函数型 B、 高级算法 C、 结构化查询 D、 人工智能
6. 若要在基本表S中增加一列CN(课程名),可用( )
A、 ADD TABLE S ALTER(CN CHAR(8))
B、 ALTER TABLE S ADD(CN CHAR(8))
C、 ADD TABLE S(CN CHAR(8))
D、 ALTER TABLES S (ADD CN CHAR(8))
7. 按照姓名降序排列( )
A、 ORDER BY DESC NAME
B、 ORDER BY NAME DESC
C、 ORDER BY NAME ASC
D、 ORDER BY ASC NAME
8. 下面的代码输出的结果是( )
SET @m=5;
SET @n=8;
SET @sum=@m+@n;
SELECT @sum;
A、 报错 B、 5 C、 8 D、 13
9. SELECT COUNT(SAL) FROM EMP GROUP BY DEPTNO;意思是( )
A、 求每个部门中的工资
B、 求每个部门中工资的大小
C、 求每个部门中工资的综合
D、 求每个部门中工资的个数
10. 条件“BETWEEN 20 AND 30”表示年龄在20到30之间,且( )
A、 包括20岁不包括30岁
B、 不包括20岁包括30岁
C、 不包括20岁和30岁
D、 包括20岁和30岁
11. 从GROUP BY分组的结果集中再次用条件表达式进行筛选的子句是( )
A、 FROM B、 ORDER BY C、 HAVING D、 WHERE
12. 为数据表创建索引的目的是( )
A、 提高查询的检索性能
B、 归类
C、 创建唯一索引
D、 创建主键
13. MySQL中,预设的、拥有最高权限超级用户的用户名为( )
A、 test B、 Administrator C、 DA D、 root
14. 以下语句不正确的是( )
A、 select * from emp;
B、 select ename,hiredate,sal from emp;
C、 select * from emp order deptno;
D、 select * from emp where deptno=1 and sal<300;
15. 格式化日期的函数是( )
A、 DATEDIFF()
B、 DATE_FORMAT()
C、 DAY()
D、 CURDATE()
16. 一张表的主键个数为( )
A、 至多3个 B、 没有限制 C、至多1个 D、 至多2个
17. 以下表示可变长度字符串的数据类型是( )
A、 TEXT B、 CHAR C、VARCHAR D、 EMUM
18. 拼接字段的函数是( )
A、 SUBSTRING() B、 TRIM() C、 SUM()D、 CONCAT()
19. 下列说法错误的是( )
A、GROUP BY 子句用来分组 WHERE 子句的输出
B、WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。
C、 聚合函数一般和group by 一起使用
D、 HAVING 子句用来从FROM的结果中筛选行
20. 例如数据库中有A表,包括学生,学科,成绩三个字段 , 数据库结构为
学生 学科 成绩
张三 语文 60
张三 数学 100
李四 语文 70
李四 数学 80
李四 英语 80
如何统计最高分>80的学科( )
A、 SELECT MAX(成绩) FROM A GROUP BY学科 HAVING MAX(成绩)>80;
B、 SELECT学科 FROM A GROUP BY学科 HAVING成绩>80;
C、 SELECT学科 FROM A GROUP BY学科 HAVING MAX(成绩)>80;
D、 SELECT学科 FROM A GROUP BY学科 WHERE MAX(成绩)>80;
21. MySql安装后,默认占用端口是( )
A、3306 B、8066 C、 8086 D、 1503
22. 在标准SQL分类中( )不属于DML;
A、 UPDATE B、SELECT C、 DELETE D、 INSERT
23. 执行insert命令时,如果未指定列名则表示( );
A、 可以随便给定值
B、 只需给定主键值
C、 必须给定每个字段的值
D、 只需给定有约束限制的列提供值
24. 执行insert,update,delete命令后的返回值都是一个( ),代表更新的结果;
A、整数 B、 结果集 C、 毫秒值 D、 二维表
25. 下列有关索引描述正确的是( )
A、 各种索引中,只有主键具有唯一性要求;
B、 主键列允许有null值;
C、 主键索引仅可以提高主键列的检索速度;
D、 Unique 索引列允许有null值;
二、填空题
1. 在SQL中使用( create table) 命令建立基本表结构。
2. 事物的性质包括 原子性、( 一致性)、( 隔离性)、( 持久性)。
3. 创建数据库基本的命令是(create database )数据库名。
4. 在MySql8.0中数据库引擎是( innodb)。
5. SELECT 语句中,使用( where)子句可提取满足条件的记录。
6. MyDQL的索引有(普通索引 , 唯一索引, 主键索引, 外键索引,全文索引 )5种
7. 在标准SQL分类中CREATE,(drop ),( alter)属于DDL。
8. 使用( call)命令调用存储过程。
9. 数据库视图被称为“虚拟表”,创建视图格式是(create view )视图名 AS SELECT语句
10. 组合索引遵循( 最左)优先原则,因为索引方法是Btree树状的,搜索时需要从根节点出发,上层节点对应靠左的值
三、简答题
1.创建 employee 的表结构 要求:
1) id int 编号(主键,自动增长)
2) job_id int 工种
3) name varchar(30) 员工名称
4) department_id int 部门编号(001,002)
5) salary decimal(10,2) 薪水
6) bonus decimal(10,2) 奖金
create table employee(
id int unsigned primary key auto_increment,
job_id int not null,
name varchar(30) not null unique,
department_id int not null,
salary decimal(10,2) not null default 1000,
bonus decimal(10,2) not null default 0
);
2.写出给表employee结构添加两条数据
要求: 1) job_id 值 2, name 值张三,department_id 值1,salary 值5000,bonus 值 800;
2) job_id 值 3, name 值李四,department_id 值1,salary 值4000,bonus 值 100;
insert employee (job_id,name,department_id,salary,bonus) values(2,’张三’,1,5000,800);
insert employee (job_id,name,department_id,salary,bonus) values(3,’李四’,1,4000,1000);
3.对表employee查询语句;
要求: 1) 查找 薪水(salary)大于等于 4500并且 奖金(bonus)大于 500的记录
2) 查询部门编号(department_id)为1 的员工个数
select * from employee where salary>=4500 and bonus>500;
select count(*) from employee where department_id=1;
4.对表employee分页查询,假设每页2 记录,写出前两页的查询语句;
select * from employee limit 0,2;
select * from employee limit 2,2;
5.对表employee查询分组和排序
要求: 1) 查询所有部门的编号,员工数量和工资的平均 并按平均工资降序
select department_id,count(*),avg(salary) as a
from employee
group by department_id
order by a desc;