产品经理不懂点SQL怎么混江湖?

【文章摘要】SQL命令除了作数据检索功能之外,还可以使用CREATE TABLE、INSTER、UPDATE、DELETE语句分别来录入、添加、更新和删除数据。

u=462196078,3007762982&fm=21&gp=0

序 | 写在前面的话

产品经理平时要不要看数据?要看!

数据一般找谁要?BI (数据分析师)!

滚蛋...自己没脑子啊?

哎,产品经理不懂点SQL还真的不太容易混江湖。申请个数据库权限,自己动手丰衣足食吧。

什么是SQL?

嗯...其实大家可以把它想象成一种语言,只不过这种语言只是当我们在和数据库对话时才会使用的一种语言,因为对于数据库来说,ta只听得懂SQL语言,那么当我们在对数据库下达命令(检索、录入、更新、删除等)时,必须使用SQL进行下达。

其实,SQL能做的事情有很多,比如生成表格(数据定义功能)、录入调取数据(数据操作功能)、管理用户(数据约束功能)。那么具体如何和数据库完成工作上的“对话交流”?且听我馒头Mant.君慢慢分解。

81161853782549696

Q1:检索成绩在80分以上的同学。

SELECT *

FROM School Reoport

WHERE Grades > = 80

那么输入上述的命令,就能把编号为3,5,6,7的数据检索出来了。

725631032562058631

其实,上述命令翻译过来就是:指定了“(哪一列)SELECT”、“(从哪个表格)FROM” 、“(以怎样的条件)WHERE”,即指定从School Report这个表中调取Grades>=80的同学,在这里要说明一下“ * ”表示全部列,假如你只想把符合条件的“Name”和“Grades”列字段调取出来,那么命令更改如下,

SELECT Name,Grades

FROM School Reoport

WHERE Grades > = 80

即可。

那在上述的case中,在表达“80分以上”条件设定时,我们使用了“ > = ”这个符号在命令中表示。其实,对于设定条件时我们所使用到的这类符号,称之为“

比较运算符

”。此外,其实还有其他的比较运算符,详见下表。

310982389194713660

用一个case举例。

Q2:检索成绩不等于69分的同学。

SELECT *

FROM School Reoport

WHERE Grades < > 69

那假如我们想设定组合更加复杂的检索条件时,比如说,我要检索“分数在60分以上且性别为女性”的同学,该怎么办呢?这里,就要提到一个新的运算符叫“

逻辑运算符

”。

371742345226956353

那么,这个检索命令即为:

SELECT *

FROM School Reoport

WHERE Grades > = 60 AND Sex = Female

另外,当我们设定条件时想通过模糊检索时,“通配符”在这里就发挥作用了。利用“ % ” 和“ _ ”字符做通配符,使用LIKE检索匹配通配符的字符串。那上述两者通配符的区别在于什么呢?看完下表,你就清楚了。

485878370606194782

Q3:检索姓名中含“e%e”的同学。

SELECT *

FROM School Reoport

WHERE Name LIKE ' e%e '

除以上提到的检索条件之外,其实我们还可以使用“BETWEEN...AND...”语句设定数值范围进行检索。

Q4:检索成绩在“60分-90分”范围内的同学。

SELECT *

FROM School Reoport

WHERE GRADES

BETWEEN 60 AND 90

另外,大家也应该注意到在School Report表中,有一个同学的成绩是空值,我们如何对成绩非空值的同学进行检索呢?这里就要用到“ IS NULL ”语句和“ NOT ”逻辑运算符了。

SELECT *

FROM School Reoport

WHERE NOT

GRADES IS NULL

上面讲述的都是比较基本的检索条件,现在我们需要一些值的计算。那在这里就要引入一个新的概念,叫作“

计算函数

”,可以用来进行平均值、合计、最大/小值等计算。

比如,Q5:调查男生的平均成绩。

SELECT AVG(GRADES)

FROM School Reoport

WHERE Sex = Male

在这里受篇幅的限制,就不多余举例了,提供给到大家一份常用计算函数的语句,得空研究吧。

690324374711631284

现在,我额外引申一个问题:调查不同LEVEL的平均成绩。如何求解?

这里,要引入“分组计算”的概念。什么叫分组计算,也就是将数据分组化,求取每一组的统计值。实际应用中,只需要将“ GROUP BY ”命令和计算函数作组合即可。

SELECT LEVEL , AVG(GRADES)

FROM School Reoport

GROUP BY LEVEL

假如,我对这个计算结果还不够满意,我还想统计平均成绩在70分以上的LEVEL。那么这里“平均分在70分以上”的设定条件就不能使用WHERE语句设定了,而是应该使用HAVING语句来设定条件。

SELECT LEVEL , AVG(GRADES)

FROM School Reoport

GROUP BY LEVEL

HAVING AVG(GRADES) > = 70

其实,SQL命令除了作数据检索功能之外,还可以使用CREATE TABLE、INSTER、UPDATE、DELETE语句分别来录入、添加、更新和删除数据。另外,当我们要想删除数据表时,通过DROP语句就能实现咯。不过这些,对于做产品的我们来说,可用性几乎为0,了解下就okay了。

讲真,产品经理不会点SQL,还真是不好混江湖!你说呢?

 

本文由

产品100

为你推荐并呈现

文章来源:微信公众号:PRODUCTER(ID:ProStory)

文章作者: 馒头

 

友情提示:

若出处标注错误,请联系QQ:2977686517及时更正,感谢理解和支持!

4条评论 添加新讨论

04月01日评论

谢谢很有帮助!~

回复
2016年04月18日评论

这也需要说,还能发出来?

回复
  1. 2016年04月18日评论 回复
  2. 2016年04月18日评论 回复
登录后参与讨论
Ctrl+Enter 发表