前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >精选25道Mysql面试题,快来测测你的数据库水平吧

精选25道Mysql面试题,快来测测你的数据库水平吧

作者头像
吾非同
发布2020-10-23 15:59:03
1.8K0
发布2020-10-23 15:59:03
举报
文章被收录于专栏:吾非同吾非同

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

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

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

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

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

查看系统信息

代码语言:javascript
复制
   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的慢查询?
代码语言:javascript
复制
# 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支持表锁和行锁,默认为行锁

  • 表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低
  • 行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吾非同 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、存储过程和函数的区别
    • 2、Mysql的技术特点是什么?
      • 3、查看系统信息的SQL语句有哪些?
        • 4、Mysql服务器默认端口是什么?
          • 5、与Oracle相比,Mysql有什么优势?
            • 6.导入数据库的SQL语句是什么?
              • 8、如何查看mysql的警告信息:
                • 9、如何获取当前的Mysql版本?
                  • 10、如何在linux服务器中配置mysql的慢查询?
                    • 11、主键和候选键有什么区别?
                      • 12、如何使用Unix shell登录Mysql?
                        • 13、MYSQL数据库服务器性能分析的方法命令有哪些?
                          • 14、LIKE声明中的%和_是什么意思?
                            • 15、常用的索引有哪些种类?
                              • 16、Mysql查询是否区分大小写?
                                • 17、LIKE和REGEXP操作有什么区别?
                                  • 18、InnoDB是什么?
                                    • 19、Mysql如何优化DISTINCT?
                                      • 20、如何输入字符为十六进制数字?
                                        • 21、如何显示前50行?
                                          • 22、mysql 中 varchar 与 char 的区别以及 varchar(50)中的 50 代表的涵义?
                                            • 23、什么是通用SQL函数?
                                              • 24、1000w条数据,使用limit offset 分页时,为什么越往后翻越慢?如何解决?
                                                • 25、Mysql中有哪几种锁?
                                                相关产品与服务
                                                云数据库 SQL Server
                                                腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                                                领券
                                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档