收集的MySQL的面试题分享给大家
1、怎样登陆mysql数据库
mysql -u username -p
2、怎样开启/关闭mysql服务
service mysql start/stop
3、查看mysql的状态
service mysql status
4、怎样显示数全部数据库
show databases
5、怎样获取表内全部字段对象的名称和类型
describe table_name;
6、MYSQL支持事务吗?
在缺省模式下,MYSQL是autocommit模式的。全部的数据库更新操作都会即时提交。所以在缺省情况下,mysql是不支持事务的。
可是假设你的MYSQL表类型是使用InnoDB Tables 或 BDB tables的话,你的MYSQL就能够使用事务处理,使用SET AUTOCOMMIT=0就能够使MYSQL同意在非autocommit模式,在非autocommit模式下,你必须使用COMMIT来提交你的更改。或者用ROLLBACK来回滚你的更改。
示比例如以下:
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summmary=@A WHERE type=1;
COMMIT;
7、MYSQL相比于其它数据库有哪些特点?
MySQL是一个小型关系型数据库管理系统,开发人员为瑞典MySQL AB公司。如今已经被Sun公司收购,支持FreeBSD、Linux、MAC、Windows等多种操作系统与其它的大型数据库比如Oracle、DB2、SQL Server等相比功能稍弱一些
1、能够处理拥有上千万条记录的大型数据
2、支持常见的SQL语句规范
3、可移植行高,安装简单小巧
4、良好的运行效率,有丰富信息的网络支持
5、调试、管理,优化简单(相对其它大型数据库)
8、varchar和char的差别
Char是一种固定长度的类型,varchar是一种可变长度的类型
9、数据库事物有哪几种?
隔离性、持续性、一致性、原子性
10、请简洁地描写叙述下MySQL中InnoDB支持的四种事务隔离级别名称。以及逐级之间的差别?
SQL标准定义的四个隔离级别为:
read uncommited:读取未提交内容
read committed:读取提交内容
repeatable read:可重读
serializable:可串行化
详解例如以下:
Read Uncommitted(读取未提交内容)
在该隔离级别,全部事务都能够看到其它未提交事务的运行结果。本隔离级别非常少用于实际应用,由于它的性能也不比其它级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。
Read Committed(读取提交内容)
这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务仅仅能看见已经提交事务所做的改变。这样的隔离级别也支持所谓的不可反复读(Nonrepeatable Read),由于同一事务的其它实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。
Repeatable Read(可重读)
这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到相同的数据行。只是理论上,这会导致还有一个棘手的问题:幻读(Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,还有一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时。会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本号并发控制(MVCC。Multiversion Concurrency Control 间隙锁)机制攻克了该问题。
注:事实上多版本号仅仅是解决不可反复读问题。而加上间隙锁(也就是它这里所谓的并发控制)才攻克了幻读问题。
Serializable(可串行化)
这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突。从而解决幻读问题。简言之。它是在每一个读的数据行上加上共享锁。在这个级别。可能导致大量的超时现象和锁竞争。
对于不同的事务,採用不同的隔离级别分别有不同的结果。不同的隔离级别有不同的现象。主要有以下3种如今:
1、脏读(dirty read):一个事务能够读取还有一个尚未提交事务的改动数据。
2、非反复读(nonrepeatable read):在同一个事务中,同一个查询在T1时间读取某一行。在T2时间又一次读取这一行时候,这一行的数据已经发生改动,可能被更新了(update)。也可能被删除了(delete)。
3、幻像读(phantom read):在同一事务中,同一查询多次进行时候,由于其它插入操作(insert)的事务提交,导致每次返回不同的结果集。
不同的隔离级别有不同的现象,并有不同的锁定/并发机制,隔离级别越高,数据库的并发性就越差,4种事务隔离级别分别表现的现象例如以下表:
11、mysql数据库引擎MyISAM和InnoDB的差别
12、mysql有关权限的表都有哪几个
MySQLserver通过权限表来控制用户对数据库的訪问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化。这些权限表分别user。db,table_priv,columns_priv和host。
以下分别介绍一下这些表的结构和内容:
user权限表:记录同意连接到server的用户帐号信息。里面的权限是全局级的。
db权限表:记录各个帐号在各个数据库上的操作权限。
table_priv权限表:记录数据表级的操作权限。
columns_priv权限表:记录数据列级的操作权限。
host权限表:配合db权限表对给定主机上数据库级操作权限作更仔细的控制。这个权限表不受GRANT和REVOKE语句的影响。
13、mysql存储引擎有哪些?怎样改动mysql存储引擎?
MyISAM indexed sequential access method (有索引的顺序訪问方法)
MyISAM 具有检查和修复表格的大多数工具。表格能够被压缩。并且支持全文收索
不是事务安全的,并且不支持外键。
MEMORY 也是曾经的(HEAP) 该类型表存储在内存中。表的索引是哈希分布的。
merge 这些表为了查询目的,把myisam 表集合作为单个表,因此你能够在某些操作系统中避开最大文件大小的限制。
archive 这样的类型的表仅仅支持,insert ,select 不支持delete,update,replace ,不使用索引。
csv 这些表保存在server的单个文件里。它包括了用逗号间隔的数据。
innodb 这样的表是事务安全的。提供了commit(提交) rollback(实务回滚)支持外键。比myisam慢。
改动mysql存储引擎alter table tablename type = innodb;
14、MYSQL 数据表修复及数据恢复面试题
- MYSQL数据表在什么情况下easy损坏?
server突然断电导致数据文件损坏。
强制关机。没有先关闭mysql 服务等。 - 数据表损坏后的主要现象是什么?
从表中选择数据之时。得到例如以下错误:Incorrect key file for table: ‘…’. Try to repair it
查询不能在表中找到行或返回不全然的数据。
Error: Table ‘p’ is marked as crashed and should be repaired 。
打开表失败: Can’t open file: ‘×××.MYI’ (errno: 145) 。 - 数据表损坏的修复方式有哪些?
使用 myisamchk 来修复,详细步骤:
1)修复前将mysql服务停止。
2)打开命令行方式,然后进入到mysql的/bin文件夹。
3)运行myisamchk –recover 数据库所在路径/*.MYI
使用repair table 或者 OPTIMIZE table命令来修复,REPAIR TABLEtable_name
修复表 OPTIMIZE TABLEtable_name
优化表 REPAIR TABLE 用于修复被破坏的表。
OPTIMIZE TABLE 用于回收闲置的数据库空间,当表上的数据行被删除时,所占领的磁盘空间并没有马上被回收,使用了OPTIMIZE TABLE命令后这些空间将被回收,并且对磁盘上的数据行进行重排(注意:是磁盘上,而非数据库)
15、MYSQL数据库server性能分析的方法命令有哪些?
Show status
一些值得监控的变量值:
Bytes_received和Bytes_sent
和server之间来往的流量。
Com_*server正在运行的命令。
Created_*在查询运行期限间创建的暂时表和文件。
Handler_*存储引擎操作。
Select_*不同类型的联接运行计划。
Sort_*几种排序信息。
Show session status like ‘Select’;
Show profiles
SET profiling=1;
Show profiles\G
Show profile;
16、 mysql里记录货币用什么字段类型好
NUMERIC和DECIMAL类型被MySQL实现为相同的类型,这在SQL92标准同意。他们被用于保存值,该值的准确精度是极其重要的值,比如与金钱有关的数据。
当声明一个类是这些类型之中的一个时,精度和规模的能被(并且一般是)指定;比如:
salary DECIMAL(9,2)
在这个样例中,9(precision)代表将被用于存储值的总的小数位数,而2(scale)代表将被用于存储小数点后的位数。因此。在这样的情况下。能被存储在salary列中的值的范围是从-9999999.99到9999999.99。在ANSI/ISO SQL92中,句法DECIMAL(p)等价于DECIMAL(p,0)。相同,句法DECIMAL等价于DECIMAL(p,0)。这里实现被同意决定值p。MySQL当前不支持DECIMAL/NUMERIC数据类型的这些变种形式的任一种。这一般说来不是一个严重的问题,由于这些类型的主要益处得自于明显地控制精度和规模的能力。
DECIMAL和NUMERIC值作为字符串存储。而不是作为二进制浮点数,以便保存那些值的小数精度。
一个字符用于值的每一位、小数点(假设scale>0)和“-”符号(对于负值)。假设scale是0。DECIMAL和NUMERIC值不包括小数点或小数部分。
DECIMAL和NUMERIC值得最大的范围与DOUBLE一样,可是对于一个给定的DECIMAL或NUMERIC列,实际的范围可由制由给定列的precision或scale限制。
当这样的列赋给了小数点后面的位超过指定scale所同意的位的值,该值依据scale四舍五入。当一个DECIMAL或NUMERIC列被赋给了其大小超过指定(或缺省的)precision和scale隐含的范围的值,MySQL存储表示那个范围的对应的端点值。
收集的MySQL的面试题分享给大家的更多相关文章
- (转)linux运维必会MySQL企业面试题
linux运维必会MySQL企业面试题 老男孩教育运维班全体学员MySQL必会企业面试题最实战.最细致.最落地的运维实训基地,老男孩教育连续多年国内平均就业工资最高! 数据库的重要性是所有技术里最核 ...
- 350道面试题分享,拿下京东offer工资double
350道面试题分享,拿下京东offer工资double 前言: 面试,其实是一个双向选择的过程,在这个过程里,我们不应该抱着畏惧的心态去对待,这样反而会影响自己的发挥.同时看中的应该不止薪资,还要看你 ...
- Linux运维必会的MySQL企业面试题大全
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- (转)Linux运维MySQL必会面试题100道
老男孩教育Linux运维班MySQL必会面试题100道 (1)基础笔试命令考察 (要求:每两个同学一组,一个口头考,一个上机实战作答,每5个题为一组,完成后换位) 1.开启MySQL服务 2.检测端口 ...
- 《史上最简单的MySQL教程》系列分享专栏
<史上最简单的MySQL教程>系列分享专栏 <史上最简单的MySQL教程>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read ...
- MySQL 基础理论面试题整理
前言: 之前整理公司面试题的时候,看了一篇大神些 SQL 优化之六脉神剑 文章,写的真好! 博主有一些 MySQL 的面试题,简单抽了一个备注一下,补充一下自己不熟悉的地方. 一.在MySQL中, ...
- 数据库MySQL经典面试题之SQL语句
数据库MySQL经典面试题之SQL语句 1.需要数据库表1.学生表Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学 ...
- Java岗位面试题分享:jvm+分布式+消息队列+协议(已拿offer)
个人近期面试情况 今年二月以来,我的面试除了一个用友的,基本其他都被毙了,可以说是非常残酷的.其中有很多自己觉得还面的不错的岗位,比如百度.跟谁学.好未来等公司.说实话,打击比较大. 情况基本上是从三 ...
- mysql面试题及答案,mysql最新面试题,mysql面试题大全汇总
mysql最新面试题及答案汇总 Mysql 的存储引擎,myisam和innodb的区别.mysql最新面试题 答: 1.MyISAM 是非事务的存储引擎,适合用于频繁查询的应用.表锁,不会出现死锁, ...
随机推荐
- mysql学习------错误日志和通用查询日志
一.启动错误日志 1.在不同情况下,错误日志会记录在不同的位置.如果没有在配置文件中指定文件名,则文件名默认为hostname.err 2.在mysql5.6的rpm发布方式中,错误的日志默认的放置在 ...
- 使用/dev/uinput的简要介绍(含demo程序)【转】
转自:https://blog.csdn.net/zhongkunjia/article/details/75142699 uinput机制有2个很大的优点: 1) 不用自己写驱动(比如弄个红外遥控器 ...
- Linux系统的快速启动机制(内核切换) 【转】
转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4187846 原文地址:Linux系统的 ...
- binlog2sql的安装及使用
binlog2sql是大众点评开源的一款用于解析binlog的工具,在测试环境试用了下,还不错. DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚.传统恢复方法 ...
- 004_on-my-zsh漂亮的shell
一. http://www.cnblogs.com/GarveyCalvin/p/4301235.html 二. 前言:Zsh可配置性强,用户可以自定义配置,个性化强.Zsh tab补全更强大,该功能 ...
- 通过 EXPLAIN 分析低效 SQL 的执行计划
每个列的简单解释如下: select_type:表示 SELECT 的类型,常见的取值有 SIMPLE(简单表,即不使用表连接 或者子查询).PRIMARY(主查询,即外层的查询).UNION(U ...
- jenkins执行构建任务报错之java.lang.NoSuchFieldError: DEFAULT_USER_SETTINGS_FILE
在执行创建工作空间时候,创建不成功,出现错误?? ......... java.lang.NoSuchFieldError: DEFAULT_USER_SETTINGS_FILE ......... ...
- springMVC:将controller中数据传递到jsp页面
1> 将方法的返回值该为ModelAndView在返回时,将数据存储在ModelAndView对象中如: newModelAndView("/WEBINF/jsp/showData.j ...
- Channel Allocation HDU1373
染色问题:相邻不能染同一种颜色 最少需要的颜色的数量=最大团点的数量 #include<bits/stdc++.h> using namespace std; #define N 27 i ...
- UVa140 Bandwidth 小剪枝+双射小技巧+枚举全排列+字符串的小处理
给出一个图,找出其中的最小带宽的排列.具体要求见传送门:UVa140 这题有些小技巧可以简化代码的编写. 本题的实现参考了刘汝佳老师的源码,的确给了我许多启发,感谢刘老师. 思路: 建立双射关系:从字 ...