Oracle查询案例.txt
来源:互联网 发布:域名cname 编辑:程序博客网 时间:2024/05/17 23:45
scott用户是Oracle提供的练习用户密码为tiger,在Oracle 10G中Soctt用户是被默认锁定的
conn scott/tiger;
用户解锁
alter user <用户名> account unlock;
当解锁时需要在sys用户下dba权限里面进行解锁
conn sys/oracle as sysdba;
select table_name from user_tables;
设置行的宽度 默认80
set linesize 150;
---------------------------------------------------------------------------------------
查询emp表中所有的员工与职务
select ename,job form emp;
查询emp表中名为CLARK员工的职务和工资
select job,sal from emp where ename='CLARK';
注意:在Oracle中语法与关键字时不区分大小写的但是数据库中的记录是区分大小写的
查询所用工资大于3000的员工姓名
select ename from emp where sal>3000;
查询所有工资小于1500 或有奖金的所有员工姓名
select ename from emp where sal<1500 or comm>=0;
注意:0不代表没有,空字符串不代表null, is null 是空。
select ename,sal from emp where (sal>500 and sal<1000) or (sal>1500 and sal<2500);
错误写法
select * from emp where empno=7369 or empno=7521 or empno=7566 or empno=1235 or empno=4568;
正确写法
select * from emp where empno in (7369,7521,7566,1235,4568);
查询所有员工的姓名与年薪
select ename as 员工姓名,(sal+nvl(comm,0))*12 as 员工年薪 from emp;
注意:nvl是检查指定的字段是否为空,如果为空将替换成指定内容
查询所有员工的姓名与年薪 按年薪升序排序
select ename as 员工姓名,(sal+nvl(comm,0))*12 as 员工年薪 from emp order by 员工年薪;
查询所有员工的姓名与年薪 按年薪降序排序
select ename as 员工姓名,(sal+nvl(comm,0))*12 as 员工年薪 from emp order by 员工年薪 desc;
注:order by 排序默认采用升序排序,降序desc
查询所有姓名以s开头的用户员工
select ename from emp where ename like'S%';
注:like 模糊查询%通配符 代表任意长度。 _通配符代表一个字符长度。
查询所有没有奖金的员工姓名
select ename from emp where comm is null;
查询工资最高的员工姓名与工资
select ename,sal from emp where sal=(select max(sal) from emp);
select max(sal) from emp; //条件
查询所有员工的工资和奖金总和 一个月的
select sum(sal+nvl(comm,0)) as 工资与奖金总和 from emp;
查询工资最低的是多少钱
select min(sal) from emp;
查询员工平均工资是多少 avg
select avg(sal) from emp;
统计emp表中有多少员工 count
select count(ename) from emp;
保证统计准确
select count(*) from emp; 统计所有列
统计部门编号为10的员工数
select count(*) from emp where deptno='10';
查询每个部门平均工资和最高工资
select max(sal) as 最高工资,avg(sal) as 平均工资,deptno as 部门编号 from emp group by deptno;
注:如果要分组查询的话,分组的字段一定要出现在查询列表中
查询每个部门的每种岗位的平均工资和最低工资
select avg(sal),min(sal),job,deptno from emp group by deptno,job;
查询平均工资低于2000的部门编号和该部门的平均工资是多少
select avg(sal),deptno from emp group by deptno having avg(sal)<2000;
注:分组后不能使用where 需要使用having 添加分组后的查询条件
============================================================================================
多表查询
查询出员工编号为7566的员工姓名 工资 工作地点
select ename,sal,loc from emp,dept where empno=7566 and dept.deptno=emp.deptno;
注:多表查询时条件必须得有表个数-1个条件
查询部门编号为10的部门名、员工名和工资
select dname,ename,sal from dept,emp where dept.deptno=10 and emp.deptno=dept.deptno;
- Oracle查询案例.txt
- oracle 经典查询案例
- Oracle复杂查询案例
- Oracle 全文检索测试案例.txt
- Oracle数据库高级查询案例
- Oracle 查询 包括高级查询案例
- 在txt文件里进行查询(winform案例简单)
- Oracle数据库高级查询 -- 案例集锦
- oracle的spool导出查询数据到txt脚本
- oracle根据字段值查询所有表及其字段.txt
- Oracle Sqlplus查询结果导出成Excel、txt、html
- JAVA查询Oracle数据库导出成txt文本
- Oracle将查询结果保存到文本txt中
- Oracle百万数据的分页查询和测试案例
- Oracle查询优化改写技巧与案例上架了
- oracle索引导致的查询记录为0的案例
- Oracle查询多个字段行转列处理实践案例
- Oracle数据库高级查询(四)子查询和连接查询的综合案例
- JSP内置对象(9个常用的内置对象)
- 第一次来到这里,感觉真好
- First
- Look and say 源码分析
- Oracle 表管理
- Oracle查询案例.txt
- c语言
- 稀里糊涂
- 通俗易懂论同步与异步
- Android的OpenGL学习笔记(5)
- Hello
- 数据结构
- 也许迷茫也未必不好!~
- Mysql的用法.[网络收集]