MySQL学习计划

浏览: 1617

2019.1.15更新

没有按照既定计划执行,借口当然是一大堆,耐心得读完了这本书,受益匪浅,解决了我日报和周报中的很多问题,虽然离目标还有很大的距离,但是这本书让我看到了希望,科技改变世界,这一行行的代码竟真的可以节约我那么多的时间。

从这次学习中,也发现了自己学习和工作中的大问题,一个是执行力,一个是学习能力,还有一个就是总结输出的能力,这三方面以后我要尤其注意。

记得在哪里看过一句话,一件事情如果找不到放弃的理由,坚持下去完成往往比半途而废要好!

困难的路越走越简单!!!


时间:2018.12.10-2019.1.18(40天),计划时间2.5h*40=100h

内容:MySQL,能够使用MySQL完成工作中的日报、周报、月报

方法:听课或看书+实操

每日反馈

week1:MySQL基础教程-读完并且动手操作一遍

week2:网易云课堂课程完成+实操

week3:尝试完成日报中的工作

week4:总结梳理前三周遇到的问题,制定/调整巩固计划。



2018.12.13 更新

最近这三天没有完成既定的学习计划,可以有很多借口来解释,但是在今天翻书的时候我才意识到,是我并没有真正愿意为之付出努力的决心,说到底,还是懒惯了,太散漫,说了不做,一定要利用剩下3天的时间完成计划!



2018.12.16 更新

没有完成计划

目前读书只完成了4章,没有动手写代码,不过这次读SQL的书,让我收获很大,好像一下子读懂了它到底是用来做什么的了,之前读《SQL必知必会》和SQL的官方文档,读完了也没有感觉,不知道这次是因为做日报做熟了,还是这本书写的太好了。

前四章讲的都是些基础知识,思维导图在读完后会补上,先记下一些对我来说shining的点。

  • C1主要讲了数据库的原理和SQL的基础知识(创建、删除、更新表),在讲DBMS的种类时,它根据数据的保存格式的不同介绍了5种数据库类型:HDB(Hierarchical Database) 、RDB(Relational Database)、 OODB(Object Oriented Database) 、XMLDB、 KVS(Key-Value Store),MySQL是就是属于能够查询RDB的语言。

书中对RDBMS的系统结构的描述很到位,截个图放在这里。

image.png

SQL语句主要包括关键字、表名、列名等,根据RDBMS赋予的指令的种类不同,SQL语句可以分为三类:

DDL: Data Definition Language,主要包括创建(create)、删除(drop)、修改(alter)等指令,此类语句针对数据库和表均可用;

DML:Data Manipulation Language,主要包括查询(select)、插入(insert)、变更(update)、删除(delete)表中的数据等指令,此类语句针对数据库中的可用,这类语句也是最常用的;

DCL: Data Control Language,主要包括确认(commit)/取消(rollback)变更操作、赋予(grant)/取消(revoke)操作权限等指令,此类语句针对数据库可用。

SQL语句的规则

  1. 以;结尾;
  2. SQL不区分关键字的大小写,但是最好按照关键字大写、表名的首个关键字大写的规则来书写SQL语句;
  3. 单词之间需要使用半角空格或换行符来进行分割(全角:1个字符占用2个标准字符位置;半角,1个字符占用1个标准字符位置)。
  4. 创建数据库或表时,只能使用半角英文字母、数字、下划线作为名称,且必须以半角英文字母开头;
  5. 创建表时,所有的列必须指定数据类型,主要有存储数据类型的interger、存储定长字符串的char、存储可变长字符串的varchar、存储日期的date;
  6. 表中可以对列追加设置约束如主键(primary key)和不能为空(Not null).

表的删除(drop)和更新(alter:改变表的定义,如增加列)比较简单,不再赘述。

  • C2主要讲了select语句基础、算术运算符、比较运算符、逻辑运算符。

可以使用select语句直接查询常数,但是我还没有实际操作过。

可以使用distinct删除重复记录,但只能用在第一个列名之前

where语句、注释的使用方法、算术/比较/逻辑运算符之前比较熟悉,Null会在最后做个专题总结,在此不列。

  • C3讲的是聚合查询、表的分组、条件查询及查询结果的排序

聚合查询在我看来就是简单的计算,常用的聚合函数为count/sum/avg/max/min,也就是描述统计中常用的几个量;

表的分组其实就是通过group by语句进行分类,要注意的点就是只能在select子句之中,不能使用这个子句中聚合键之外的列名(这个还没有完全弄懂)和列的别名。

还有一点要注意的是where语句中不能使用聚合函数,就是不能出现where count(name)=2(这种情况只能使用select或者having)。

having子句要在group by子句之后,having这时候是一个条件,这个结果首先要符合having的条件才能去分组,我理解其应该是在group by子句之前执行,可是书上说的是在group by子句之后才执行,这个也需要再琢磨。

order by比较简单,它可以使用列编号(不推荐),也可以包含没有出现在select语句中的列和聚合函数。

  • C4主要讲的数据的更新,主要就是insert/delete/update语句的使用。

insert语句列和值要一一对应,原则上执行一次insert语句只会插入一行数据,实际操作中可以省略列清单,插入多行。在value中可以指定default关键字设置默认值。

delete语句只删除数据,但会保留表。

update语句可以更改表中的数据,可以通过where子句指定条件,可以使用null更新列,同时更新多列时,可以在update语句中的set子句中,使用逗号分隔多个列。

C4中还介绍了事务(transaction),我之前没有看懂过这部分,这次看起来倒是挺有意思,能够把一个命令集放在一起,想来对我的日报帮助很大。

尽管还没有读完,真正觉得这是一本对MySQL入门的好书,我是一个总被人说成干什么都没有悟性的人,读起来却丝毫没有难度,也感慨日本人做事的态度,一丝不苟真是浸润到了每一个细节。

计划利用明天的时间把剩下的读完。

推荐 5
本文由 Beryl003 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

3 个评论

期待分享
加油!
嗯嗯,谢谢~

要回复文章请先登录注册