十个你必须会的mysql面试题

yumo6667个月前 (03-30)技术文章97

什么是SQL?

结构化的查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。

作用是用于存储数据、查询、更新和管理关系型数据库

SQL中的约束有哪几种?

1、非空约束 not null。用来控制字段中的值不能为空(null)

2、唯一约束 unique 。用来控制字段中的值唯一,不允许重复

3、主键约束 primary key。用来唯一的标识某个列,不允许为空,不允许重复

4、外键约束 foreign key。用来对应参照完整性,建立两个表之间的链接关系。

5、默认约束 default 。用来指定某个列的默认值。

drop、delete、truncate的区别


drop

delete

truncate

类型

DDL

DML

DDL

回滚

不可回滚

可回滚

不可回滚

删除

内容

删除表、删除库

删除表结构

删除表中的数据

保留表结构

删除表中所有数据

保留表结构

varchar(20)中的20代表什么意思?int(20)中的20代表什么意思?

varchar(20)表示最多可以存放20个字符

int(20)表示最大显示宽度为20,但是在内存中只占4个字节

索引的优点有哪些?缺点有哪些?

优点:

1、加快查询数据的查询速度

2、提高系统的性能

缺点:

1、在创建索引和维护索引时需要耗费大量的时间成本

2、索引会占用物理存储空间

事务的4大特性有哪些?

1、原子性。它是事务的最小执行单位,不可以再分割。用来保证一组动作要么都执行,要么都不执行。

2、一致性。一组事务执行的前后数据必须保持一致。

3、隔离性。多个用户同时访问数据库时,每个用户的事务不被其他用户的事务干扰。

4、持久性。当事务被提交以后,其对数据的修改是持久保存的,不被其他任何问题影响。

什么是死锁?如何处理死锁?

死锁是指两个或两个以上的进程在执行过程中,因为竞争共享资源而造成的互相等待的现象。

为了避免出现死锁现象,可以设置超时时间,即超时后自动释放掉。也可以发起死锁检测,将其中的一个事务进行回滚,让其他事务正常执行。

什么是3范式?

第一范式指的是数据库表中的任意属性都具有原子性,不可以进行分割

第二范式指的是对记录的唯一性约束,要求记录要有唯一标识

第三范式指的是对字段冗余性的约束,即要求字段没有冗余

视图的优点和缺点有哪些?

优点

1、数据简单化,所见即所得

2、保证安全性,用户只能查看或修改他们能够看到的数据

3、独立性,用来屏蔽真实表中结构变化带来的影响

缺点:

1、使用过程相对复杂,性能相对较差

2、修改不方便

char类型和varchar类型的区别有哪些?

1、char类型的长度一旦确定则不可以发生改变,varchar可以改变

2、char类型的数据如果字符长度比声明的长度小,那么会使用空格进行补位;

varchar类型的数据如果字符的长度比声明的长度小,那么会自动变成实际的字符长度

3、char类型数据方便存储和查询,操作速度比varchar要快,但是牺牲了空间。varchar正好相反,节省空间,但是效率没有char类型高

相关文章

总结面试:SQL常见面试题-1

刚刚走过了金三银四,相信许多小伙伴已经得到了自己心仪的offer,在这里先恭喜大家啦!但可能还有一些小伙伴刚刚开始找工作,作为一名数据分析师,还是想总结一些面试的经验及SQL的笔试面试题给各位小伙伴,...

初学者最热门和棘手的10个T-SQL问题

T-SQL有助于在物理或虚拟实例中创建和管理对象,以及插入、检索、修改和删除数据表。国际标准化组织(ISO)和美国国家标准协会(ANSI)发布的SQL标准定义了一种软件语言,Transact-SQL就...

大厂面试SQL题(三) ——连续登陆(含间隔)(字节)

承继上篇文章 大厂面试SQL题(一) ——连续登陆,阐述了最为简易的连续登录题目。然而,倘若在面试题目中增添难度,将 隔天统计问题 纳入考量,该作何处理呢?沿用第一篇题目的场景实例:(1)存在一张用户...

MYSQL经典面试题汇总

1.非聚簇索引一定会回表查询吗?不一定,这涉及到查询语句所要求的字段是否全部命中了索引,如果全部命中了索引,那么就不必再进行回表查询。举个简单的例子:假设我们在员工表的年龄上建立了索引,那么当进行的查...

「春招系列」MySQL面试核心25问(附答案)

篇幅所限本文只写了MySQL25题,像其他的Redis,SSM框架,算法,计网等技术栈的面试题后面会持续更新,个人整理的1000余道面试八股文会放在文末给大家白嫖,最近有面试需要刷题的同学可以直接翻到...

SQL优化这十条,面试的时候你都答对了吗?

尽量不要在要给在SQL语句的where子句中使用函数,这样会使索引失效。如果已经确定查询结果只有一条数据(当表中数据的该字段是唯一的),在查询SQL末尾增加 limit 1,这样MySQL的查询执行引...