【云驻共创】如何有效率地学习MySQL?

举报
再见孙悟空_ 发表于 2022/10/10 15:58:08 2022/10/10
【摘要】 前言 MySql介绍 官网地址1.1定义MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。同时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?

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。