mysql面试知识点总结_Mysql面试知识点总结(进阶篇)

上一篇主要介绍一些基础的 mysql 知识点,这一篇我们介绍一下mysql比较重要但在开发中我们 程序员 很少知道的几个大点(自以为是的观点)。

数据库设计三范式:

第一范式:数据库表的每一列都是不可分割的原子数据项,即列不可拆分。

第二范式:建立在第一范式的基础上,要求 数据库 表中的每个实例或记录必须是可以唯一被区分的,即唯一标识。

第三范式:建立在第二范式的基础上,任何非主属性不依赖与其他非主属性,即引用主键。

视图

视图是虚拟表,并不储存数据,只包含定义时的语句的动态数据。

create view view_name as sql查询语句

存储过程

一条或多条sql语句集合,其优点为(浓缩:简单/安全/高性能):

1、存储过程能实现较快的执行速度

2、存储过程允许标准组件是编程。

3、存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。

4、存储过程可被作为一种安全机制来充分利用。

5、存储过程能够减少网络流量

delimiter 分隔符

create procedure|proc proc_name()

begin

sql语句

end 分隔符

delimiter ; --还原分隔符,为了不影响后面的语句的使用

默认的分隔符是;但是为了能在整个存储过程中重用,因此一般需要自定义分隔符(除\外)

存储过程和函数的区别?

相同点:存储过程和函数都是为了可重复的执行操作数据库的 sql 语句的集合。

1)存储过程和函数都是一次编译,就会被缓存起来,下次使用就直接命中已经编译好的 sql 语句,不需要重复使用。减少网络交互,减少网络访问流量。

不同点:标识符不同,函数的标识符是 function,存储过程是 proceduce。

1)函数中有返回值,且必须有返回值,而过程没有返回值,但是可以通过设置参数类型(in,out)来实现多个参数或者返回值。

2)存储函数使用 select 调用,存储过程需要使用 call 调用。

3)select 语句可以在存储过程中调用,但是除了 select..into 之外的 select 语句都不能在函数中使用。

4)通过 in out 参数,过程相关函数更加灵活,可以返回多个结果。

触发器

在对表数据进行变动的时候进行具体的操作,有六种,分别为增删改的前后操作。

create trigger trigger_name

ALTER|BEFORE select|update|delete

on 表

for each row

trigger_stmt

日志

Mysql主要有四种日志文件:

错误日志:记录启动,运行或者停止 mysql 时出现的问题;

查询日志:记录所有msyql的活动

二进制日志:记录更新过数据的所有语句

缓慢查询日志:记录查询缓慢的任何查询

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值