在数据分析中,我们常常面临的一个问题是:数据从哪来?
之前我们做数据分析的案例中的数据都来自于Excel里的数据。但是在现实中,大部分的数据是存放在数据库中。这就要求你能从数据库中读取数据,并进行分析得出结果。
因此,要做数据分析,需要掌握以下2个知识点:
1)常用的关系数据库:Mysql
2)SQL语句:从数据库中获取数据,并进行分析的语言
一、常用的关系数据库:Mysql
- 什么是数据库?
数据库=多张表+各表之间的关系
- 数据库表长什么样?
数据库中每个表由一个名字标识。表包含带有列名的列,和记录数据的行。
ID是数据库中重要的概念,叫做唯一标识符或者主键,用来表示数据的唯一性。
- 数据库里各个表之间如何建立联系呢?
数据库中,如果你要关联其他表,一般会以「表名_ID」作为联接。
联系就是数据能够对应匹配,在数据库中正式名称叫联接,对应的操作叫做join。
安装步骤:
4.下载并安装MySQL,地址如下:
https://dev.mysql.com/downloads/windows/installer/
- 安装Navicat(可视化MySQL数据管理工具)
<u>https://www.navicat.com/en/products</u>
二、学习SQL语句
1)SQL学习直接看w3school中的内容就可以了:<u>http://www.w3school.com.cn/sql/index.asp</u>
2)学习的过程中对照着在Mysql图形软件(Navicat) 中操作。
如何在Navicat中写SQL语句:<u>http://www.formysql.com/jiqiao/sql-yuju.html</u>
下面操作的数据全部从平台下载:<u>http://sqlzoo.net/wiki/SELECT_basics/zh</u>
基础操作:
1、SELECT 语句(简单查询)
SELECT 语句用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。
SELECT 语法
1)SELECT 列名称 FROM 表名称
2)SELECT * FROM 表名称
练习一:
使用SELECT 语句从WORLD表格中查询德国Germany的人口
WORLD表格:练习二:
1)查询显示面积为 5,000,000 以上平方公里的国家,该国家的人口密度(population/area)。人口密度并不是 WORLD 表格中的栏,但我们可用公式(population/area)计算出来。2、IN 操作符
IN 操作符允许我们在 WHERE 子句中规定多个值。
SQL IN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
练习:
显示“Luxembourg 卢森堡”,“Mauritius 毛里求斯”,“Samoa 萨摩亚”,“Ireland 爱尔兰”,“Iceland 冰岛”和“Denmark 丹麦”的国家名称和人口。3、LIKE 操作符
查询国家名称中带有‘G’字母的国家名称和人口。4、BETWEEN 操作符
BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。
操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
SQL BETWEEN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
练习:
显示面积为 200,000 及 250,000 之间的国家名称和该国面积。5、OR、AND、>、< 的用法
练习:
成为大国的两种方式:如果它有3百万平方公里以上的面积,或拥有250百万(2.5亿)以上人口。美国、印度和中国(USA, India, China)是人口又大,同时面积又大的国家。排除这些国家。
6、ROUND() 函数
ROUND 函数用于把数值字段舍入为指定的小数位数。
SQL ROUND() 语法
SELECT ROUND(column_name,decimals) FROM table_name
练习一:
除以1000000(6个零)是以百万计。除以1000000000(9个零)是以十亿计。使用 ROUND 函数来显示的数值到小数点后两位。
练习二:
显示国家有至少一个万亿元国内生产总值(万亿,也就是12个零)的人均国内生产总值。四舍五入这个值到最接近1000。
7、LENGTH () 函数用法
length求得是字符长度。
练习:
Greece首都是Athens,每一个字符串'Greece'和'Athens'都有6个字符。
如果国家的名字和对应首都的名字拥有相同字符时,显示国家的名字及其对应的首都。
可以使用 LENGTH函数查找字符串中的字符数。8、LEFT()与RIGHT()函数
LEFT()与RIGHT()函数是相似的,它们都返回一定长度的子字符串。
这两个函数的区别是,它们返回的分别是字符串的不同部分。
LEFT()函数返回字符串最左边的字符,顺序从左数到右。
RIGHT()函数正好相反,它从最右边的字符开始,以从右到左的顺序返回特定数量的字符。
练习:
Sweden的首都是Stockholm。这两个词都以字母S开头。
显示国家的名字及其对应的首都,但是国家名字和首都名字不能相同。
可以使用 LEFT函数来隔离第一个字符,也可以使用<>进行操作。