【云驻共创】如何有效率地学习MySQL?
前言
MySql介绍 官网地址
1.1定义
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。同时MySQL是目前最受欢迎的开源数据库之一,其性能卓越,搭配LAMP(Linux + Apache + MySQL + Perl/PHP/Python),成为WEB开发的高效解决方案。
1.2特点
最主要两个特点:开源、体积小。
MySql学习路线
我以前总看的一个mysql网站:MySql教程,里面内容比较全,推荐给大家。
学习路线大致分为以下几个方面:
安装配置
安装:windows,linux
目录:bin、docs、data、include、lib、share、my.ini
图形化工具:Mysql workbench、phpMyAdmin、Navicat、SQLyog、MySQLDumper
SQL语句基础
2.1 数据定义语言(DDL)
数据定义语言 (Data Definition Language, DDL) 是SQL语言集中,负责数据结构定义与数据库对象定义的语言,常用的语句关键字有 CREATE(创建)、DROP(删除)、ALTER (修改)等
2.2 数据操纵语言(DML)
数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,常用的语句关键字有 INSERT(插入)、UPDATE(更新)、DELETE()删除 等。
2.3 数据查询语言(DQL)
数据查询语言(Data Query Language, DQL)是SQL语言中,负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。保留字SELECT是DQ(也是所有SQL)用得最多的动词,其他DQL常用的保留字有FROM,WHERE,GROUP BY,HAVING和ORDER BY。
2.4 数据控制语言(DCL)
数据控制语言 (Data Control Language) 在SQL语言中,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。由 GRANT 和 REVOKE 两个指令组成。DCL以控制用户的访问权限为主,GRANT为授权语句,对应的REVOKE是撤销授权语句。
基础的重要性就不过多阐述了,常见的一些对于库和表的操作官方文档里面都整理的比较全、比较细了。我就不贴上来凑字数了,大家自己看即可官方文档地址
高级特性
3.1 MySql分区
3.2视图
3.3 存储过程
3.4 游标
3.5 绑定变量
3.6 自定义函数
3.7 触发器
MySQL进阶
索引
4.2 锁
4.3 日志
4.4 备份恢复
4.5 导入导出
4.6 事务
4.7 sql优化
4.8 架构
4.9 InnoDB存储引擎
4.10基准测试
高级特性及MySQL进阶这部分还是很重要的,因为对于 SQL 语句优化、索引原理、MySQL 锁、事务、MySQL 安全、分库分表、读写分离、MySQL 操作规范等这些内容都是在做一些大型项目必须要考虑的内容,我刚开始做项目的时候,学的内容都比较浅,只会基本的建库建表和增删改查这些。当时前端同事反馈我写的接口返回都比较慢,自己也没搞清楚原因,经常出现调用完某个查询方法就引起数据库的高负载这种问题。后来和一些比较有经验的同事请教学习后才知道是自己写的SQL语句查询效率过低导致的,修改后得到了明显的改善。后来做项目时间久了,慢慢也就学会了一些技巧。只不过后来几年做移动端,很多东西又忘得差不多了...
MySql学习方法及技巧
3.1 夯实基础
计算机领域的技术非常强调基础,刚开始学习可能还认识不到这一点。随着技术应用的深入,只有有着扎实的基础功底,才能在技术的道路上走得更快、更远。对于MySQL的学习来说,SQL 语句是其中最为基础的部分,很多操作都是通过SQL语句来实现的。所以在学习的过程中,读者要多编写SQL语句,对于同一个功能,使用不同的实现语句来完成,从而深刻理解其不同之处。
3.2 反复练习
经验都是来源于实践,实践出真理!对于学习数据库知识,实践尤其重要!很多人看到大神在查询数据库可以非常熟练的写出SQL语句,但是你却没看到他在背后付出了多少努力,甚至每一个sql语句都不知道写了多少遍。我自己当初学数据库这部分知识的时候,真的是不停的在敲SQL,我们那时候写的很多小项目还没有全部都用框架,还自己写JDBC连数据库,项目中很多的接口查询数据库的数据都是用字符串拼接出来的sql语句,都是自己写sql语句,不是直接用的 数据库查询框架。所以当时那个时候的程序员很多SQL基础都挺扎实的,因为都写的太多了,并非是天赋有多强,只是熟能生巧罢了。所以从我个人经验来说,多练习还是非常有必要的。
3.3 多学习新技术
3.3.1看书
空余时间可以多看看相关的书,给大家推荐一些MySQL学习的相关书籍。
1.这两本书非常适合新手,对于没有mysql基础的同学建议可以看这两本书先学习基础。
《MySQL必知必会》——基础入门
《深入浅出MySQL-数据库开发、优化与管理维护》——数据库的基础、开发、优化、管理维护和架构
2.如果有了一定的MySQL基础后,建议看一些进阶类的书籍。
《高性能MySQL》——实战案例 性能提高方面
《MySQL排错指南》——MySQL故障诊断及处理
《数据库索引设计与优化》——数据库索引相关
《MySQL技术内幕:InnoDB存储引擎》——InnoDB的体系结构、实现原理、工作机制
《MySQL性能调优与架构设计》——性能调优、高可用可扩展的架构设计
3.3.2 逛技术论坛、刷博客、公众号
有空余的时间可以多去技术论坛看看有哪些新的技术,比如华为云社区博客,这有很多行业里非常优秀的博主。还可以关注一些行业大牛的博客和公众号之类的,这里不例举了,有做广告嫌疑,大家自行搜索即可。因为我们平时工作可能没有大把的时间去系统的学习,那么上下班路上看看公众号文章或者博客等都可以学到些东西,而且这些大牛的文章一般都会定期更新,可以让我们学习到比较前沿的新特性等。另外参考别人解决问题的思路,汲取别人的经验,这些都可以用在自己平时的工作中。
3.3.3 官方文档
看完一些入门或者提高的书籍,然后做了一些练习后,基本有些基础了,这时候可以尝试着读一下官方的文档。官方文档地址
3.3.4 可以尝试刷刷题或者做一些大厂的面试题
这样做的目的不仅是检验前面的学习效果,更是通过实践加强熟悉前面的知识,然后很快找到自己薄弱的地方,查漏补缺,然后重点去学习一下自己不熟悉的知识点。这些题在网上很容易找到,各种学习考试网站都有相关的资料,不详细阐述了。
华为云数据库服务-RDS for MySQL
最后给大家推荐一下华为云的云服务数据库服务-RDS for MySQL,相比传统数据库具有的优势:
云数据库 RDS for MySQL拥有即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点,让您更加专注业务发展。大家感兴趣的也可以了解一下:云数据库 RDS for MySQL
本文参与华为云社区【内容共创】活动第20期。https://bbs.huaweicloud.com/blogs/374925
任务31:如何有效率地学习 MySQL?
- 点赞
- 收藏
- 关注作者
评论(0)