mysql常见面试基础知

数据库 投稿 71700 0 评论

mysql常见面试基础知

什么是内连接,左外连接,右外连接?

内连接(inner join):匹配两张表中相关联的记录
左外连接(left outer join):除了匹配两张表相关联的记录外,还会匹配左表中剩余的记录,右表中未匹配到的字段用null表示
右外连接(right outer join):除了匹配两张表相关联的记录外,还会匹配右表中剩余的记录,左表中未匹配到的字段用null表示。在判定左表和右表时,要根据表名出现在outer join 的左右位置关系

char和varchar的区别?

1.char和varchar类型在存储和检索方面有所不同
2.char列长度固定为创建表时声明的长度,长度值范围是1到255 当char值被存储时,他们被用空格填充到特定长度,检索char值时需删除尾随空格

存储过程(特定功能的sql语句集)

一组为了完成特定功能的sql语句集,存储在数据库中,经过第一次编译后再次调用不需要再编译,用户通过指定存储过程名字并给出参数(如果存储过程带有参数)来执行它,存储过程是数据库中的一个重要的对象

存储过程优化思路

1.尽量利用一些sql语句来替代一些小循环,例如聚合函数,求平均函数等
2.中间结果存放于临时表,加索引
3.少使用游标
4.事务越短越好
5.使用try-catch处理错误异常
6.查找语句尽量不用放在循环中

触发器

触发器是一段能自动执行的程序,是一个特殊的存储过程

MySQL中innodb 支持的四种事务隔离级别的名称,以及逐级之间的区别

sql标准定义的四个隔离级别为:
1.read uncommited:读到未提交的数据
2.read commited:脏读,不可重复
3.repeatable read:可重读
4.serializable:串行事务

主键和候选键有什么区别

表格的每一行都由主键做唯一标识,一个表只有一个主键,主键也是候选键,按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用

如果一个表有一列定义为timestamp 将发生什么?

每当行被更改时,时间戳字段将获取当前时间戳

你怎么看到为表格定义的所有索引

索引是通过以下方式为表格定义的:
show index from 《tablename》

like声明中的%和_是什么意思

%对应0个或更多字符 _只是like语句中的一个字符

列对比运算符是什么

在select 语句的列比较中使用=,<>,<=,<,>=,>,<<,>>,<=>,and or 或like运算符

blob和text有什么区别

blob是一个二进制对象,可以容纳可变数量的数据,text是一个不区分大小写的blob
blob和text类型之间的唯一区别在对于blob值进行排序和比较市区大小写,对text值不区分大小写

编程笔记 » mysql常见面试基础知

赞同 (92) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽