基本查询:
select语句:
Set timing on:打开显示操作时间;
select count(*) from 表名:查询数据总数;
desc 表名:查看表结构;
select * from 表名:查询所有列;
select 字段名 from 表名:查询指定列;
查询所有行比查询指定行更加费时;
select distinct 字段名 from 表名:取消重复行;
select 字段名运算 别名 from emp:算数计算和别名;
一旦其中有一个字段是null的时候,整个运算结果就成了null
这时我们就使用nvl(字段名,0),意思为“如果这个字段为null,那么就用0代替”
select 字段名 ||’连接的字符串’|| 字段名 from 表名:连接字符串;
Where语句:
Where 字段名 条件:条件有>,<等;
and:多个条件并列使用;
Like:
%:表示任意0到多个字符;
_:表示任意单个字符;
使用方法:
In:
Is null:
使用逻辑操作符:
Order by:
默认是asc:升序,降序为desc;
复杂排序的首次条件用”,”分开
别名的使用:
复杂查询:
数据分组:max,min,avg,sum,count;
分组函数不能和字段名并列:
Group by和having子句:
Group by:
Having:
特别注意:
1.分组函数只能出现在选择列表,having,order by子句中
2.如果在select语句中同时包含group by,having,order by那么他们的顺序是前面的顺序
3.在选择列中如果有列,表达式,和分组函数,那么这些列和表达式必须有一个出现在group by子句中,否则就会出错
多表查询:
Between ... And ...:
自连接:
子查询:
Select语句中镶嵌select语句;
单行子查询:返回一行数据的子查询;
多行子查询:返回多行数据的子查询,因为是多行数据,所以我们就要用到in,返回的数据有可能重复,所以我们就要用到distinct;
多行单列子查询:
All:
Any:
单列多行子查询:
注意事项:
如下:而且给表取别名时不能用as
分页:
rownum:
选定6~10行:
这种选择有个特点:指定查询列,只需修改最里层的子查询;
如何排序,也只需要修改最里层
用选择的数据创建表:
合并查询:
Union:
Intersect:
Minus: