表基本查询用 PL/SQL 的 scott 用户自带的四个表,选用两个表进行练习。
-
雇员表 emp
emp表 -
部门表 dept
dept表
一、简单查询
- 查看表结构
desc dept;
- 查看所有列 ( 如果是大量数据,不推荐使用此查询命令 )
select * from dept;
- 查询指定列 ( 如果是大量数据,推荐使用此查询命令 )
select userId from users;
- 打开显示操作时间
set timing on;
- 复制多个数据
create table users(userid varchar2(20),username varchar2(30),userpssvarchar2(30));//先创建一个users表
insert into users values('a001','哈哈哈哈哈啊飒飒','qwert12345');//插入一条数据
insert into users values(userid,username,userpss) select * from users;//复制刚刚插入的数据,可以多次复制
- 查看多少行数据
select count (*) from users;
- 取消重复行
select distinct deptno,job from emp; //取消deptno 和 Job 所出现的重复行
- 查询 SMITH 的薪水,工作,所在部门。
(oracle对类大小写有区分,对sql语句不区分)
select sal,job,deptno from emp where ename = 'SMITH';
- 显示每个雇员的年工资
select sal*12,ename from emp;
- 使用列的别名
select sal*12 "年工资",ename from emp;
- 处理 null 值,使用 nvl
员工 12 个月的总共的工资+奖金(因为奖金有些人会出现空值)
select sal*12+nvl(comm,0)*12 "年工资",ename,comm from emp;
二、where语句
- 显示工资高于 3000 的员工
select ename,sal from emp where sal>3000;
- 显示入职日期,在某年某月入职得员工
select ename,hiredate from emp where hiredate>='1-1月-1980';
- 显示多条件时,用and来连接条件,比如:显示工资到 2000 到 2500 之间得员工。
select ename,sal from emp where sal>=2000 and sal<2500;
三、like 操作符
% :表示任意0个到多个字符
_ :表示任意单个字符
- 显示首字母为 S 的员工,工资
select ename,sal from emp where ename like 'S%';
- 显示第三个字符为 O 的所有员工,工资
select ename,sal from emp where ename like '__O%';
四、where语句中 in 表达
- 显示员工 empno 中 7499,7521,7788,7900员工的情况
select * from emp where empno in (7499,7521,7788,7900);
五、is null 语句
- 显示没有上级的雇员信息
select * from emp where MGR is null;
六、逻辑符号
或:or
和:and
- 查询工资高于 500 或是岗位为 MANGER 的雇员,同时还要满足他们的姓名首字母为大写的 J
select * from emp where (sal>500 or job='MANGER') and ename like 'J%';
七、order by 语句
升序,由低到高:order by 默认排序 或 asc
降序,由高到低:desc
- 按照雇员的工资由低到高显示雇员的信息
select * from emp order by sal;
- 按照部门号升序,工资降序显示雇员信息
select * from emp order by deptno asc,sal desc;
- 按照部门号升序,工资降序显示雇员信息,同时按照入职时间降序
select * from emp order by deptno,sal desc,hiredate desc;
- 使用列的别名进行排序
select ename,sal*12 as "年薪" from emp order by "年薪";
网友评论