oracle数据库的简单查询语句

1、简单的查询语法

select [distinct] *| [as] [列别名],列名称 [as] [列别名]
from 表名称 [表别名]
[where 条件(s)]
[order by 排序的字段 | 列索引号 asc|desc,排序的字段2 asc|desc ...]...;
执行顺序:
1、先执行from子句,确定要检索数据的来源
2、执行where子句,使用限定符对数据进行过滤
3、执行select子句,确定要检索出的数据列
4、执行order by子句排序


distinct:去除重复的列,当查询两条记录的所有的列都相同时才会去除重复

实例:

--查询emp表中的数据
SELECT * FROM emp;
--查询出公司员工编号,姓名,工作
select empno,ename,job from emp;
--起别名
select job as jobs from emp;
--去除重复的行记录
select distinct job as jobs from emp;
--查询出年工资,每天的工资
select empno,ename,sal*12 Annual_salary,sal/30 day_salary
from emp;

2、select子句后面编写常量

1、字符串常量:使用"'"声明,如:"se"
2、数字常量:直接输出数字,如:4532
3、日期:
4、单引号:(')

实例:

--增加货币单位的常量
select empno as 雇员编号,ename as 雇员姓名,(sal+200)*12+5000 as 年薪,'¥' 货币 from emp;
--连接符||的使用
select '编号:' || empno||' 的雇员姓名是:'||ename 雇员信息 from emp;

3、限定查询
3.1常用的限定查询运算符

NO函数名称描述
关系运算符
,<,>=,<=,=,!=,<>
进行大小或相等的比较,不等于:!=和<>
判断nullis null,is not null判断某一列的内容是否为null
逻辑运算符and,or,notand:与,or:或,not:非
范围查询between最小值and最大值在指定范围内查找,查找结果为:最小值<=内容<=最大值
列表范围查询in通过in可以指定一个范围的查询
模糊查询like对字段进行模糊匹配

3.2 限定查询的实例

--工资高于1200的所有与员工的信息
select * from emp where sal >1200;
--查询出所有业务员(CLEARK)雇员的信息
select * from emp where job='CLERK'
--查询出10部门中的激励或者20部门中业务员的信息
select * from emp 
where (deptno=20 and job='CLEARK') OR (deptno=10 and job='MANAGER')
--查询出在1981年雇佣的全部雇员信息
select *
from emp
where hiredate between '01-1月-1981' and '31-12月-1981'
--查询出佣金不为空的信息
select *
from emp
where comm is not null;
select * 
from emp
where not comm is null;
--in的指定范围的查询
select * 
from emp
where empno in(7369,7788,7566);
--现在查询除了7369,7788,7566之外的雇员的信息
select * 
from emp
where empno not in(7369,7788,7566);

4、模糊查询like,not like
百分号(%):可匹配任意类型和长度(可以匹配0位,1位或多位长度)的字符
下划线(_):匹配单个任意字符,通常来限制表达式的字符长度
实例:

--查询出雇员姓名以S开头的所有雇员的信息
select * 
from emp
where ename like 'S%'
--查询出第二个字母是M的全部雇员信息
select * 
from emp
where ename like '_M%'
-- 查询出姓名中任意位置包含字母F的雇员信息
select * 
from emp
where ename like '%F%'
--找出10部门中所有的经理(MANAGER),部门20中所有的业务员(CLEARK),既不是经理又不是业务员但薪金大于2000元的所有员工的详细资料并且要求这些雇员的西宁中包含字母S或字母K
select * from emp
where ((deptno=10 and job='MANAGER')or (deptno=20 and job='CLERK')
or (job not in ('MANAGER','CLEARK')and sal >2000))
and(ename like '%S%' or ename like '%K%')

5、对结果进行排序

--排序的查询语句
select empno,ename,sal,job 
from emp
order by 3 desc
--order by sal desc

--按照工资由高到低排序,工资相等的话按照雇佣日期由早到晚进行排序
select * from emp
order by sal desc,hiredate asc;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值