一、简答题 1.简述你们公司使用的MySQL版本,并说明具体小版本及GA时间?
5.7.26
5.7.38
2017.9.13
2.请介绍你熟悉的数据库关系系统的种类和代表产品名称?
RDBMS MYSQL ORECAL MOGDB
NODBMS PG REDIS
3.请简述MySQL二进制安装重点步骤?
1下载安装解压
2创建用户,创建目录,授权用户管理目
3写一个MySQL的环境变量
4可以编写一个启动脚本使其可以,systemctl启动
5启动
4.怎么确认数据库启动成功了?
ps -ef|grep 3306
ss -lntup|grep 3306
netstat -lntup|grep 3306 mysql 登录测试
5.简述你了解的MySQL分支版本情况?
Orale MYSQL
MariaDB
percona
6.请简述mysqld的程序结构(1条SQL语句的执行过程)
链路层
SQL层
数据引擎层
7.请简述你了解的MySQL的启动方式
sys-v
system
8.简述MySQL配置文件默认读取顺序
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
9.mysqld_safe --default-files=/opt/my.cnf &是什么作用?
这是一条启动命令
自定义配置文件 后台启动mysql
10.忘记管理员root的密码处理过程,请对参数详细说明
--skip-grant-tables 关闭连接层的验证功能
--skip-netwoking 关闭TCPIP协议,进制远程链接
11.请列举SQL语句的常用种类
DDL
DML
DQL
DCL
12.请说明聚集索引和辅助索引的区别
聚集索引:整行数据在叶子节点上
辅助索引:单列键值在叶子节点上
13.请简述以下语句执行计划可能存在的问题 阐述以下语句可能存在的问题,并提出合理解决方案
没有走索引,执行效率低
1 有没有索引,索引损坏了,
2去建立索引,提升工作的效率
3也可以建立联合索引
14. 请简述,影响索引树高度的因素?
数据行的
15.请说明数据库启动失败的处理思路?
直接启动如果有错误
1 看error错误日志
2 报错会显示在屏幕上自己查看
16. MySQL索引的种类都有哪些?
聚集索引 辅助索引 唯一索引
17. 你了解的MySQL存储引擎种类有哪些?
MyISAM
INNODB
CSV
18.InnoDB存储引擎核心特性
MVCC CRS 事务 热备 外键
二、操作题
1.创建管理员用户:oldboy能通过10.0.0.0/24网段任意地址登录管理MySQL
grant all on *.* to oldboy@'10.0.0.%' identified by '123';
2.创建应用用户:wordpress能通过172.16.1.0/24网段任意地址登录操作wordpress库下的所有表
grant all on wordpress.* to wordpress@'172.16.1.%' identified by '123';
3.请写出/etc/my.cnf的基础配置信息
cat /etc/my.cnf
datadir=/data/mysql
basedir=/data/mysql/data
port=3306
server_id=6
error_log=/data/mysql
4.请写出使用oldboy用户远程登录MySQL的具体语句
mysql -uoldboy -p -h10.0.0.51 -P3306
5.查看当前数据库的字符集
show create database
6. 创建GBK字符集的数据库oldboy,并查看已建库完整语句
create database oldboy charset GBK;
show create database oldboy;
7. 请分别介绍 NOT NULL default auto_increament 的作用
NOT NULL 非空
default 默认
auto_increament 自增长
8. 创建用户oldboy,使之可以管理数据库oldboy
grant insert.delete.update.select on oldboy.* oldboy@'10.0.0.%' identified by '123';
9. 收回oldboy用户的drop权限
revoke drop on oldboy@'10.0.0.%';
10. 查看创建的用户oldboy拥有哪些权限
show grangs for oldboy@'10.0.0.%';
11. 查看建表结构及表结构的SQL语句
desc
show create table
12. 插入一条数据“1,oldboy”
insert into dolboy values(1,oldboy);
13.再批量插入2行数据“2,老男孩”,“3,oldboyedu”
insert into dolboy values(2.'老男孩'),(3.oldboyedu);
14.查询名字为oldboy的记录
select * from oldboy where 'name=oldboy';
15. 查看数据库中所有引擎的类型
show engines;
16.查看数据库关于日志的参数配置
show variables like '%log%';
17.查看handler_read_key当前的状态信息
show status like 'handler_read_key';
18. 列出删除表中数据的方式
delete和truncate区别
delete 逻辑逐条删除数据行
trucate:物理删除表段中的所有数据页
19.test表中,有id、name、shouji列。把id列设置为主键,在Name字段上创建普通索引
create table test(
id int not null primary key comment '学生id',
name name varchar(64) not null comment '姓名',
shouji char(11) not null comment '手机号'
)engine innodb charset utf8 comment '学生表';
alter table test add index id_name(name);
20 在手机字段上对前8个字符上创建前缀索引
alter table test add index id_sj(showji(8));
21 查看创建的索引及索引类型信息
desc test;
show index from test;
22 删除name,shouji列的索引
alter table test drop index id_name;
alter table test drop index id_sj;
23 对name列的前6个字符及手机列的前8个字符建联合索引
alter table test add index id_na_sh(name(6).shouji(8);
24 将shouuji列索引替换为唯一索引
alter table test add unique index idx_sj(shouji);
25 如何查看world数据库下的city表中的population列的重复值情况
select population,count(id) from world.city group by population having count(id)>1 order by count(id) desc;
26 请列出explain命令中的type多种类型
all
index
ref
eq_ref
system
null
27 select 查询语句加强练习
统计世界上每个国家的总人口数
SELECT countrycode,SUM(population) FROM city GROUP BY countrycode ;
统计中国每个省的总人口数量 统计
SELECT district ,SUM(population) FROM city WHERE countrycode='CHN' GROUP BY district;
统计世界上每个国家的城市数量