产品经理中必会 SQL 技能,相关内容研发可不予支持
本文阐述产品经理也需要掌握SQL技能,否则产品经理与研发之间乒乓方式的交互,将非常浪费时间。
对于产品经理来说,以下涉及到的SQL应当是必会的。对于研发来说,如果是文中提到的内容,可以不予支持。
本文的例子可以在廖雪峰的在线SQL中简单试验:https://www.liaoxuefeng.com/wiki/1177760294764384/1179611432985088
SQL基本概念
先说一下SQL的几个基本的概念:
库(database): 数据库是一些关联表的集合。
表(table): 表是数据的矩阵。
列(column): 一列包含了相同类型的数据。
行(row、Record):一行代表一组相关的数据。
主键(primary key):主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
索引(index):索引用于快速访问数据库表中的特定信息。
SQL命令的类型包括:
数据定义语言(DDL):创建和重构数据对象,包括:
CREATE TABLE
ALTER TABLE
DROP TABLE
CREATE INDEX
ALTER INDEX
DROP INDEX
CREATE VIEW
DROP VIEW
数据查询语言(DQL):用于查询数据,包括:
SELECT
数据操作语言(DML):操作关系型数据库对象内部的数据,包括:
INSERT
UPDATE
DELETE
数据控制语言(DCL):用于控制对数据库里数据的访问,包括:
ALTER PASSWORD
GRANT
REVOKE
CREATE SYNONYM
数据管理命令:对数据库里的操作进行审计和分析,包括
START AUDIT
STOP AUDIT
事物控制命令:用户事务的处理,包括
COMMIT
ROOLBACK
SAVEPOINT
SET TRANSACTION
注意DML与DQL所用的条件类似,因此其实学会了select之后,其实update、delete也类似,insert则没有这些条件。
库表语句
从基本使用的角度,基本库表的语句其实只有4条。
查看库的列表:
使用某个库——不同库中包括了不同的表;
查看表的列表:
查看表的结构
下面则是实际执行结果的例子。
查看库列表。
查看表的列表。
查看两个表的结构。
基础查询命令
SQL基本查询命令就是select,格式如下所示。
如果用select *就代表了查询所有的列(column)。
下面就是在两个表中查询内容的操作。
查询指定的列,大约就是下面的样子。
查询的时候可以加分页,用limit表示限制,offset表示偏移量,例如:
用where加比较条件的查询
SQL的select语句最容易与where结合使用,代表了查询的条件,下面是带有where的查询命令格式。
where可以带有的条件常用的是下面情况。
=:等号
<>, !=:不等于
>:大于号
<:小于号
>=:大于等于号
<=:小于等于号
下面的条件查询:
类似的命令也就是非常简单了,大约像下面样子。
用where加like条件的查询
用where加like条件的查询性能可能比较慢,但作为线下数据的使用,还是可以的。
在 where like 的条件查询中,匹配方式
%:表示任意 0 个或多个字符。可匹配任意类型和长度的字符,中文要使用两个百分号(%%)表示。
_:表示任意单个字符。
[]:表示括号内所列字符中的一个。
[^] :表示不在括号所列之内的单个字符。
下面就是典型的like命令使用。
下面是一些其他的like语句:
排序ordey by命令
select结合ordey by命令可以进行排序。
ASC、DESC两个关键字来设置查询结果是按升序、降序排列, 默认为升序排列。
下面的两行命令,也是等价的。
运行结果是:
分组group by命令
如果用group by语句可以根据一个、多个列对结果集进行分组。
下面的命令代表结果也是一个表:
结合统计函数则会更有意义。
下面的语句则是算平均分:
能用的SQL函数,大约有下面的一些:
AVG(column):返回某列的平均值
FIRST(column) :返回在指定的域中第一个记录的值
LAST(column):返回在指定的域中最后一个记录的值
MAX(column):返回某列的最高值
MIN(column):返回某列的最低值
SUM(column):返回某列的总和
COUNT(column):返回某列的行数(不包括 NULL 值)
COUNT(*):返回被选行数
连接join命令
连接join在两个或多个表中查询数据,在线上的应用中,join可能带来速度很慢。
join命令的几种情况:
INNER JOIN(内连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 获取右表所有记录,即使左表没有对应匹配的记录。
例如下面的语句:
说明:
以上语句只是功能示例,并无实际意义,因为在两个表当中id的意义不一样,如果id意义相同,那就是有意义的;
dog、cat只是临时的别名,实际应用中,可以用a、b等单字母
以上的命令实际上等价于:
如果使用left(或者right)则会把一个表中有的东西列出来。
SQL其他的知识点
SQL其他的查询知识点或者比较深,或者不太常用,大概有下面一个目录:
SQL 运算符:算术、比较、逻辑、位等几种运算符
SQL 函数:字符串、数字、日期、文本、二进制等函数功能
UNION联合操作符:用于将多个select语句的结果组合到一个结果集合中,多个 select语句会删除重复的数据。
REGEXP正则表达式:比like更强大的功能,^、$、*、+、[...]、{n,m}均可以使用;
CREATE TEMPORARY临时表:创建临时表可以将一些数据在过程中保存;
评论 (3 条评论)