Oracle数据库的查询语句


总结:1.授予连接权限:grant connect,resource to hankai
2.赋予查询SELECT和修改update的权限:grant select,update on scott.emp to hankai with grant option;
3.取消权限:revoke select,update on scott.emp from hankai
4.全联接:全联接就是结果集中除了满足联接条件的记录外,还有左、右表中不满足条件的记录
5.having和where的区别:having是分组(group by)后使用; where是分组前使用
6.from的子查询:把查询后的结果当成一个表来进行查询
7.union:是去重查询;去除两个查询结果重复的部分; intersect:返回两个查询的公共行,就是两个查询结果公共的部分; minus:排除满足第一个查询的结果且在第二个查询中也出现 的查询结果
8.内连接:select * from emp join dept on emp.id=dept.id select * from emp,dept where emp.id=dept.id
9.左连接:select * from emp left join dept on emp.id=dept.id;
10.右连接:select * from dept right join emp on emp.id=dept.id;
11.全外连接;Oracle支持全外连接Mysql不支持全外连接: select * from emp full join dept on emp.id=dept.id
12.from子查询;结果集当做表的时候需要放进括号里面
查询部门编号为30的部门员工的平均工资:select avg(sal) from (select * from emp where dept=30)
13.分页查询: 实际上就是把查询当成一个表,这样rownum在表中就是字段num,那么就可以直接当做条件用
select * from(select rownum as num ,emp.* from emp) where num>=1 and num<=5; (当前页-1)*条数< 变量 >=(当前页)*条数
14.连接操作符;就是字符串拼接: select '工号为'||empno||'姓名为'||ename||'工资为'||sal as str from emp
15.首字母大写的函数; 结果是Nihao : select initcap('nihao') from dual
16.大写变小写;查询出字段的这一列都转成小写: select lower(ename),sal,comm from emp
17.去掉指定字母;只取出第一次出现的xyz任何一个字母就去掉,后面再出现就不去掉了: select ltrim('xayzdm','xyz') from dual
18.这个是去除右边的字母: select rtrim('xayzdm','xyz') from dual