精选25道Mysql面试题,大厂面试必看汇总

1、存储过程和函数的区别

存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。

2、Mysql的技术特点是什么?

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

3、查看系统信息的SQL语句有哪些?

查看系统信息

   show status;
   show variables;
   show global variables;
   show global variables like '%version%';
   show variables like '%storage_engine%'; 默认的存储引擎
4、Mysql服务器默认端口是什么?

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

5、与Oracle相比,Mysql有什么优势?
  • Mysql是开源软件,随时可用,无需付费。
  • Mysql是便携式的
  • 带有命令提示符的GUI。
  • 使用Mysql查询浏览器支持管理
6.导入数据库的SQL语句是什么?
  • 导入方法一:

mysql -uroot -p123456 ceshi(数据库名)< ceshi.sql

  • 导入方法二:

    use ceshi;

source /root/ceshi.sql

#####7、导出数据库的SQL语句是什么?

mysqldump -u 用户名 -p 数据库名 **>** 导出的文件名

8、如何查看mysql的警告信息:

mysql> show warnings; 查看最近一个 sql 语句产生的错误警告

9、如何获取当前的Mysql版本?

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

10、如何在linux服务器中配置mysql的慢查询?
# vim /etc/my.cnf
[mysqld]
slow_query_log = 1  #开启慢查询日志
slow-query-log-file=/var/lib/mysql/slow.log  #这个路径对 mysql 用户具有可写权限
long_query_time=5  #查询超过 5 秒钟的语句记录下来
11、主键和候选键有什么区别?

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

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

12、如何使用Unix shell登录Mysql?

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

# [mysql dir]/bin/mysql -h hostname -u <UserName> -p <password>

13、MYSQL数据库服务器性能分析的方法命令有哪些?
14、LIKE声明中的%和_是什么意思?

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

15、常用的索引有哪些种类?
16、Mysql查询是否区分大小写?

不区分

SELECT VERSION(), CURRENT_DATE;SeLect version(), current_date;seleCt vErSiOn(), current_DATE;

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

17、LIKE和REGEXP操作有什么区别?

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

SELECT * FROM employee WHERE emp_name REGEXP “^b”;SELECT * FROM employee WHERE emp_name LIKE “%b”;

18、InnoDB是什么?

InnoDB,是MySQL的数据库引擎之一,它的特性是支持事务,并且采用多版本并发控制的方式来提高并发度,当一个事务全部完成,才会执行update.如果一段代码没有完成(及一个事务操作没有完成)它是不会update的,例如:银行转帐,一 笔业务没有完成的时候,突然的断电,或是,网络,系统的原因使你无法完成此交易的话,这个事务是要回滚的此交易之前的状态的,没有完成交易,你银行的 money是不会减少的!缺点是,innoDB的表执行起来速度较慢,但是安全!

19、Mysql如何优化DISTINCT?

DISTINCT在所有列上转换为GROUP BY,并与ORDER BY子句结合使用。

SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;

20、如何输入字符为十六进制数字?

如果想输入字符为十六进制数字,可以输入带有单引号的十六进制数字和前缀(X),或者只用(Ox)前缀输入十六进制数字。

如果表达式上下文是字符串,则十六进制数字串将自动转换为字符串。

21、如何显示前50行?

在Mysql中,使用以下代码查询显示前50行:

SELECT FROM LIMIT 0,50;

22、mysql varchar char 的区别以及 **varchar(50)**中的 50 代表的涵义?
  • varchar 与 char 的区别: char 是一种固定长度的类型,varchar 则是一种可变长度的类型.
  • varchar(50)中 50 的涵义 : 最多存放 50 个字节
  • int(20)中 20 的涵义: int(M)中的 M indicates the maximum display width (最大显示宽度)for integer types. The maximum legal display width is 255.
23、什么是通用SQL函数?
  • CONCAT(A, B) - 连接两个字符串值以创建单个字符串输出。通常用于将两个或多个字段合并为一个字段。
  • FORMAT(X, D)- 格式化数字X到D有效数字。
  • CURRDATE(), CURRTIME()- 返回当前日期或时间。
  • NOW() - 将当前日期和时间作为一个值返回。
  • MONTH(),DAY(),YEAR(),WEEK(),WEEKDAY() - 从日期值中提取给定数据。
  • HOUR(),MINUTE(),SECOND() - 从时间值中提取给定数据。
  • DATEDIFF(A,B) - 确定两个日期之间的差异,通常用于计算年龄
  • SUBTIMES(A,B) - 确定两次之间的差异。
  • FROMDAYS(INT) - 将整数天数转换为日期值。
24、1000w条数据,使用limit offset 分页时,为什么越往后翻越慢?如何解决?

先查主键,在分页。

select * from tb where id in(select id from tb where limit 10 offset 20)

25、Mysql中有哪几种锁?

MyISAM支持表锁,InnoDB支持表锁和行锁,默认为行锁

  • 表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低
  • 行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高
发布了126 篇原创文章 · 获赞 66 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/XingLongSKY/article/details/102713425
今日推荐