根据《MySQL必知必会》差缺补漏知识点(时隔3个月,我又回来啦)

目录

前言:

第一章 了解SQL

第二章 MySQL简介

第三章 使用MySQL

第四章 检索数据

第五章 排序检索数据

第六章 过滤数据

第七章 数据过滤

第八章 用通配符进行过滤

第九章 用正则表达式进行搜索

第十章 创建计算字段

第十一章 使用数据处理函数

第十二章 汇总数据

第十三章 分组数据

第十四章 使用子查询,第十五章 联结表,第十六章 创建高级联结,第十七章 组合查询

第十八章 全文本搜索

第十九章 插入数据

第二十章 更新和删除数据

第二十一章 创建和操纵表

第二十二章 使用视图

第二十三章 使用存储过程,第二十四章 使用游标,第二十五章 使用触发器

第二十六章 控制事务处理

第二十七章 全球化和本地化

第二十八 安全管理,第二十九章 数据库维护,第三十章 改善性能

总结:


前言:

     上一篇博客还是在10月份的时候发的,现在让我们再次开启技术之海吧。首先简单的谈谈我对这本书的看法,它真的很适合快速开发入手(特别是当你仅仅只是想开发一个小demo的时候),基本上你简单的看完关于数据库的创建删除以及表的增删改查操作之后,你就可以结合自己学到的JDBC来进行开发。因为现在的一些demo都是很简单的,也很少会用到子查询这些较复杂的地方,所以很快就可以入门,而且它的知识点还是很全的。

     不过我们从学校方面来看,正常入门都是先学习SQL,然后才是去写各种语句,如果要进一步去学习理论,那么SQL是必须的。

     好啦,现在我们从书里面去找到我们遗漏掉的知识点吧,和我一起看看,看看你是否也遗漏了呢?

根据《MySQL必知必会》差缺补漏知识点(时隔3个月,我又回来啦)_第1张图片

 

第一章 了解SQL

     1、数据库和数据库管理系统的区别(DBMS):虽然没有那么重要,但是还是要注意一下,我们经常使用的其实是DBMS,而不是数据库。


第二章 MySQL简介

     1、MySQL是一种DBMS,即它是一种数据库软件。(这里我自己对于为什么会有MySQL、Oracle、SQLserver的理解是:SQL是标准委员会定制用来操作DBMS的,但是对于不同的数据库软件它们的语法略有不同,所以才会有专门针对MySQL的SQL,专门针对SQLserver的SQL,如果你都用过,你就会发现其实区别不是很大,但是也一定要注意使用呀!)。

     2、DBMS可分为两类:一类为基于共享文件系统的DBMS(例如Microsoft Access),还有一类就是基于客户机-服务器的DBMS(例如:MySQL)。


第三章 使用MySQL

     1、现在用Windows系统开发一些小demo比较多,所以很少用到命令行执行操作,但是这里我们还是很有必要熟悉一下,因为之后会在Unix/Linux系统开发比较多。

你可以看看还记得以下的几个命令吗?

     user database;   show databases;   show tables;   show columns from table;   show status;   show create database;   show create table;   show grants;   show errors;show warnings

     我在《简单的MySQL操作20问!看这个就够了》这篇博客里面都列举了主要的操作,可以去康康哦。


第四章 检索数据

     1、关于通配符(*)用起来的确很爽,但是除非你确实需要表中的每个列,否则最好不要用,虽然会省事(的确,哈哈哈),但是检索不需要的列通常会降低检索和应用程序的性能。

     2、还记得DISTINCT关键字吗?就是指示MySQL只返回不同的值(例如:select distinct id from student)。

     3、记住limit 1是第二行,这点和java的索引相似(即0是第一行)。还有limit 4 offset 3意为从第三行开始取4行,也有(limit offset,size;)


第五章 排序检索数据

     1、有一个概念需要解释一下,我们检索出来的数据并不是以纯粹的随机顺序显示的,如果不排序,数据一般将以它在底层表中出现的顺序显示(这可以是最初添加到表中的顺序,但是如果数据后来进行更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响)。


第六章 过滤数据

     1、还记得在同时使用order by和where字句的时候,order by应该在where之后。当然还有having它是对子句结果的过滤。

     2、还记得空值检查吗?例如:select id from student where name is null;(这里需要注意,我们在过滤返回的时候不会返回具有NULL值的行)。


第七章 数据过滤

     1、我们要记住and操作符优先级是比or操作符优先级高的,所以某些时候我们可以使用圆括号来达到我们设置计算次序的目的。

     2、MySQL中的NOT,支持NOT对IN、BETWEEN和EXISTS字句取反。


第八章 用通配符进行过滤

     1、回忆一下通配符:LIKE(其实从技术上来说是谓词)、%_


第九章 用正则表达式进行搜索

     1、正则表达式是用来匹配文本的特殊的串(字符集合)。

     2、举个例子,检索列name包含文本100的所有行:

     select name from student where name REGEXP '100' order by name;

我们这里回顾一下REGEXP的知识

(1)基本字符匹配

输入:select name from student where name REGEXP '.000' order by name;

输出:name

          jj 1000

          kk 2000

分析:这里使用了正则表达式.000。其中.是正则表达式中一个特殊的字符(表示匹配任意的一个字符)。

(2)进行OR匹配,使用|,例如select name from student where name REGEXP '1000|2000' order by name;

  (3)匹配任意单一字符,可通过指定一组[和]括起来的字符来完成,例如:

输入:select name from student where name REGEXP '[123] Ton' order by name;

输出:name

         1 ton anil

         2 ton anvil

分析:这里使用了正则表达式[123] Ton。[123]定义一组字符,它的意思是匹配1或2或3。

(4)匹配范围

集合可用来定义要匹配的一个或多个字符。例如有[0-9]或者[a-z]。

(5)匹配特殊字符

为了匹配特殊字符,必须使用\\为前导,\\-表示查找-。

(6)匹配字符类

我们可以使用预定义的字符集,有:

根据《MySQL必知必会》差缺补漏知识点(时隔3个月,我又回来啦)_第2张图片

 

(7)匹配多个实例

     对匹配的数目进行更强的控制,可以使用正则表达式重复元字符来完成,有:

根据《MySQL必知必会》差缺补漏知识点(时隔3个月,我又回来啦)_第3张图片

 

(8)定位符

     为了匹配特定位置的文本,使用定位符有:

 

根据《MySQL必知必会》差缺补漏知识点(时隔3个月,我又回来啦)_第4张图片


 

第十章 创建计算字段

     1、Concat()拼接串,即把多个串连接起来形成一个较长的串。

     2、函数RTrim()函数去掉值右边的所有空格;Trim函数去掉左右两边的空格,以及LTrim去掉串左边的空格。

     例如句子:select Concat(RTrim(name),'(',RTrim(id),')') from student order by name;


第十一章 使用数据处理函数

     1、这里介绍了日期处理函数和文本处理函数,在我自己的开发中其实大多都是在后端进行处理,而不是数据库,不过还是有必要了解这个的。


第十二章 汇总数据

     1、这几个聚集函数要记住哦:

根据《MySQL必知必会》差缺补漏知识点(时隔3个月,我又回来啦)_第5张图片


第十三章 分组数据

     1、这里需要注意一下having和where的差别,where在数据分组前进行过滤,having在数据分组后进行过滤。


第十四章 使用子查询,第十五章 联结表,第十六章 创建高级联结,第十七章 组合查询

     这部分的知识在SQL还是挺重要的,如果没有掌握的话建议去找例子学习,只有自己敲才可更好的掌握,我们这里就很快走过啦~


第十八章 全文本搜索

     1、并非所有引擎都支持全文本搜索,最常用的引擎MyISAM和InnoDB,前者支持全文本搜索,后者不支持。

     2、可以使用Match()和Against()执行全文本搜索。


第十九章 插入数据

     1、还记得insert插入多行的写法吗?

     insert into student(id,name,sex,age) values('123','jj','man','34'),values('1234','kk','man','34');


第二十章 更新和删除数据

     1、update和delete应该记得把。


第二十一章 创建和操纵表

     1、需要知道几个引擎:

     InnoDB是一个可靠的事务处理引擎,不支持全文本搜索;

     MEMORY在功能上等同于MuISAM,但由于数据存储在内存(不是磁盘)中,速度很快,特别适合于临时表;

     MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。

     2、更新表的操作,例如添加一个列:alter table student add hobby CHAR(20);删除一个列:alter table student drop column hobby;

     3、重命名表有:rename table studnt to student11;


第二十二章 使用视图

1、create view创建,drop view viewname删除。我自己在开发中没有怎么使用到,所以在合理就大致看看吧,但是要知道它的作用我觉得就是让我们写语句更加简洁。


第二十三章 使用存储过程,第二十四章 使用游标,第二十五章 使用触发器

     这一部分的知识算是高级部分吧,可以去学习一下


第二十六章 控制事务处理

     1、这个在开发中挺多的,JDBC中我们就自己使用,所以要记住一些简单的命令。

 

第二十七章 全球化和本地化

     1、这个其实就是设置好字符集,必过一般挺长的,都是找度娘康康(doge)。

 

第二十八 安全管理,第二十九章 数据库维护,第三十章 改善性能

     1、就看看就好吧。

 

总结:

     如果学过SQL的语法再来看《MySQL必知必会》真的很快,也可以当做自己复习的书籍来进行阅读,我是根据自己遗漏来进行整理的文章,所以有很多地方是有所欠缺的,后半部分觉得需要自己投入时间去琢磨,仅仅是看概念是不行的,所以也没有过多的提及(高级部分)。这个专栏终于推荐了一本书emmmm,之后每个月都保持学习更新,冲冲冲!

 

 

你可能感兴趣的:(书籍,数据库,mysql,推荐书籍,命令行查询,mysql必知必会,java后端)