MySQL常见面试题整理

一、基本语法

DQL:

     1、基本查询语法

select 字段名
from 表名1
[链接类型] join 表名2
on 连接条件
where 查询条件
group by 分组字段名
having 分组筛选条件
order by 排序字段名,排序条件
limit 1 / 1,2  分页查询

2、连接查询

   内链接(等值查询、非等值连接、自连接)

   外连接(左外连接、右外连接、全外连接)

   交叉连接

3、解释MySQL外连接、内连接与自连接的区别

 

二、事务

1、什么是事务、事务的特性都有哪些

2、事务的隔离级别都有哪些

三、索引

1、索引的底层原理和优化

2、主键、外键、索引的区别

3、索引的作用?和它的优点缺点是什么?

4、索引的目的是什么?
      快速访问数据表中的特定信息,提高检索速度

      创建唯一性索引,保证数据库表中每一行数据的唯一性。

      加速表和表之间的连接

      使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间

5、索引对数据库系统的负面影响是什么?
      负面影响:
       创建索引和维护索引需要耗费时间,这个时间随着数据量的增加而增加;索引需要占用物理空间,不光是表需要占用数据空间,每个索引也需要占用物理空间;当对表进行增、删、改、的时候索引也要动态维护,这样就降低了数据的维护速度。

6、为数据表建立索引的原则有哪些?
        在最频繁使用的、用以缩小查询范围的字段上建立索引。

        在频繁使用的、需要排序的字段上建立索引

7、什么情况下不宜建立索引?
         对于查询中很少涉及的列或者重复值比较多的列,不宜建立索引。

          对于一些特殊的数据类型,不宜建立索引,比如文本字段(text)等

8、简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)

四、优化数据库的方法

1、说说对SQL语句优化有哪些方法?(选择几条)

2、

五、存储引擎

1、存储引擎都有哪些,有什么区别

2、简述在MySQL数据库中MyISAM和InnoDB的区别

3、影响数据库查询速度的因素?

六、锁

1、什么是锁?,都有哪些锁,不同锁作用有哪些

2、锁的优化策略

七、其他

1、视图、函数

 

1、mysql中char、varchar和text类型的区别

在MySQL中,char、varchar和text类型的字段都可以用来存储字符类型的数据,char、varchar都可以指定最大的字符长度,但text不可以。

它们的存储方式和数据的检索方式也都不一样。
数据的检索效率是:char > varchar > text

  • 具体说明:
    • char:存储定长数据很方便,CHAR字段上的索引效率级高,必须在括号里定义长度,可以有默认值,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间(自动用空格填充),且在检索的时候后面的空格会隐藏掉,所以检索出来的数据需要记得用trim之类的函数去过滤空格。
    • varchar:存储变长数据,但存储效率没有char高,必须在括号里定义长度,可以有默认值。保存数据的时候,不进行空格自动填充,而且如果数据存在空格时,当值保存和检索时尾部的空格仍会保留。另外,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。
    • text:存储可变长度的非Unicode数据,最大长度为2^31-1个字符。text列不能有默认值,存储或检索过程中,不存在大小写转换,后面如果指定长度,不会报错误,但是这个长度是不起作用的,意思就是你插入数据的时候,超过你指定的长度还是可以正常插入。
    • 关于存储空间:
      在使用UTF8字符集的时候,MySQL手册上是这样描述的:
      • 基本拉丁字母、数字和标点符号使用一个字节;
      • 大多数的欧洲和中东手写字母适合两个字节序列:扩展的拉丁字母(包括发音符号、长音符号、重音符号、低音符号和其它音符)、西里尔字母、希腊语、亚美尼亚语、希伯来语、阿拉伯语、叙利亚语和其它语言;
      • 韩语、中文和日本象形文字使用三个字节序列。
    • 结论:
    • 经常变化的字段用varchar;
    • 知道固定长度的用char;
    • 超过255字节的只能用varchar或者text;
    • 能用varchar的地方不用text;
    • 能够用数字类型的字段尽量选择数字类型而不用字符串类型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接回逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了;
    • 同一张表出现多个大字段,能合并时尽量合并,不能合并时考虑分表

2、

  • 数据库
    • 事务的特性:原子性、一致性、隔离性、持久性。
    • 联合主键:设置多个字段同时为主键(PRIMARY KEY(Name, Age))
    • 复合主键:多个主键联合形成一个主键组合。(成绩表中的学号、课程标号)
    • mysql怎么优化
    • 数据库的备份是如何实现的
    • mysql创建一个学生表,包含id(int)和name(string),主键的创建:CREATE TABLE stu(id INT (5), name VARCHAR (100), PRIMARY KEY (id));
    • mysql建立索引 CREATE INDEX index_name ON table_name (column_list) CREATE INDEX idx_c4 ON t(c4);
    • 数据库查询10-20行内容:select * from stu limit 10, 10;
    • 创建数据库:CREATE DATABASE database_name;
    • 查找135开头的电话:select * from table where tel like '135%';
    • left join, right join和inner join的影响性能的因素。

       

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: MySQL基础面试题可以从以下几个方面进行回答。首先,可以介绍MySQL的特性和优势,例如事务的支持、高性能、可扩展性等。然后,可以谈谈MySQL的存储引擎,如InnoDB和MyISAM的区别,以及它们的适用场景。此外,可以讨论MySQL的事务特性,如原子性、一致性、隔离性和持久性是如何实现的。还可以提到MySQL的查询优化,如索引的使用、查询语句的优化等。最后,可以谈谈MySQL中的一些常见问题,如in和exists的区别、UUID和自增ID的区别等。以上是一些可能的面试题,具体的问题可能会根据面试官的要求而有所不同。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [MySQL常见面试问题整理(一):MySQL基础](https://blog.csdn.net/goodgoodstudy___/article/details/123779044)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MySQL 精选 60 道面试题(含答案)](https://blog.csdn.net/hahazz233/article/details/125372412)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值