---- SELECT ----显示表格中一个或数个字段的所有数据记录
- 语法: select * from 表名 #显示表的所有数据
- selcet 字段 from 表名 #显示对应字段的表数据
---- DISTINCT ----不显示重复的数据记录
select distinct 字段 from 表名 #不显示重复字段的数据记录

---- WHERE ----有条件查询
- select 字段 from 表名 where 条件 #查询满足条件的字段
- select * from 表名 where 条件 #查询表中满足条件的所有数据
---- AND (且)
select * from 表名 where (条件1 and 条件2); #满足条件1和条件2

-----OR (或)
select 字段 from 表名 where 条件1 0r 条件2 #满足条件1或条件2

---- BETWEEN ----显示两个值范围内的数据记录
- 语法:SELECT "字段" FROM "表名" WHERE "字段" BETWEEN '值1' AND '值2';
- SELECT * FROM store_info WHERE Date BETWEEN '2020-12-06' AND '2020-12-10';
---- LIKE ----匹配一个模式来找出我们要的数据记录
select * from 表名 where 字段 like 条件

---- ORDER BY ----按关键字排序
- select * from 表名 (where 条件) order by 字段 asc/desc
- asc 升序 默认
- desc 降序

- echo abcdefg
- i=abcdefg #定义变量
-
- echo ${i:2:2} #从下标2开始截取两个 下标从0开始计算
-
- echo abcdefg | cut -b 3-4 #截取下标3到4个的 cut下表从1开始
-
- expr substr $i 3 2 #expr下表从1开始
使用字符串函数连接两个字段:
- select concat (字段,字段2) from 表名; 字符串要加 ' '
-
- select 字段1 || 字段2 from 表名 字符串要加 ' ' #要开启PIPES_AS_CONCAT 模式
1.
2.

- select substr(字段,y,z) from 表名 where 语句;
- slect substr(store_name,5,6)form location where store_name='los Angles';

对GROUP BY后面的字段的查询结果进行汇总分组,通常是结合聚合函数一起使用的
原则:GROUP BY 有一个原则,凡是在 GROUP BY 后面出现的字段,必须在 SELECT 后面出现;凡是在 SELECT 后面出现的、且未在聚合函数中出现的字段,必须出现在 GROUP BY 后面。
用来过滤由 GROUP BY 语句返回的记录集,通常与 GROUP BY 语句联合使用
HAVING 语句的存在弥补了 WHERE 关键字不能与聚合函数联合使用的不足。
原因:是因为SQL语句执行顺序中having优先级低于where。
- select 字段1 聚合函数(字段2) from 表 group by 字段1 #分组,通常会结合聚合函数使用,分组也有去重的效果
- select 字段1 聚合函数(字段2) from 表 group by 字段1 having (函数条件); #having的作用:过滤group by分组后的结果


别名 :字段別名 表格別名
语法:SELECT "表格別名"."字段1" [AS] "字段別名" FROM "表格名" [AS] "表格別名"; 【】代表可以省略
select 字段 from 表名1 where 字段 比较运算符(select 字段 from 表2 where 条件表达式)


SELECT "字段1" FROM "表格1" WHERE EXISTS (SELECT * FROM "表格2" WHERE "条件");
#这里的子查询作为条件进行判断。如果子查询返回至少一行结果,则外部查询的结果将包含该行

- 内连接:select A.字段 from 左表 A inner join 右表 B on A.字段=B.字段;
- select A.字段 from 左表 A inner join 右表 B using(字段);
-
- using(字段)= on A.字段=B.字段;
- union 联集,将两个select查询语句的结果合并,并去重
- union all 联集,将两个select查询语句的结果合并,不去重
- select 字段 from 左表 A left join 右表 B on A.字段=B的字段 where B字段 is null
- #求右表与左表无交集的字段
- select 字段 from 左表 A right join 右表 B on A.字段=B。字段 where A字段 is null
- #求左边与右表无交集的字段
-
-
- 再使用联集
- select 字段 from 左表 A left join 右表 B on A.字段=B的字段 where B字段 is null
- union all
- select 字段 from 左表 A right join 右表 B on A.字段=B。字段 where A字段 is null
- 就可以显示出两表无交集的字段
