数据库面试测试题(一)

简述当前主流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实战面试题(一)的更多相关文章

  1. DBA 经典面试题(5)

    国外公司的Oracle DBA试题 Oracle DBA Interview Questions 1. How many memory layers are in the shared pool? 2 ...

  2. DBA 经典面试题(2)

    三.备份恢复类   ================================================================================   1:备份如何分 ...

  3. DBA 经典面试题(1)

    1:列举几种表连接方式 hash join.  merge join. nest loop join(cluster join). index join    2:不借助第三方工具,怎样查看sql的执 ...

  4. DBA 经典面试题(3)

    这里的回答并不是十分全面,这些问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽的答案,只需要通过你的解答使面试考官了解你对ORACLE概念的熟悉程度.   1.解释冷备份和热备份的不 ...

  5. DBA 经典面试题(4)

    1.如果信息采集管理系统(ICM)崩溃了怎么办?  答案:所有其他的管理器都会继续工作.ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器.    2.你如何加速打补丁的过程?    答案: ...

  6. Mysql实战面试题

    一.索引 B+ Tree 原理 1. 数据结构 B Tree 指的是 Balance Tree,也就是平衡树.平衡树是一颗查找树,并且所有叶子节点位于同一层. B+ Tree 是基于 B Tree 和 ...

  7. MySQL DBA修炼秘籍

    0.导读 本文主要写给那些立志成为MySQL DBA,以及正在学习MySQL的同行们,结合个人及业内其他同行的职业发展经历给大家一些参考,如何成为合格的MySQL DBA. 1.什么是MySQL DB ...

  8. 实战分析: MySQL字符集

    原创: 吴炳锡 MySQLBeginner 实战分析: MySQL字符集说明 在本文中讨论以下几个问题: 1. GBK和UTF8占用几个字节 2. ASCII码在不同字符集中占用几个字节 3. MyS ...

  9. Oracle DBA面试突击题

    一份ORACLE DBA面试题 一:SQL tuning 类 1:列举几种表连接方式 答: Oracle的多表连接算法有Nest Loop.Sort Merge和Hash Join三大类,每一类又可以 ...

  10. 3java面试题 传智 发的 有用

    第一章内容介绍 20 第二章JavaSE基础 21 一.Java面向对象 21 1. 面向对象都有哪些特性以及你对这些特性的理解 21 2. 访问权限修饰符public.private.protect ...

随机推荐

  1. 【C# 技术】C# 常用排序方式

     前言  在最近的项目中经常会对C#中的数据进行排序,对于基本数据类型,其排序方式比较简单,只需要调用内置算法即可实现,但对于自定义数据类型以及自定义排序规则的情况实现起来就比较麻烦,所以在本文章中将 ...

  2. 谈谈muduo库的销毁连接对象——C++程序内存管理和线程安全的极致体现

    前言 网络编程的连接断开一向比连接建立复杂的多,这一点在陈硕写的muduo库中体现的淋漓尽致,同时也充分体现了C++程序在对象生命周期管理上的复杂性,稍有不慎,满盘皆输. 为了纪念自己啃下muduo库 ...

  3. Visual Studio 2022 Preview设置简体中文

    前言: 作为尝鲜小分队队长,对于vs的升级版Visual Studio 2022 Preview肯定也开始用上了,不过之前一直以为还没有出中文的语言包所以一直用的是英文版的,搞得英文本来不好的我很是不 ...

  4. Rasa初始化聊天机器人的配置

      本文详细介绍了使用 rasa init 初始化聊天机器人项目的配置,包括 nlu.yml.rules.yml.stories.yml.test_stories.yml.config.yml.cre ...

  5. 如何快速准备高质量的AI数据?

    摘要:随着AI的快速发展,如何快速准备大量高质量的数据已经成为AI开发过程中一个极具挑战性的问题! 本文分享自华为云社区<如何快速准备高质量的AI数据?>,原文作者:徐波. 一.背景 通常 ...

  6. JPEG/Exif/TIFF格式解读(4):win10照片旋转win7不识别

    xif元数据根据不同的内容分布在五个不同的IFD中. IFD0中的数据是由TIFF定义的基本图像数据,其中有些与照片无关,所以Exif只实现其中一小部分.这部份数据在Photoshop中称为TIFF元 ...

  7. 火山引擎数智平台最新直播活动:ByteHouse技术架构与最佳实践分享

    数据的时效性,正深刻影响着企业的发展.   以大型半导体制造厂商为例,不同于常规工厂生产流水线,半导体制造通用的无人实验室生产模式高度依赖机械臂作业,且对整个生产调度链路中的精密度要求非常高,这背后主 ...

  8. Solon 运行出乱码怎么办?

    1.启动时添加 -Dfile.encoding=utf-8,示例: java -Dfile.encoding=utf-8 -jar DemoApp.jar 再出现乱码?一般是文件本身编码问题.检查一下 ...

  9. 聊聊损失函数1. 噪声鲁棒损失函数简析 & 代码实现

    今天来聊聊非常规的损失函数.在常用的分类交叉熵,以及回归均方误差之外,针对训练样本可能存在的数据长尾,标签噪声,数据不均衡等问题,我们来聊聊适用不同场景有针对性的损失函数.第一章我们介绍,当标注标签存 ...

  10. Spring 学习笔记(1)文章导读

    <Spring 学习笔记>系列文章是博主在学习过 Spring 后对其进行总结的入门系列博文,适合初入 Spring 的小白,如果你最近正在学习或者打算学习 Spring 的话,不妨随着本 ...