select * |字段[,...] from table [表]
select 关键字 后面跟要查询的内容 from 关键字后面跟数据的来源
解析步骤
select distinct [字段][,...] from [表]
注意:去掉重复是去掉一行的记录,按照一行记录去去重的
select [字段] [别名] from [表] -- 字段和别名跟一个空格即可 -- 使用as方式.也可以加一个as进行别名的 select [字段] as [别名] from [表]
-- 降序 select [字段] from [表名] order by [要排序的字段] desc; -- 升序 select [字段] from [表名] order by [要排序的字段] asc;
select [字段] from [表名] order by [要排序的字段] desc, [要排序的字段] asc; select [字段] from [表名] order by [要排序的字段] asc, [要排序的字段] desc;
查询不存在的列即伪列,当需要的结果,不能直接从表里得到,是需要额外计算的就称之为伪列
-- 这里的1 就相当于伪列 select ename,1 from emp;
如果表里存在NULL值,就会影响我们计算,因为NULL和任何数计算都是NULL
-- 如果表达式值为true,则取表达式值,否则就取set值 NVL(表达式,set值) -- 如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc) -- 如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc) nulls first nulls last
字符串拼接,是为了伪列,中有些需要拼接 的列产生的
select [字段]||‘xx’ as [拼接的列] from [表名]
虚表是dual;其实是为了满足,某些数据的计算而产生的的
-- 计算 231*21 select 231*21 from dual;
select 查询字段1,查询字段2 from 数据来源
select distinct 查询字段1,查询字段2 from 数据来源
select distinct 查询字段1 as bm1,查询字段2 as bm2 from 数据来源
select distinct 查询字段1 as bm1,查询字段2 as bm2, 表达式 as 别名 from 数据来源
select distinct 查询字段1 as bm1,查询字段2 as bm2, 表达式 as 别名 from 数据来源 order by 要排序的字段 asc -- 默认升序 select distinct 查询字段1 as bm1,查询字段2 as bm2, 表达式 as 别名 from 数据来源 order by 要排序的字段 desc -- 默认升序
select .... from .. order by