执行顺序
from:需要从哪个数据表检索数据
where:过滤表中数据的条件
group by:如何将上面过滤出的数据分组
having:对上面已经分组的数据进行过滤的条件
select:查看结果集中的哪个列,或列的计算结果
order by :按照什么样的顺序来查看返回的数据
asc 指定列按升序排列,desc 指定列按降序排列
Select
select from
SELECT * FROM XXX LIMIT X; 返回指定数量
select into 查询出的数据添加到一个插入到新表中
insert into select 查询并插入到已存在的表中
注意:如果group by中没有出现的字段 select中出现了 出现不确定值的时候 mysql会随机选一个值
在mysql中是合法的,但Oracle,hive中会报错
解决方法:
- 将该字段也放在group by中
- 用个简单的聚合函数把该字段框起来
e.g MAX()、MIN()
Where:用于提取满足标准的记录
where XXX = ‘’; 常用于末尾
where xxx like 'x%'以X开头
where xxx like '%x’以X结尾
where xxx NOT like ‘%x%’ 不包含x
Where XXX IN (value1,value2,…); 可以筛选多个字符
WHERE xxx BETWEEN value1 AND value2;这些值可以是数值、文本或者日期
LIKE拓展 ’ _ ':
‘_a_’ //三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的
update 用于更新表中的记录
常与where一起使用
update 表名 set xxx = ‘’ where xxx = ‘’ ;
delect 用于删除表中的行
delect from 表名
where XXX ;
DROP、TRUNCATE、 DELETE 的区别。
DROP:
DROP test;
删除表test,并释放空间,将test删除的一干二净。
TRUNCATE: