常用SQL去重(distinct),排序,模糊查询(like)
JOIN连接组合两个表中的字段记录,包括三种:
INNER JOIN运算式:连接组合两个表中的字段记录。
LEFT JOIN运算式:连接组合两个表中的字段记录,并将包含了LEFT JOIN左边表中的全部记录。
RIGHT JOIN运算式:连接组合两个表中的字段记录,并将包含了RIGHT JOIN右边表中的全部记录。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
SELECT
m.id
FROM
t_mem_member AS m
LEFT JOIN t_mem_points AS p on m.id = p.member_id;
-- 查询
SELECT group_id as 组名 from t_mem_group_relation WHERE member_id='2471944';
-- 注意:distinct紧跟着在select关键字之后。如果查询多个列则会把查询的所有列的值进行拼接后,在去重
-- (+、-、*、/)加减乘除
SELECT distinct group_id+20 from t_mem_group_relation ;
-- select * from 表名称 limit m,n;
SELECT group_id as 组名 from t_mem_group_relation limit 5,10;
-- :(and、or、not)
SELECT group_id as 组名 from t_mem_group_relation WHERE not member_id='2471944';
-- 查询null时只用is null。查询非空is not null
SELECT group_id as 组名 from t_mem_group_relation WHERE member_id is null or member_id='2471944' ;
SELECT group_id as 组名 from t_mem_group_relation WHERE member_id is not null;
-- between在m、n之间的记录,并包含m、n。and前写小值,and后写大值。between相当于age>=20 and age<=50的简写
-- in(20,22,23);(查询出age为20,22,23的所有记录)
-- (like、not like)注意:%表示任意长度的字符。_表示一个长度的字符
正则查询:(rlike)
-- ● 语法:select * from 表名称 where 列名 rlike ‘[条件]’;
● 例子:select * from user where name rlike ‘[张王]三’;(查询出张三或王三的所有记录)
● 例子:select * from user where name rlike ‘[^张王]三’;(查询出除了张三或王三的所有记录)
注意:[...]范围也可以为[0-9][a-z],也可以写固定的值
---------------------
-- 聚合函数(max,mn=in,sum,count(),avg)
SELECT source As 来源 ,COUNT (ALL login_mobile)FROM t_mem_member ;
select source ,count( login_mobile) from t_mem_member;
-- 加入筛选条件WHERE,不过这里一定要注意的是,执行顺序为:WHERE过滤→分组→聚合函数。
-- HAVING过滤条件
SQL的执行顺序:
–第一步:执行FROM
–第二步:WHERE条件过滤
–第三步:GROUP BY分组
–第四步:执行SELECT投影列,聚集函数
–第五步:HAVING条件过滤
–第六步:执行ORDER BY 排序
浙公网安备 33010602011771号