开发者社区> 牧小农> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

关于Mysql面试需要掌握的知识点(1)

简介: 关于Mysql面试需要掌握的知识点
+关注继续查看

一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?

如果表的类型是 MyISAM,那么是 18 ,因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失 。


如果表的类型是 InnoDB,那么是 15 ,InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是对表进行OPTIMIZE 操作,都会导致最大 ID 丢失。


Mysql 的技术特点是什么?


Mysql 数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程 SQL 服务器、不同的后端、广泛的应用程序编程接口和管理工具。


Heap 表是什么?


HEAP 表存在于内存中,用于临时高速存储。

BLOB 或 TEXT 字段是不允许的

只能使用比较运算符=,<,>,=>,= <

HEAP 表不支持 AUTO_INCREMENT 索引不可为 NULL

Mysql 服务器默认端口是什么?


Mysql 服务器的默认端口是 3306。

与 Oracle 相比,Mysql 有什么优势?


Mysql 是开源软件,随时可用,无需付费。

Mysql 是便携式的带有命令提示符的 GUI。

使用 Mysql 查询浏览器支持管理

如何区分 FLOAT 和 DOUBLE?


以下是 FLOAT 和 DOUBLE 的区别:


浮点数以 8 位精度存储在 FLOAT 中,并且有四个字节。浮点数存储在 DOUBLE 中,精度为 18 位,有八个字节。

区分 CHAR_LENGTH 和 LENGTH?


CHAR_LENGTH是字符数,而LENGTH是字节数。Latin 字符的这两个数据是相同的,但是对于 Unicode 和其他编码,它们是不同的。


请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别? SQL 标准定义的四个隔离级别为:


read uncommited:读到未提交数据

read committed:脏读,不可重复读

repeatable read:可重读

serializable:串行事物


在 Mysql 中 ENUM 的用法是什么?


ENUM 是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用。

Create table size(name ENUM('Smail,'Medium','Large');


如何定义 REGEXP?


REGEXP 是模式匹配,其中匹配模式在搜索值的任何位置。


CHAR 和 VARCHAR 的区别?


以下是 CHAR 和 VARCHAR 的区别:


CHAR 和 VARCHAR 类型在存储和检索方面有所不同

CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255

当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格。

列的字符串类型可以是什么?


字符串类型是:

SET、BLOB、ENUM、CHAR、TEXT、VARCHAR


如何获取当前的 Mysql 版本?


SELECT VERSION();用于获取当前 Mysql 的版本。

Mysql 中使用什么存储引擎?存储引擎称为表类型,数据使用各种技术存储在文件中。


技术涉及:


Storage mechanism

Locking levels

Indexing

Capabilities and functions.

Mysql 驱动程序是什么?


以下是 Mysql 中可用的驱动程序:


PHP 驱动程序

JDBC 驱动程序

ODBC 驱动程序

CWRAPPER

PYTHON 驱动程序

PERL 驱动程序

RUBY 驱动程序

CAP11PHP 驱动程序

Ado.net5.mxj

TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?


创建表时 TIMESTAMP 列用 Zero 更新。只要表中的其他字段发生更改,

UPDATE CURRENT_TIMESTAMP修饰符就将时间戳字段更新为当前时间。


主键和候选键有什么区别?


表格的每一行都由主键唯一标识,一个表只有一个主键。


主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。


如何使用 Unix shell 登录 Mysql?


我们可以通过以下命令登录:


[mysql dir]/bin/mysql -h hostname -u

myisamchk 是用来做什么的?


它用来压缩 MyISAM 表,这减少了磁盘或内存使用。


如何控制 HEAP 表的最大尺寸?


Heal 表的大小可通过称为 max_heap_table_size的 Mysql 配置变量来控制。


MyISAM Static 和 MyISAM Dynamic 有什么区别?


在 MyISAM Static 上的所有字段有固定宽度。动态 MyISAM 表将具有像 TEXT,BLOB 等字段,以适应不同长度的数据类型。点击这里有一套最全阿里面试题总结。


MyISAM Static在受损情况下更容易恢复。


federated 表是什么?


federated 表,允许访问位于其他服务器数据库上的表。


如果一个表有一列定义为 TIMESTAMP,将发生什么?


每当行被更改时,时间戳字段将获取当前时间戳。


列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况?


它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。


怎样才能找出最后一次插入时分配了哪个自动增量?


LAST_INSERT_ID将返回由 Auto_increment 分配的最后一个值,并且不需要指定表名称。


你怎么看到为表格定义的所有索引?


索引是通过以下方式为表格定义的:

SHOW INDEX FROM


LIKE 声明中的%和_是什么意思?


%对应于 0 个或更多字符,_只是 LIKE 语句中的一个字符。


如何在 Unix 和 Mysql 时间戳之间进行转换?


UNIX_TIMESTAMP是从 Mysql 时间戳转换为 Unix 时间戳的命令

FROM_UNIXTIME是从 Unix 时间戳转换为 Mysql 时间戳的命令


列对比运算符是什么?


在 SELECT 语句的列比较中使用=,<>,<=,<,> =,>,<<,>>,<=>,AND,OR 或 LIKE 运算符。

我们如何得到受查询影响的行数?


行数可以通过以下代码获得:

SELECT COUNT(user_id)FROM users;


Mysql 查询是否区分大小写?


不区分


SELECT VERSION(), CURRENT_DATE;

SeLect version(), current_date;

seleCt vErSiOn(), current_DATE;


所有这些例子都是一样的,Mysql 不区分大小写。


LIKE 和 REGEXP 操作有什么区别?


LIKE 和 REGEXP 运算符用于表示^和%。

SELECT * FROM employee WHERE emp_name REGEXP "^b";

SELECT * FROM employee WHERE emp_name LIKE "%b";



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
面试突击54:MySQL 常用引擎有哪些?
面试突击54:MySQL 常用引擎有哪些?
23 0
《为研发同学定制的MySQL面试指南》-- 连载中
《为研发同学定制的MySQL面试指南》-- 连载中
27 0
MySQL 高频面试题目(1)
MySQL 高频面试题目(1)
22 0
MySql Note 1
1、显示表结构:desc tableName; 2、MySql远程连接命令:mysql -h 192.168.0.201 -P 3306 -u root -p123 (192.168.0.201是远程数据库服务器地址,-u 后面是用户名(注意两者之间有空格),123是密码(和-p之间没有空格))。
543 0
+关注
牧小农
业精于勤荒于嬉,行成于思毁于随。
134
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载