mysql数据库面试题有哪些?mysql数据库面试试题及答案

MySQL 是最流行的关系型数据库管理系统,作为java人员这方面的知识一定要会,尤其是准备去面试java岗位的人员,mysql数据库的知识点必考,那么今天我们就给大家分享一些mysql数据库面试题,让大家快速掌握 MySQL 的基本知识。

1.数据库中的事务是什么?

事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。ACID 四大特性,原子性、隔离性、一致性、持久性。

2.SQL注入漏洞产生的原因?如何防止?

SQL注入产生的原因:程序开发过程中不注意规范书写sql语句和对特殊字符进行过滤,导致客户端可以通过全局变量POST和GET提交一些sql语句正常执行。

防止SQL注入的方式:

开启配置文件中的magic_quotes_gpc 和 magic_quotes_runtime设置。

执行sql语句时使用addslashes进行sql语句转换。

Sql语句书写尽量不要省略双引号和单引号。

过滤掉sql语句中的一些关键词:update、insert、delete、select、 * 。

提高数据库表和字段的命名技巧,对一些重要的字段根据程序的特点命名,取不易被猜到的。

Php配置文件中设置register_globals为off,关闭全局变量注册。

控制错误信息,不要在浏览器上输出错误信息,将错误信息写到日志文件中。

3. 简述在MySQL数据库中MyISAM和InnoDB的区别是什么?

区别于其他数据库的最重要的特点就是其插件式的表存储引擎。切记:存储引擎是基于表的,而不是数据库。

InnoDB与MyISAM的区别:

InnoDB存储引擎: 主要面向OLTP(Online Transaction Processing,在线事务处理)方面的应用,是第一个完整支持ACID事务的存储引擎(BDB第一个支持事务的存储引擎,已经停止开发)。

特点:

行锁设计、支持外键,支持事务,支持并发,锁粒度是支持mvcc得行级锁;

MyISAM存储引擎: 是MySQL官方提供的存储引擎,主要面向OLAP(Online Analytical Processing,在线分析处理)方面的应用。

特点:

不支持事务,锁粒度是支持并发插入得表级锁,支持表所和全文索引。操作速度快,不能读写操作太频繁;

4.SQL语言包括哪几部分?每部分都有哪些操作关键字?

答:SQL语言包括数据定义(DDL)、数据操纵(DML),数据控制(DCL)和数据查询(DQL)四个部分。

数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等;

数据操纵:Select ,insert,update,delete;

数据控制:grant,revoke;

数据查询:select;

4. 简述数据库三范式有哪些?

第一范式:字段是最小的的单元不可再分;

第二范式:满足第一范式,表中的字段必须完全依赖于全部主键而非部分主键;

第三范式:满足第二范式,非主键外的所有字段必须互不依赖。

mysql数据库面试题就分享到这里,这些都是在面试中经常问到的题目,大家也要刻苦勤奋,将这方面的知识掌握!最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。

推荐阅读:

比较好的java开发课程有哪些?如何学好java课程?

拼接json字符串的方法是什么?json常用类型是什么?

java中继承的好处是什么?java中继承要注意什么?