周测3
一、单选题
1. 以下聚合函数求数据平均值的是( )
A.MAX B.SUMC. 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是一种( 结构化查询 )语言。
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之间,且( 包括20岁和30岁 )
11.从GROUP BY分组的结果集中再次用条件表达式进行筛选的子句是( HAVING )
12.为数据表创建索引的目的是( )
A.提高查询的检索能力 B.归类 C.创建唯一索引 D.创建主键
13.MySQL中,预设的、拥有最高权限超级用户的用户名为( root )
14.以下语句不正确的是( )
A.select * from emp;
B.select ename,hiredate,sal from emp;
C.select * from order deptno;
D.select * from emp where deptno = 1 and sal < 300;
15.格式化日期的函数是()
A.DATEDIFF() 返回起始时间和结束时间之间的天数 B.DATE_FROMAT()
C.DAY() 日期间隔类型 D.CURDATE() 返回当前日期
16.一张表的主键个数为( 至多1个 )。
17.以下表示可变长度字符串的数据类型是( VARCHAR )
18.拼接字段的函数是( CONCAT() )
19.下列说法错误的是()
A.GROUP BY子句用来分组WHERE子句的输出
B.WHERE子句用来筛选FROM子句中指定的操作所产生的行
C.聚合函数一般和GROUP BY 一起使用
D.HAVING 子句用来从FROM 的结果中筛选
从GROUP BY分组的结果集中再次用条件表达式进行筛选的
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安装后,默认占用端口是( 3306 )
22.在标准SQL分类中( )不属于DML;
A.UPDATE B.SELECT C. DELETE D.INSERT
DDL数据定义语言:create、drop、alter DML数据操作语言:insert、delete、update DQL数据查询语言:select、where DCL数据控制语言:grant、revoke |
23.执行insert命令时,如果未指定列名则表示( );
A.可以随便给定值
B.只需给定主键值
C.必须给定每个字段的值
D.只需给定有约束限制的列提供值
24.执行insert,update,delete命令后的返回值都是一个( ),代表更新的结果;
A.整数 返回影响行数n
B.结果集
C.毫秒数
D.二维表
25.下列有关索引描述正确的是( )
A.各种索引中,只有主键具有唯一性要求;
B.主键列允许有null值;
C.主键索引仅可以提高主键列的检索速度;
D.unique索引列允许有null值;
二、填空
1. 在SQL中使用( create table ) 命令建立基本表结构。
2. 事物的性质包括 原子性、( 一致性 )、( 隔离性 )、( 持久性 )。
3.创建数据库基本的命令是( create datebase )数据库名。
4.MySQL中数据引擎是( 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; |
limit 开始的索引,每页查询的条数 开始的索引 = (当前页码-1)*每页显示的条数 |
5.对表employee查询分组和排序,查询所有部门的编号,员工数量和工资的平均 并按平均工资降序
select department_id,count(*),avg(salary) as a from employee group by department_id order by a desc; |