很多朋友逐渐对数据分析或者叫数据运营开始感兴趣,努力通过各种机会在转行业、转职业,以此来完成职场中一次非华丽转型。
sql的核心意义就是四点:增删改查。通常作为产品或运营等业务类人员,用的最多的是查,也就是“取数”。前三点不太涉及到,主要是开发人员修改数据库使用。
最近连续发了几片有关数据运营相关的文章,也是之前在学习过程中记录和复用的内容。今天抽时间整理一份简单易懂的sql入门语句,虽然不能保证你能熟练使用,但起码能学会如何通过sql取数。
必记语句1:SELECT col 。
这是什么意思呢?其实就像接到一个查询需求一样,需要找什么数据,找哪些数据。因为数据无论在前端还是后台呈现方式都是字段的集合。所以,实际上我们对标,就是每一列,也就是column / field。通常用 col 简称。所以,先说明要找个字段。
必记语句2:FROM table
from后面要写入的是表的名称。就是我们要做那个表格里找数,但千万记住。这个表名不是前端我们可见的表名,而是后台数据库中表名。开发人员很清楚这些名称。所以,sql取数之前先做的一件事情,就是搞清楚数据源中所对应的各个名称。比如表名、字段名等。
当然这个table可能不只是当前一个,还可能是多个表组合而成,也就是后面要和大家说的“表的连接”。
必记语句3: WHERE length =1
顾名思义,当我们知道了从哪个表里找哪些数时,可能还有其他一些删选条件,比如 name like ‘john’ 等做限制查询。就需要有 where 的语句。
举例:
SELECT col,col,col 找什么?
FROM table 从哪找?
WHERE col 条件 条件是啥?
如果要记住以上这三点语句规则,还需要掌握以下的查询类型,都是精细化查询的基本应用。没有mysql的话,找在线学习sql网页,多练习几遍,基本上能对sql有一个比较深入的了解。
1、条件:数字(where)
当查找条件col是数字
select * from table where col = 1;
2、条件:文本(where)
当查找条件col是文本
select * from table where col like '%jin';
3、排序(rows)
需要对结果rows排序和筛选部分rows
select * from table where col > 1 order by col asc limit 2 offset 2
4、join:连表(table)
当查找的数据在多张关联table里
select * from table1 left join table2 on table1.id = table2.id where col > 1
5、算式(select / where)
当需要对select的col 或 where条件的col 经过一定计算后才能使用
select *,col*2 from table where col/2 > 1
OperatorConditionSQL Example解释+ - * / %.col1 + col2col加减乘除substr.substr(col,0,4)字符串截取AS.col * 2 AS col_newcol取别名...还有很多
6、统计(select)
对查找的rows需要按col分组统计的情况
select count(*),avg(col),col from table where col > 1 group by col
7、子表 (table)
一次select的结果rows作为下一次select的临时table才能得到最终结果
select * from (select * from table where col > 1) as tmp where col < 1