MySQL面试题.docx:NOW()、CURRENT_DATE()、CHAR和VARCHAR区别、主键索引与唯一索引、MySQ...

需积分: 6 0 下载量 67 浏览量 更新于2023-11-24 收藏 24KB DOCX 举报
mysql面试题.docx是一个包含各种MySQL面试题的文件。其中包括了以下内容: 1. NOW()和 CURRENT_DATE()的区别:NOW()用于显示当前年份、月份、日期、小时、分钟和秒,而CURRENT_DATE()仅显示当前年份、月份和日期。 2. CHAR 和 VARCHAR 的区别:CHAR 和VARCHAR 类型在存储和检索方面有所不同,CHAR列长度固定为创建表时声明的长度,而VARCHAR的长度可变。当CHAR值被存储时,会用空格填充到特定长度,检索时需删除尾随空格。 3. 主键索引与唯一索引的区别:主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。唯一性索引列允许空值,而主键列不允许为空值。一个表最多只能创建一个主键,但可以创建多个唯一索引。主键更适合不容易更改的唯一标识,如自动递增列、身份证号等。主键可以被其他表引用为外键,而唯一索引不能。 4. MySQL 中的不同表格:共有5种类型的表格,包括MyISAM、Heap、Merge、INNODB和ISAM。 5. SQL 的生命周期:包括应用服务器与数据库服务器建立连接、数据库进程拿到请求SQL、解析并生成执行计划、读取数据到内存并进行逻辑处理、发送结果到客户端,最后关闭连接释放资源。 6. 如何查看为表格定义的所有索引:可以通过命令SHOW INDEX FROM <tablename>来查看为表定义的所有索引。 7. 数据库为什么使用B树而不是B树:B树同时支持随机检索和顺序检索,空间利用率更高,可减少I/O次数,磁盘读写代价更低,而索引本身也很大,不可能全部存储在内存。