上周我开启了我数据分析之旅~安装mysql学习sql语言
而现在的自己是入门水准,仅仅会简单的查询语言、了解一些进阶的语言。面对复杂的语言自己还要跟着案例操作,比如:子查询、连接表、组合查询。
文章是学习《SQL必知必会》、SOTON数据分析、SQL入门到精通后的汇总。
分为四个板块: SQL、MYSQL与数据库;SQL语句分类;SQL语句实战;数据类型分类(补充、非重点)
写在前面的话:如何阅读本篇文章?
我们学习sql语言是因为要和数据库打交道,从数据库中提取数据。
首先要了解数据库包含数据库、表、列、记录,而sql语句主要包含增删改查询。
所以我们学习就是3个目标1个重点
1、数据库的的增加删除查询修改
2、表的增加删除查询修改
3、列的增加删除查询修改
4、最重要的是记录的查询
带上这4个问题学习并归类,可以很快建立自己的思维。当然文章也是尽可能的按这种方式写的
一、SQL、 MYSQL与数据库
SQL
1、 什么是SQL?
SQL是Structured Query Language(结构化查询语言)的缩写,是一种专门用来与数据库沟通的语言
2、 SQL的优点?
SQL不是某个特定数据库供应商专有的语言,因此学习此语言几乎能与所有数据库打交道。
SQL简单易学,它的语句都是由很强描述性的单词组成。
SQL是一种强有力的语言,可以进行非常复杂和高级的数据库操作。
3、 学习SQL需要准备什么?
下载软件MYSQL。
关于MYSQL的下载网上有很多讲解,上篇文章《MYSQL5.7.23MIS版本安装图解》里面也有安装的讲解,大家可以参考。
MYSQL
1、 什么是MYSQL?
MYSQL 是一种数据库软件,应称为数据库管理系统(DBMS)
2、 MYSQL的优点?
MYSQL是免费开源,低成本的软件;执行速度快,性能好;简单易学
数据库
1、 为什么要了解数据库?
理解数据库概念是掌握SQL的重要前提
2、 什么是数据库?(database)
数据库是保存有组织的数据的容器,通常是一个文件或者是一组文件。
3、 表(table)
表是结构化文件,可以用来存储某种特定类型的数据。
4、 列(column)
列是由表组成
5、 行(row)
表中的一个记录。表中的数据是按行储存的,所保存的每个记录储存在自己的行内。
感想:
第一部分内容主要来自《MYSQL必知必会》,用几百字介绍SQL、MYSQL、数据库,就是为了解决:是什么、做什么问题。如果在学习SQL时理解数据库非常重要,亲亲有时间可以参考其他数据库基础知识。
当然自己也是非常想深入了解数据库、数据库软件、SQL。不过要在下一轮学习中在进行纵向深度学习,现在的目标是先横向了解,尽快熟悉数据分析全局。
二、SQL语句分类
在开始SQL语句前,我们先回到第一部分SQL优点:SQL简单易学,他的语句全都是由很强描述性的英语单词组成,而且单词数量并不多。
我们抓取三个关键词:SQL简单、语句描述性强、数量少。SQL的确比较简单,下面几页PPT中包含82%的SQL语句,学完后你也能称为入门数据分析了。
补充一点从专业的角度出发,SQL语言可以分为四类DDL、DML、DCL、DQL。下面也将从这四个方面讲述SQL语句。(PS:听说在面试的时候可能会问到SQL语言的四大分类,同时SQL作为数据分析最重要的语言一定要打牢基础。)
第一张图是关于SQL语句的分类,可以分为四种DDL、DML、DCL、DQL
第四张图是DDL表的创建、删除、修改。这里的创建是创建列以及数据类型、删除是删除列、修改指修改列名修改数据类型!!
关于数据类型有四类:数值型(整数、小数)、浮点型、字符串型、日期时间型(在文章最后附上关于数据类型的介绍)
第四张图是对表记录(内容)的增删改,DML
插入:insert into 表名(列名)values …
下面三张表是学习SQL语句的笔记,对我来说非常重要。
比如修改列名、修改字段类型就找了很久。
第六张图是DQL查询是整个SQL语句的重点。
感悟:
关于SQL我学习了两门课程,其中“SOTON数据分析”课程目录共18节,其中10节都在讲SQL的查询语言,而在“MYSQL从入门到精通’”中课程目录共57节,其中9节在讲述SQL语言的插叙。当初我也是各种迷茫模糊,不知道应该以哪个老师的内容为标准,甚至一度以表的新建、增加数据为核心。
后来看完《SQL必知必会》之后知道在SQL中最重要的就是DQL查询语言。因为书中的目录和SOTON 的课程目录相似,重点讲述的内容也一样,于是自己把重心也转向了DQL查询语言。
所以想系统权威的学习某类技能还是要多看书。
关于DQL语言总共有5张PPT,主要包括
1、数据查询语言(select 列名 from 表名);
2、过滤语言(where);
3、通配符=模糊查询(where like);
4、排序(order by),asc升序、desc降序;
5、聚合函数:文本函数avg、sum、count、max、min,时间函数curtime()、now( )、datetime()
6、分组查询:group by
7、联结表:inner jion 、left jion
8、联和查询=汇总函数:union(去重)、union all(不去重)
9、子查询:一般用在from 后面,或者是where后面
下面的目录是SOTON数据分析的课程目录,主要以查询为主
SOTON数据分析课程里面的查询语言虽然和“SQL从入门到精通”一样,但这里自己还是在次总结。哈哈哈,主要是我自己的复习
1.3了解MYSQL:show databases,use 数据库
1.4数据排序:order by、desc、asc(升序)
1.5过滤函数:where、having(对分组函数过滤时用having)
1.6通配符:where like 、%
1.7处理函数:文本处理函数rtime( ) len( ) upper() lower()substring() left()
1.8时间处理函数:curtime、select curdate( )
1.9汇总函数:max min avg count
1.10分组计算:group by
1.11子查询:常在from后面或者where后面
1.12表联结:inner jion、left jion
1.13组合查询:union
感悟:
之前在构建文章框架的时候,本来是计划第二部分为了解部分,后来文章在不断的完善中才发现第二部分才是核心它几乎总结了所有SQL语句(如同小学数学时背加减顺序表),而自己之前似乎核心的第三部分属于案例操作而已。
我们在学习时要先掌握知识点在进行实践操作,不然也仅仅是知其然不知其所以然。
三、SQL语句实战
案例部分主要是根据soton数据分析进行操作。需要数据的可以留言或私聊。
1、查询包含的数据库
2、查询sys数据库中,表sys_config中包含的列名(show columns 可查询数据类型)
3、查询city表中所有的列,并按照population 排序(降序)
4、查询city表中的id name countrycode district population列,按照population降序,并且只选取100行
5、查询id name countrycode district population列,并且population大于等于10万小于等于50万
6、过滤。注意and和or 在一起使用时的计算顺序
7、通配符,筛选名字类似a_c%的id name countrycode district population列
8、常用文本函数
9、文本函数。解释substring(name,2,3)选择name名字3个字母,从 第二个字母开始,往后数3位
10、分组查询group by 常用于from后面
11、对分组数据进行过滤用having
12、子查询。常用于from后面,或者where后面
13、返回当前时间
14、联结表inner jion\left jion
15、组合插叙,union不计算重复值,all union计算重复值
16、存储筛选出来的数据,并创建表
17、空值:is null空值、not null 非空
18、插入数据。在插入中对应列的数据类型要一致
19、创建表并确定列的数据类型
20、保存数据。防止出错可以加if not exixts
21、时间撮里面的时间可以单独提取出来
22、时间处理函数
感悟:
为了准备这次实操截屏跟着视屏敲了2遍sql语言,准备了3个小时。总结一句实操很重要。(需要数据的点文本结尾领取利)
本来就是半瓶水,也不是很懂。感悟在前面都发挥完了哈哈,也没自己独特的见解,甚至自己连提问都不会
四、数据类型分类(补充、非重点)
1、数据类型分类:数值类型、浮点类型、字符串类型、时间日期类型
2、数值类型:常用tintint、int
3、浮点类型:常用decimal,更精确
4、字符串类型:常用char\varchar,十万字的文本用text可储存
5、时间类型:常用timestamp
6、字段名修饰:常修饰数据类型
ok,到这里sql就介绍完了,对于子查询、表的创建、表联结还不是很熟悉。后期边学习新内容边复习sql!!
写这篇文章有两个目的一是做分享、二是强迫自己输出为以后复习做准备。所以文章内容比较多但总而言之都在介绍sql,理解记忆还是很容易。
有一个很重要的感悟是:
多思考,只有理解到才是自己的。下次在复习的时候用自己思维写一篇sql进阶。
接下来将开始R和统计学的学习,附上课程数据:https://pan.baidu.com/s/1HZdmBl-jamup39dFqaw2qQ