DBA实战面试题(一)
数据库面试测试题(一)
简述当前主流RDBMS软件有哪些?开源且跨平台的数据库软件有哪些?
参考答案
当前主流的数据库服务器软件有: Oracle 、 DB2 、 SQL SERVER 、MySQL 等 ,其中只有MySQL是既开源又跨平台的数据库服务软件。
简述MySQL数据库的服务进程名、默认端口、默认数据库目录?
参考答案
服务进程名:mysqld
默认监听端口号:3306
默认数据库目录:/var/lib/mysql
简述MySQL默认的4个库叫什么名字?哪个库里的数据不占用物理磁盘空间?
参考答案
MySQL默认的4个库分别是 information_schema 、performance_schema 、mysql 、sys 其中information_schema库不占用物理磁盘空间。
简述MySQL数据库中插入、更新、查询、删除表记录的指令格式。
参考答案
1)插入记录指令格式
//一次插入一条记录 给记录的所有字段赋值insert into 库.表 values(值列表);//一次插入多条记录 给记录的所有字段赋值insert into 库.表 values(值列表),(值列表); insert into 库.表(字段名列表) values(值列表); //一次插入1条记录 给记录的指定字段赋值insert into 库.表(字段名列表) values(值列表),(值列表); //一次插入多条记录 给记录的指定字段赋值
2)更新记录指令格式
//批量修改update 表名 set 字段名=值,字段名="值"; //修改符合条件的记录字段的值update 表名 set 字段名=值,字段名="值" where 条件;
3)查询记录指令格式:
//查询所有记录指定字段的值。select 字段列表 from 表名; //查询与条件匹配记录指定字段的值。select 字段列表 from 表名 where 条件表达式列表;
4)删除表记录指令格式:
//删除表的所有记录。delete from 表名;//只删除符合条件的记录 delete from 表名 where 条件;
查询综合练习题,按要求写出对应查询语句。
1、添加记录编号字段id 在所有字段上方,字段值可以自动增长。
2、显示uid 是四位数的用户的用户名和uid号。
3、显示名字是以字母r 开头 且是以字母d结尾的用户名和uid号。
4、查看gid 小于10的用户使用shell的种类。
5、查看shell不是/bin/bash用户中uid号最大用户名及uid号。
6、统计uid是3位数的用户的个数。
参考答案
1、添加记录编号字段id 在所有字段上方,字段值可以自动增长。
alter table userdb.userlist add id int(2) primary key auto_increment first;
2、显示uid 是四位数的用户的用户名和uid号。
select name,uid from userdb.userlist where uid >=1000 and uid<=9999; 或 select name,uid from userdb.userlist where uid between 1000 and 9999; 或 select name,uid from userdb.userlist where uid regexp ‘^....$’;
3、显示名字是以字母r 开头 且是以字母d结尾的用户名和uid号。
select name,uid from userdb.userlist where name regexp ‘^r.*d$’;或select user from mysql.user where user regexp '^r' and user regexp 'd$';
4、查看uid 小于10的用户使用shell的种类。
select shell from userdb.userlist where uid<10 group by shell;或Select distinct shell from userdb.userlist where uid<10;
5、查看shell不是/bin/bash用户中uid号最大用户名及uid号。
select name,uid from userdb.userlist where shell!=”/bin/bash” order by uid desc limit 1;
6、统计uid是3位数的用户的个数。
select count(name) from userdb.userlist where uid >=100 and uid<=999;
请列出MySQL常用的数据类型,并写出定义这些数据类型所使用的命令。
参考答案
MySQL常用的数据类型有:字符类型、数值类型、日期时间类型、枚举类型
字符类型: char 、 varchar 、 blob、 text
数值类型: tinyint 、smallint 、int 、bigint 、float 、 double
日期时间类型: year 、 date 、 time 、 datetime 、 timestamp
枚举类型: enum 、set
定义数据类型命令:create 库名.表名(字段名 数值类型,字段名 数值类型 。。。); 或 alter 库名.表名 modify 字段名 数值类型
简述数据导入命令格式。
参考答案
mysql> LOAD DATA INFILE "/目录名/文件名" INTO TABLE 库名.表名 FIELDS TERMINATED BY "符号" LINES TERMINATED BY "\n";
简述主键的使用规则。
参考答案
1)字段值不允许重复,且不允许赋NULL值
2)一个表中只能有一个primary key字段
3)多个表头做主键,称为复合主键,必须一起创建
4)主键的标志是PRI
5)主键通常与auto_increment 连用6)通常把行号表头设置为主键
简述创建外键语法格式及使用规则。
参考答案
语法格式
CREATE TABLE 库名.表名 (表头名列表, FOREIGN KEY(表头名) REFERENCES 库名.表名(表头名) ON UPDATE CASCADE ON DELETE CASCADE )ENGINE=innodb;
使用规则:
1)表存储引擎必须是innodb
2)字段类型要一致
3)被参照字段必须要是索引类型的一种(primary key)
简述读取binlog日志内容恢复数据格式
参考答案
mysqlbinlog /目录名/binlog日志文件名 | mysql -uroot -p密码
简述什么是binlog日志
参考答案
binlog日志也称做二进制日志,记录除查询之外的所有SQL命令,可用于数据的备份和恢复,是配置mysql主从同步的必要条件
简述备份策略
参考答案
完全备份:备份所有数据
增量备份:备份上次备份后,新产生的数据
差异备份:备份完全备份后,新产生的数据
简述innobackupex的特点及增量恢复数据的步骤
参考答案
特点:在线备份不锁表,备份执行过程中同时允许对表做读写访问
增量恢复数据步骤如下:
1)准备恢复数据
2)合并数据
3)停止数据库服务并清空数据库目录
4)拷贝数据
5)修改数据库目录所有者/组用户为mysql
6)启动mysqld服务
写出用户授权命令语法格式。
参考答案
GRANT 权限列表 ON 库名.表名 TO 用户名@'客户端地址' IDENTIFIED BY '密码' ;
数据库授权综合练习,按题目要求写出对应的授权命令。
1、查看当前数据库服务器有哪些授权用户?
2、授权管理员用户可以在网络中的任意主机登录,对所有库和表有完全权限登陆密码123456
3、授权webadmin用户可以从网络中的所有主机登录,对bbsdb库拥有完全权限,登录密码为 123456
4、不允许数据库管理员在数据库服务器本机登录。
参考答案
1.select user from mysql.user;
2.grant all on *.* to root@“%” identified by “123456”;
3.grant all on bbsdb.* to webadmin@“%” identified by “123456” ;
4.delete from mysql.user where host=”localhost” and user=”root”;
flush privileges;
写出撤销用户授权命令语法格式。
参考答案
revoke 权限列表 on 数据库名 from 用户名@”客户端地址”;
简述什么是索引及索引的优/缺点
参考答案
1)什么是索引
类似书的目录
为快速查找数据而排好序的一种数据结构。
所有的数据类型都可以被索引。
Mysql索引主要有三种结构:Btree、B+Tree 、Hash 。
2)索引优点
可以提高MySQL的检索速度
索引减小了服务需要扫描的数据量
索引可以帮助服务器避免排序和临时表
索引可以将随机IO变成顺序IO
3)索引缺点
虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存索引文件。
建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。
如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。
对于非常小的表,大部分情况下简单的全表扫描更高效。
简述什么是视图及视图的优点。
参考答案
1)什么是视图
只有表结构的虚拟表。
数据库服务只存放了视图的定义,视图中的数据存放在原表中。
使用视图查询数据时,会从原表中取出对应的数据。
原表中的数据发生改变,视图中的数据也会发生改变,反之亦然。
视图中的数据由创建视图时的SELECT语句决定。
2)视图的优点
1. 简单
用户无需关心视图中的数据如何查询获得的
视图中的数据已经是过滤好的符合条件的结果集
安全:用户只能看到视图中的数据
2. 数据独立
一旦视图结构确定,可以屏蔽表结构对用户的影响
写出创建存储过程的命令格式
参考答案
delimiter //
create procedure 库名.名称()
begin 代码块
end//
delimiter ;
DBA实战面试题(一)的更多相关文章
- DBA 经典面试题(5)
国外公司的Oracle DBA试题 Oracle DBA Interview Questions 1. How many memory layers are in the shared pool? 2 ...
- DBA 经典面试题(2)
三.备份恢复类 ================================================================================ 1:备份如何分 ...
- DBA 经典面试题(1)
1:列举几种表连接方式 hash join. merge join. nest loop join(cluster join). index join 2:不借助第三方工具,怎样查看sql的执 ...
- DBA 经典面试题(3)
这里的回答并不是十分全面,这些问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽的答案,只需要通过你的解答使面试考官了解你对ORACLE概念的熟悉程度. 1.解释冷备份和热备份的不 ...
- DBA 经典面试题(4)
1.如果信息采集管理系统(ICM)崩溃了怎么办? 答案:所有其他的管理器都会继续工作.ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器. 2.你如何加速打补丁的过程? 答案: ...
- Mysql实战面试题
一.索引 B+ Tree 原理 1. 数据结构 B Tree 指的是 Balance Tree,也就是平衡树.平衡树是一颗查找树,并且所有叶子节点位于同一层. B+ Tree 是基于 B Tree 和 ...
- MySQL DBA修炼秘籍
0.导读 本文主要写给那些立志成为MySQL DBA,以及正在学习MySQL的同行们,结合个人及业内其他同行的职业发展经历给大家一些参考,如何成为合格的MySQL DBA. 1.什么是MySQL DB ...
- 实战分析: MySQL字符集
原创: 吴炳锡 MySQLBeginner 实战分析: MySQL字符集说明 在本文中讨论以下几个问题: 1. GBK和UTF8占用几个字节 2. ASCII码在不同字符集中占用几个字节 3. MyS ...
- Oracle DBA面试突击题
一份ORACLE DBA面试题 一:SQL tuning 类 1:列举几种表连接方式 答: Oracle的多表连接算法有Nest Loop.Sort Merge和Hash Join三大类,每一类又可以 ...
- 3java面试题 传智 发的 有用
第一章内容介绍 20 第二章JavaSE基础 21 一.Java面向对象 21 1. 面向对象都有哪些特性以及你对这些特性的理解 21 2. 访问权限修饰符public.private.protect ...
随机推荐
- 数字孪生和GIS融合为智慧水利带来了什么?
数字孪生和GIS的融合为智慧水利领域带来了巨大的变革和机遇.数字孪生技术的出现,使得水利管理者和决策者能够更好地理解和管理水资源,提高水利设施的效率和可持续性.而GIS作为空间数据管理和分析工具,为数 ...
- android webview(外部浏览器)调起app
最近写的项目中涉及外部浏览器以及项目webview中调起app,所以总结下,和大家分享下. 总的实现方法还是比较简单的, 1:在清单中注册 首先在AndroidManifest文件中,注册一个过滤器 ...
- 从零玩转Websocket实时通讯服务之前后端分离版本
前言 公司项目需要用到消息提示,那么WebSocket它来了经过我面向百度的学习,废话不多说直接开干. 后端搭建 一.依赖导入 <dependency> <groupId>or ...
- ElasticSearch的简单api介绍
1:ElasticSearch是什么? Elasticsearch 是一个分布式的免费开源搜索和分析引擎 适用于包括文本.数字.地理空间.结构化和非结构化数据等在内的所有类型的数据 Elasticse ...
- MySQL 基础(二)日志
在操作系统和数据库管理系统中,为了提高数据的容灾性,一般都会通过写入相关日志的方式来记录数据的修改,使得系统受到灾难时能够从之前的数据中恢复过来.MySQL 也提供了日志的机制来提高数据的容灾性,主要 ...
- GOF23--23种设计模式(二)
一.建造者模式 建造者模式也是属于建造型模式,它提供了一种创建对象的最佳方式 定义:将一个复杂的对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示 主要作用:在用户不知道对象的构建细节的情 ...
- Codeforces 1202D 思维 构造
原题链接 题意 每组数据给我们一个n,然后要求我们用{1, 3, 7}这三种字符来组成一个长度小于1e5的序列,要求其中为1337的子序列(不要求相邻)的数量恰好为n 思路 首先可以考虑最简单的一种构 ...
- Flutter GetX的事件监听
Flutter GetX的事件监听 import 'package:flutter/material.dart'; import 'package:flutter_code/page/book/boo ...
- 看这里!带你快速体验MindSpore V1.0(For ubuntu 18.04)
摘要: 本文介绍了如何在Ubuntu 18.04上安装CPU版本的MindSpore V1.0.并使用安装好的MindSpore进行了LeNet的模型训练. Part One:引言 在HC2020大会 ...
- SpringBoot 2.x 正式停更了。Java 8 就看 Solon 的了!
最近有好多个新闻说:SpringBoot 2.x 正式停更了,Java 8 怎么办?当然用 Solon 喽! Solon,同时支持 jdk8, jdk11, jdk17, jdk21.也支持 graa ...