新闻资讯

MYSQL技术基础篇知识点

发布时间:2020-11-25 浏览次数:17

对于刚接触MYSQL技术的程序员,小编整理了一下基础知识,希望可以给到大家一些帮助。

1.distanct () 函数的使用需要注意


2.count() 在 MYISAM 引擎的前提下效率最高 在 Innodb 引擎下需要计算 不过不管什么引擎 推荐使用 count ()

count (‘字段名称’) 会过滤掉 null 但是 coutn () 不会的

count() 一般要和 group by 配合使用


3.group by 的使用

和分组函数一起查询的字段要求是 group by 后的字段 比如这里的 job_id 是按照它分组的 那么我们就可以让 job_id 和分组函数一起被查询出来;

select max(salary),job_id from employees group by job_id;

在 MYSQL 中使用 GROUP BY 对表中的数据进行分组时,

GROUP BY X 意思是将所有具有相同 X 字段值的记录放到一个分组里,

GROUP BY X, Y 意思是将所有具有相同 X 字段值和 Y 字段值的记录放到一个分组里。


4.having 的使用 是在 group by 的结果上继续查询

能用分组前筛选的 就优先考虑使用分组前筛选;性能会提高很多这样 也就是说尽量不要使用 having 分组后筛选 性能较差


5.sql92 标准 n 个表连接 那么至少需要 n-1 个条件 sql92 标准的等值连接其实类似 sql99 标准的 inner join


6.left join right join 互换一样


7. 子查询的执行优先于主查询 主查询的条件用到了子查询的结果


8. 行子查询也可以这么玩:

SELECT * FROM employees WHERE (employee_id,salary) = (

SELECT MIN(employee_id),MAX(salary) FROM employees

);


9.union 联合查询

多条查询语句的查询的列的类型几乎相同 也就是说 union 前边查询的字段是 id name union 后边查询的字段可以是 tid tname 但是尽量要保持 id tid 字段类型一致 name 和 tname 字段类型一致才有意义 但是前后字段的列数必须一致


10.insert 高级用法

insert into beauty (id,name,phone) select 26,’a’,’13222’; // 从一张表里面读取某条记录直接插入到另一张表当中去


11.truncate 删除不能回滚,delete 删除可以回滚

truncate 不能加 where 条件,而 delete 可以加 where 条件

truncate 的效率高一丢丢


12.decimal 用于计算 精度高

float 可用于存储 效率比 decimal 和 double 更高


13.char 类型固定长度 效率是最高

varchar 类型可变程度 效率低


14. 枚举类型 规定只能插入固定的字符串


15. 字段类型设置要点:所选择的类型越简单越好 能保存数值的类型越小越好


16. 主键约束 外键约束 唯一键约束会自动生成索引!


17. 查看表里面有哪些索引:

show INDEX from stuinfo;


18.show engines;// 查看数据库支持的引擎 也会显示当前数据库默认的引擎是哪一个;


19. 视图:

定义:一种虚拟存在的表 行和列的数据来自定义视图的查询中使用的表,并且是在使用视图是动态生成的 只保存 sql 逻辑 不保存查询结果;

应用场景:

多个地方用到同样的查询结果

该查询结果使用的 sql 语句较复杂

视图能提高 sql 查询的速度吗?

不会,视图就是建立虚拟表 (不会真实落盘,查询时实时构造), 无法缓存视图查询的数据,只是可以简化调用时候的代码!

数据库提供了视图(view)功能,能提高代码效率


视图的好处:

1、sql 语句提高重用性,效率高

2、和表实现了分离,提高了安全性


20. 存储过程:

存储过程一般地说,存储过程不如直接使用 sql 语句快。

用存储过程的主要目的,是简单的几句 SQL 无法解决时,使用一个程序块做为存储过程来解决


21. 存储过程和自定义函数的使用


22. 事务的隔离机制 以及 隔离级别


————————————————

原文作者:huxiaobai_001

转自链接:https://learnku.com/articles/42712

版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。


上一篇: 运维数据库的作用和特点有哪些?

下一篇: MySQL运维平台具有哪些发展优势

产品试用 产品试用
400-820-6580 免费电话