IT全栈圈数据之美数据库

思维导图学习—SQL篇

2019-05-19  本文已影响11人  渝聆墨

导言
学霸与学渣的区别在哪里,我见过最常见的说法就是说学霸有学习方法,而学渣就盲目地去学。作为一个学渣,我其实也有一套学习方法:

揣着问题去学习,让学习过程成为去寻找答案的过程。

所以接下来我在开始这篇文章之前给大家一个问题,就是:

学程序最开始第一步应该学习什么?

程序之道为之三千大道矣,但凡修者皆至简,万法之本筑基为根本。
修道者,程序修道者以语法练体,算法为之练气,实为道之根本。
其中程序大道又分为前端,后端,移动嵌入式三种流派组成。
万法遵循本根,根者数据也,数据库之法实为万法之源,正所谓万丈高楼平地起,数据库之法,实在为重中之重。
数据库之法,基础篇分为新增,删除,更新,查询,但凡修程序道友皆有所知之。
然却多者只精于皮表,其中之理多为道不明言不清。
今者谓之寒季,不通不精不明其理者,呼之悲叹无路。当下时,恰为筑基之时,免受寒冬之劫,切不可心浮意躁。

以上都是废话。

正文

大家都知道软件程序的核心是数据,管理数据驱动的就是数据库,曾经不知道在哪里听说这么一句话,就是说学习SQL是最划算的,因为SQL语句一次学习终生受用。我们常见的数据库: 常用数据库.png

接下来我就谈谈怎么去学习数据库,数据库学习的本质就是对数据进行增删改查,增删改查属于数据存储模块,另外一块的学习就是数据统计。
首先我们先来了解数据库表的结构:


结构.png

常用初级语法

上面我们知道关于数据的操作分为存储与统计两大类,储存的手段也是我们对数据库最常见的操作,接下来我们先看看存储大概有哪些手段吧。

基础动作
基础动作.png

我一直都觉得学习程序第一步就是学习单词,谁说做IT会不会英语可以,我绝对跟他急。在数据的操作中除了了解了他的基本操作,同时还有协同操作的相关子句,所以接下我们学几个单词:


常用子句.png

所有有编程基础的同学都知道,程序的本质就是逻辑与运算,所以数据库里面也有大家熟知的朋友——运算符。


数据常见运算符.png
数据库中沿用了大家在程序中常用的操作运算符,所以学习起来也更加得心应手。

数据库设计

前面说完了那么多的基础知识,学会了那么多的单词,SQL也是一种编程,编程最主要的还得是思想,在数据中最考究的就是数据库的设计问题,为此关于数据库还有一个专门的职业——数据库架构师,下面是boss直聘上关于数据库架构师的招聘:


数据库架构师.PNG

接下来我就从个人理解上,谈谈怎么去设计数据库。
设计数据库就需要系统思维,将生活中的某一项或多项业务用数据分解出来,并且尽可能将它所有可能有关系元素关联起来,这个怎么讲呢,就是多提问题,这里就需要5W1H问题思维方式,再来剔除其他不必要元素。


六合分析法.png

接下来我们就拿最常见的商品为例:


商品六合分析.png
通过这种方式我们就可以对商品进一步分析,再把商品进一步与其他事物进行关联,从而就产生了电子商城数据库

注意事项

1.mysql,mariaDB中的uft8非真正的utf8,应该选择utf8mb4,因为mysql uft-8每个字符只支持最多3个字符,而真正的utf8却支持最多4个字符,所以得选择uft8mb4.
2.查询数据时,如果使用全表扫描会严重影响查询性能与速度,尽可能避免全表查询从而导致查询性能下降,合理使用索引可以很大优化查询,如在 where 及 order by 涉及的列上建立索引。当需要对查询数据做为NULL判断时,请优先使用NOT NULL,如果使用IS NULL会导致引擎放弃使用索引而进行全表扫描。
其他优化注意事项

结语

虽然现在各种简化SQL的操作层出不穷,但是我们也不能放弃SQL的学习。框架一直在变,不变的只有原理与底层,只要我们掌握底层技术,不管未来还有多少互联网寒冬我们都将不会畏惧。
光说不练都是扯淡,最后我给新手推荐的一个数据库练习地址:SQLBOLT

上一篇下一篇

猜你喜欢

热点阅读