mysql的常见面试问题

  1. 1、如何登陆mysql数据库
  2. MySQL -u username -p
  3. 2、如何开启/关闭mysql服务
  4. service mysql start/stop
  5. 3、查看mysql的状态
  6. service mysql status
  7. 4、如何显示数所有数据库
  8. show databases
  9. 5、如何获取表内所有字段对象的名称和类型
  10. describe table_name;
  11. 6、MYSQL支持事务吗?
  12. 在缺省模式下,MYSQL是autocommit模式的,所有的数据库更新操作都会即时提交,所以在缺省情况下,mysql是不支持事务的。
  13. 但是如果你的MYSQL表类型是使用InnoDB Tables 或 BDB tables的话,你的MYSQL就可以使用事务处理,使用SET AUTOCOMMIT=0就可以使MYSQL允许在非autocommit模式,在非autocommit模式下,你必须使用COMMIT来提交你的更改,或者用ROLLBACK来回滚你的更改。
  14. 示例如下:
  15. START TRANSACTION;
  16. SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
  17. UPDATE table2 SET [email protected] WHERE type=1;
  18. COMMIT;
  19. 7、MYSQL相比于其他数据库有哪些特点?
  20. MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,现在已经被Sun公司收购,支持FreeBSD、Linux、MAC、Windows等多种操作系统与其他的大型数据库例如Oracle、DB2、SQL Server等相比功能稍弱一些
  21. 1、可以处理拥有上千万条记录的大型数据
  22. 2、支持常见的SQL语句规范
  23. 3、可移植行高,安装简单小巧
  24. 4、良好的运行效率,有丰富信息的网络支持
  25. 5、调试、管理,优化简单(相对其他大型数据库)
  26. 8、varchar和char的区别
  27. Char是一种固定长度的类型,varchar是一种可变长度的类型
  28. 9、数据库事物有哪几种?
  29. 隔离性、持续性、一致性、原子性
  30. 10、请简洁地描述下MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?
  31. SQL标准定义的四个隔离级别为:
  32. read uncommited:读取未提交内容
  33. read committed:读取提交内容
  34. repeatable read:可重读
  35. serializable:可串行化
  36. 详细解释如下:
  37. Read Uncommitted(读取未提交内容)
  38. 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。
  39. Read Committed(读取提交内容)
  40. 这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。
  41. Repeatable Read(可重读)
  42. 这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读(Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control 间隙锁)机制解决了该问题。注:其实多版本只是解决不可重复读问题,而加上间隙锁(也就是它这里所谓的并发控制)才解决了幻读问题。
  43. Serializable(可串行化)
  44. 这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。
  45. 对于不同的事务,采用不同的隔离级别分别有不同的结果。不同的隔离级别有不同的现象。主要有下面3种现在:
  46. 1、脏读(dirty read):一个事务可以读取另一个尚未提交事务的修改数据。
  47. 2、非重复读(nonrepeatable read):在同一个事务中,同一个查询在T1时间读取某一行,在T2时间重新读取这一行时候,这一行的数据已经发生修改,可能被更新了(update),也可能被删除了(delete)。
  48. 3、幻像读(phantom read):在同一事务中,同一查询多次进行时候,由于其他插入操作(insert)的事务提交,导致每次返回不同的结果集。
  49. 不同的隔离级别有不同的现象,并有不同的锁定/并发机制,隔离级别越高,数据库的并发性就越差,4种事务隔离级别分别表现的现象如下表:
  50. 12、mysql有关权限的表都有哪几个
  51. MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化。这些权限表分别user,db,table_priv,columns_priv和host。下面分别介绍一下这些表的结构和内容:
  52. user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。
  53. db权限表:记录各个帐号在各个数据库上的操作权限。
  54. table_priv权限表:记录数据表级的操作权限。
  55. columns_priv权限表:记录数据列级的操作权限。
  56. host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。
  57. 13、mysql存储引擎有哪些?如何修改mysql存储引擎?
  58. MyISAM indexed sequential access method (有索引的顺序访问方法)
  59. MyISAM 具有检查和修复表格的大多数工具。表格可以被压缩,而且支持全文收索
  60. 不是事务安全的,而且不支持外键。
  61. MEMORY 也是以前的(HEAP) 该类型表存储在内存中,表的索引是哈希分布的。
  62. merge 这些表为了查询目的,把myisam 表集合作为单个表,因此你可以在某些操作系统中避开最大文件大小的限制。
  63. archive 这种类型的表只支持,insert ,select 不支持delete,update,replace ,不使用索引。
  64. csv 这些表保存在服务器的单个文件中,它包含了用逗号间隔的数据。
  65. innodb 这种表是事务安全的。提供了commit(提交) rollback(实务回滚)支持外键,比myisam慢。
  66. 修改mysql存储引擎alter table tablename type = innodb;
  67. 14、MYSQL 数据表修复及数据恢复面试题
  68. 1、MYSQL数据表在什么情况下容易损坏?
  69. 服务器突然断电导致数据文件损坏。
  70. 强制关机,没有先关闭mysql 服务等。
  71. 2、数据表损坏后的主要现象是什么?
  72. 从表中选择数据之时,得到如下错误:Incorrect key file for table: ‘…’. Try to repair it
  73. 查询不能在表中找到行或返回不完全的数据。
  74. Error: Table ‘p’ is marked as crashed and should be repaired 。
  75. 打开表失败: Can’t open file: ‘×××.MYI’ (errno: 145) 。
  76. 3、数据表损坏的修复方式有哪些?
  77. 使用 myisamchk 来修复,具体步骤:
  78. 1)修复前将mysql服务停止。
  79. 2)打开命令行方式,然后进入到mysql的/bin目录。
  80. 3)执行myisamchk –recover 数据库所在路径/*.MYI
  81. 使用repair table 或者 OPTIMIZE table命令来修复,REPAIR TABLE table_name 修复表 OPTIMIZE TABLE table_name 优化表 REPAIR TABLE 用于修复被破坏的表。
  82. OPTIMIZE TABLE 用于回收闲置的数据库空间,当表上的数据行被删除时,所占据的磁盘空间并没有立即被回收,使用了OPTIMIZE TABLE命令后这些空间将被回收,并且对磁盘上的数据行进行重排(注意:是磁盘上,而非数据库)
  83. 15、MYSQL数据库服务器性能分析的方法命令有哪些?
  84. Show status
  85. 一些值得监控的变量值:
  86. Bytes_received和Bytes_sent
  87. 和服务器之间来往的流量。
  88. Com_*服务器正在执行的命令。
  89. Created_*在查询执行期限间创建的临时表和文件。
  90. Handler_*存储引擎操作。
  91. Select_*不同类型的联接执行计划。
  92. Sort_*几种排序信息。
  93. Show session status like ‘Select’;
  94. Show profiles
  95. SET profiling=1;
  96. Show profiles\G
  97. Show profile;
  98. 16、 mysql里记录货币用什么字段类型好
  99. NUMERIC和DECIMAL类型被MySQL实现为同样的类型,这在SQL92标准允许。他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数据。当声明一个类是这些类型之一时,精度和规模的能被(并且通常是)指定;
  100. 例如:
  101. salary DECIMAL(9,2)
  102. 在这个例子中,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数据类型的这些变种形式的任一种。这一般说来不是一个严重的问题,因为这些类型的主要益处得自于明显地控制精度和规模的能力。
  103. DECIMAL和NUMERIC值作为字符串存储,而不是作为二进制浮点数,以便保存那些值的小数精度。一个字符用于值的每一位、小数点(如果scale>0)和“-”符号(对于负值)。如果scale是0,DECIMAL和NUMERIC值不包含小数点或小数部分。
  104. DECIMAL和NUMERIC值得最大的范围与DOUBLE一样,但是对于一个给定的DECIMAL或NUMERIC列,实际的范围可由制由给定列的precision或scale限制。当这样的列赋给了小数点后面的位超过指定scale所允许的位的值,该值根据scale四舍五入。当一个DECIMAL或NUMERIC列被赋给了其大小超过指定(或缺省的)precision和scale隐含的范围的值,MySQL存储表示那个范围的相应的端点值。
时间: 2024-10-05 04:58:05

mysql的常见面试问题的相关文章

Redis的那些最常见面试问题(转)

Redis的那些最常见面试问题         1.什么是redis? Redis 是一个基于内存的高性能key-value数据库. 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存.因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性 能最快的Key-Value DB. Redis的出色之处不仅仅是性能,Redi

180多个数据库版本一键切换,PHPWAMP8.8.8.8(支持切换任意数据库,全面支持mysql等常见数据库)

PHPWAMP8.8.8.8版本支持一键切换数据库的PHP集成环境,纯绿色 支持切换任意数据库,默认全面支持mysql等常见数据库) 最新最旧版本的数据库都可以切换,同时运行不同版本的数据库! 完美兼容任何集成环境,多开,群开无压力,满足各种变态测试! 只需点击相关设置,切换你想要的任意版本即可,真正的一键自定义! 在一键自定义同时,完美兼顾用户的自主修改,各种DIY自定义 1.支持一键自定义设置MYSQL版本,180多个MYSQL历史版本随意切换! 2.优化旧版本的"700多个PHP版本随意切

MySQL数据库常见管理应用(1)

MySQL数据库常见管理应用 1.创建数据库 创建一个数据库solin mysql> create database solin; 建立一个名为solin_gbk的GBK字符集 mysql> create database solin_gbk DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; 建立一个名为solin_utf8的UTF8字符集 mysql> create database solin_utf8 DEFAULT CHARACT

机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)

http://www.cnblogs.com/tornadomeet/p/3395593.html 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大.

MySQL同步常见问题解答(自己的小心得)

前几天刚刚注册了博客园,我想写一些技巧性的教程,今天给大家分享一个MySQL同步常见问题解答. Q:如果主服务器正在运行并且不想停止主服务器,怎样配置一个从服务器? A:有多种方法.如果你在某时间点做过主服务器备份并且记录了相应快照的二进制日志名和偏移量(通过SHOW MASTER STATUS命令的输出),采用下面的步骤: 1.确保从服务器分配了一个唯一的服务器ID号. 2.在从服务器上执行下面的语句,为每个选项填入适当的值:mysql> CHANGE MASTER TO -> MASTER

mysql 主从复制常见错误

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always

老男孩教育每日一题-2017年4月28日- MySQL主从复制常见故障及解决方法?

MySQL主从复制常见故障及解决方法? 1.1.1故障1:从库数据与主库冲突 show slave status; 报错:且show slave status\G Slave_I/O_Running:Yes Slave_SQL_Running:No Seconds_Behind_Master:NULL Last_error:Error 'Can't create database 'xiaoliu'; database exists' on query. Default   database:'

Android开发面试经——6.常见面试官提问Android题②(更新中...)

版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44560061 1.HttpURLConnection和HttpClient他们各自的优缺点是什么? HttpUrlConnection 在 2.3 以前的版本是有 bug 的,所以之前的版本推荐使用 HttpClient,但是 google 现在

(转)C/C++ 程序设计员应聘常见 面试笔试 试题深入剖析

C/C++ 程序设计员应聘常见 面试笔试 试题深入剖析 http://www.nowcoder.com/discuss/1826?type=2&order=0&pos=23&page=1 1.引言  本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵.文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见. 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答.企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到