给新手学习MySQL的建议

数据库 MySQL
经常有小伙伴问我:MySQL 应该怎么学?小白如何入门?我在想,我当时是如何学习 MySQL 的,是否可以给到初学者几点建议。

 本篇文章,笔者将以自己的经验及认知,谈谈我对新手学习 MySQL 的建议。

[[412767]]

搭建好环境,弄清基础概念。

学习 MySQL ,首先要有个自己的环境,可以在自己本机或某台虚拟机上安装下 MySQL ,建议最好使用 Linux 系统,体验下完整的安装步骤,尽量理解清楚每个步骤的作用。关于安装教程,可以参考 Windows 及 Linux 这两篇文章。

接下来,你要弄清一些基础概念了,比如什么是库、表、字段、索引啊等等。说到这里,就简单介绍下一些常见的基础概念吧:

  • 实例(instance):指的是操作系统上的一组进程/线程和内存的集合。比如我们在本机安装好 MySQL ,那就代表着我们本地有一套 MySQL 实例。
  • 数据库(database):指的是文件系统上的一组文件,等同于 schema 。
  • 表(table):表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 字段(column):字段是指数据表的列,表由字段组成。
  • 索引(index):索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 主键(primary key):主键是唯一的。一个数据表中只能包含一个主键。
  • 记录(record):指数据,一行可称为一条记录。
  • 服务端(server):指 MySQL 服务所在端,一般可理解为 MySQL 所在主机。
  • 客户端(client):连接数据库部分,比如 Navicat、jdbc 程序都可称为客户端。
  • 数据类型(Data Types):又称字段类型,即定义某个字段所能存储的类型,如 int 、varchar 等。
  • 字符集(character set):字符是各种文字和符号的总称,字符集是多个字符的集合。

学习基础操作,熟悉命令规范。

了解过基础概念后,建议你逐步学习一些基础操作,比如如何建库、建表、插入数据、修改数据、删除数据、查询数据等等。这部分主要练习的是 DDL 及 DML 语句。建议大家一定要按照命令规范来,比如插入数据时指定字段名,建表时指定字符集。

你可以使用 MySQL 命令行来执行 SQL ,也可以使用可视化客户端,关键是要明白你每步操作的意义及每条 SQL 的作用。关于基础命令操作,可以参考之前发的《入门 MySQL 》系列文章。

了解报错内容,善用搜索引擎。

在执行 SQL 或连接数据库过程中,难免会遇到各种报错,这个时候建议你先仔细看下是否存在书写及标点错误,关键还是要留意报错内容,根据报错内容大概率就能发现问题所在,比如 Access denied for user xxx 、able 'xxx' doesn't exist ... 有些看到报错内容很明显就可以发现问题,若实在找不到问题,可以复制报错内容到搜索引擎查找下,要相信不只你一个人遇到过这类错误。

根据你的岗位,有目的的进行学习。

在互联网行业,不同岗位的小伙伴可能都会用到 MySQL ,但不同岗位员工学习 MySQL 的侧重点却不尽相同。例如做数据分析的同学可能平时写查询 SQL 比较多,开发同学更侧重程序逻辑如何与数据库交互,DBA 同学可能侧重在数据库高性能高可用方面。所以建议你根据自己的需求,有侧重点的进行学习。

要系统、循序渐进的学习。

市面上关于 MySQL 的学习资料有很多,建议选取一个系统的资料进行学习,可以是一本书、一个网站等。切记不要这个资料看一点又转向另外一些资料。关于 MySQL 系统学习资料,可以参考这篇文章。

同其他语言学习方法一样,MySQL 学习也要循序渐进,不能说我一上来就学习事务、学习 SQL 优化,任何事情都要一步步来。当然最重要的还是坚持,我一直认为,有需求才能推动你去学习,假如你工作中经常用到 MySQL 或者某个项目要使用 MySQL ,那么你自然而然的就会慢慢了解 MySQL ,如果你平时基本没有使用 MySQL 的需求,我相信你也不会有很大的动力去学习了。

总结:

碎碎念了这么多,还是希望各位新手能够有信心,MySQL 数据库本身还是很容易上手的,它作为一款开源的数据库,具有小巧灵活的特点,不像 Oracle 一样对安装环境有着较高的要求且安装步骤复杂 。关键还是要坚持系统的去学习,要记住它只是一个工具,你学得越好就能用它越好。

 

责任编辑:华轩 来源: MySQL技术
相关推荐

2022-08-21 21:39:06

程序员建议

2011-07-07 10:24:22

移动应用开发

2017-11-29 18:52:13

Python新手编码建议

2018-05-09 00:04:50

程序员技能沟通

2017-01-10 10:14:47

新手学习编程

2010-03-18 13:45:58

Linux系统

2011-07-14 20:42:14

C++

2010-05-13 09:29:26

2011-12-26 20:05:54

智能手机

2022-01-06 16:12:49

设计师B端C端

2017-03-24 14:22:25

软件开发互联网计算机

2022-12-08 10:45:20

2022-12-08 11:50:16

2014-04-08 14:11:02

2010-05-11 19:11:13

MySQL外键

2011-08-02 08:59:02

程序员

2019-02-01 15:05:08

前端ReactAngular

2011-05-30 15:44:07

敏捷开发

2019-06-03 13:51:37

FFmpeg命令Linux

2013-08-20 13:55:19

测试代码审查
点赞
收藏

51CTO技术栈公众号