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工具网。
推荐阅读: