oracle 表查询(经典例子)--2017-08-19
来源:互联网 发布:淘宝号为什么被冻结 编辑:程序博客网 时间:2024/06/05 21:55
( 经典的练习题 作为新手也是去练习 和理解思路)
利用scott用户存在的几张表(emp,dept)为大家演示如何使用select语句,select语句在软件编程中非常有用!
部门表(dept)
№
名称
类型
描述
1
DEPTNO
NUMBER(2)
表示部门编号,由两位数字所组成
2
DNAME
VARCHAR2(14)
部门名称,最多由14个字符所组成
3
LOC
VARCHAR2(13)
部门所在的位置
员工表(emp)
№
名称
类型
描述
1
EMPNO
NUMBER(4)
雇员的编号,由四位数字所组成
2
ENAME
VARCHAR2(10)
雇员的姓名,由10位字符所组成
3
JOB
VARCHAR2(9)
雇员的职位
4
MGR
NUMBER(4)
雇员对应的领导编号,领导也是雇员
5
HIREDATE
DATE
雇员的雇佣日期
6
SAL
NUMBER(7,2)
基本工资,其中有两位小数,五倍整数,一共是七位
7
COMM
NUMBER(7,2)
奖金,佣金
8
DEPTNO
NUMBER(2)
雇员所在的部门编号
一,查看表结构
desc emp;1,查询所有列
select * from emp;
切忌动不动就用select *
set timing on; 打开显示操作时间的开关,可以在下面显示查询时间。
在数据多的时候 可以查看语句的查询速度(好的查询语句可以更好更快的进行查询)
2,查询制定列
select ename, sal, job, deptno from emp;
取消重复行distinct
select distinct deptno, job from emp;查询SMITH所在部门,工作,薪水
select deptno,job,sal from emp where ename = 'SMITH';注意:oracle对内容的大小写是区分的,所以ename='SMITH'和ename='smith'是不同的
问题:如何显示每个雇员的年工资?
select sal*13+nvl(comm, 0)*13 "年薪" , ename, comm from emp;
3,使用列的别名
select ename "姓名", sal*12 AS "年收入" from emp;4,如何处理null值
使用nvl函数来处理
如何连接字符串(||)
select ename || ' is a ' || job from emp;5,使用where字句
问题:如何显示工资高于3000的 员工?
SELECT * FROM emp WHERE sal > 3000;问题:如何查找1982.1.1后入职的员工?
SELECT ename,hiredate FROM emp WHERE hiredate >'1-1月-1982';
6,如何使用like操作符
%:表示0到多个字符 _:表示任意单个字符
问题:如何显示首字符为S的员工姓名和工资?
SELECT ename,sal FROM emp WHERE ename like 'S%';如何显示第三个字符为大写O的所有员工的姓名和工资?
SELECT ename,sal FROM emp WHERE ename like '__O%';
问题:如何显示empno为7844, 7839,123,456 的雇员情况?
SELECT * FROM emp WHERE empno in (7844, 7839,123,456);使用is null的操作符
问题:如何显示没有上级的雇员的情况?
错误写法:
select * from emp where mgr= '';正确写法:
SELECT * FROM emp WHERE mgris null;8,使用逻辑操作符号 问题:查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J?
SELECT * FROM emp WHERE (sal >500 or job = 'MANAGER') and ename LIKE 'J%';
9,使用order by 字句 默认asc
问题:如何按照工资的从低到高的顺序显示雇员的信息?
SELECT * FROM emp ORDER by sal; ,
问题:按照部门号升序而雇员的工资降序排列
SELECT * FROM emp ORDER by deptno, sal DESC;
select ename, (sal+nvl(comm,0))*12 "年薪" from emp order by "年薪" asc;(别名需要使用“”号圈中,英文不需要“”号 )
- oracle 表查询(经典例子)--2017-08-19
- oracle中与分组函数有关的多表查询的经典例子
- Oracle查询表空间使用情况(经典篇)
- oracle 递归查询例子
- oracle常用经典SQL查询(转载)
- Oracle SQL:经典查询练习(3)
- oracle 经典查询案例
- Oracle经典sql查询
- oracle 经典查询 之一
- Oracle 经典查询语句
- oracle经典查询练手
- Oracle之经典查询
- Oracle学习之路(二):oracle多表查询+分组查询+子查询讲解与案例分析+经典练习题
- Oracle SQL语句查询例子
- oracle 树形 sql查询例子
- oracle 递归查询的例子
- ORACLE 聚合查询小例子
- 数据库SQL查询的经典例子
- const
- 外部过滤器,程序和命令--时间/日期 命令
- 树状数组(一维)
- 一维数组初始化
- (HDU
- oracle 表查询(经典例子)--2017-08-19
- 暑假总结第17天
- Opencv Sift算子特征提取与匹配
- Python:numpy中dot,outer,*用法
- 欢迎使用CSDN-markdown编辑器
- ACM暑假集训日记 17.8.18 树状数组
- 软件包管理:rpm和yum
- hdu 5862(离散化+树状数组)
- linux IPC --- 有名信号量详解