Oracle数据库学习---查询语句

1、简单查询语句
select 查询内容(*代表所有或是使用字段名,字段名用逗号隔开) from 表名
    select * from emp;
    select empno,ename,job from emp;
使用算数运算符
select ename,sal*12,comm*12+2000 from emp;
使用别名
select ename 员工姓名,sal 工资,comm 奖金 from emp;使用别名可以之间书写
select sal "工资",comm as 奖金 from emp;不要使用单引号,但是可以使用双引号和as
select ename "员工   姓名" from emp;在别名中有空格和特殊字符的时候使用双引号
2、使用连接符”||”
使用连接符可以将不同字段及普通字符串连接成一个字符串,但是普通字符使用单引号括起来
select ename,job,hirebate from emp;
select ename||'的工作是'||job||'入职日期是'||hiredate from emp;
3、去除重复及排序
使用distinct关键字去除重复值,多字段会组合去除重复值
select deptno from emp;
select distinct deptno from emp;
使用order by 字段名 进行排序,默认为升序,后面加关键字desc则为降序,多条件则按执行顺序排序
可以使用别名进行排序,也可以使用算术表达式排序
select distinct deptno,job from emp order by deptno desc;
select distinct deptno,job from emp order by job,deptno;
select distinct deptno,job from emp order by deptno asc;
select ename,sal*12,comm from emp order by sal*12;
select ename,sal*12 年薪,comm from emp order by 年薪;
4、使用where指定条件查询
在使用条间的时候,字段是不区分大小写的,但是字段值是区分大小写的
select * from emp where job='MANAGER';
select ename,sal from emp where job = 'MANAGER';
select * from emp where sal>2000;
字段值都用单引号括起来
select * from emp where sal='2450';
select * from emp where sal<>'2450' order by sal;
日月年,对于日期条件可以使用指定的格式来进行筛选。除此以外还可以使用函数
select * from emp where hiredate >'17-12月-1981'
5、关键字
查询工资在2000-3000之间的员工信息
**使用and关键字将多个查询条件联系起来**
select * from emp where sal>=2450 and sal<=3000;
**闭区间**
select * from emp where sal between 2450 and 3000;
查询岗位为SALESMAN,MANAGER,ANALYST的员工信息
**使用or关键字**
select * from emp where job='SALESMAN' or job='MANAGER'or job='ANALYST' order by job
**使用in关键字**
select * from emp  where job in('SALESMAN','MANAGER','ANALYST');
查询名字以s开头,包括s,以s结尾,第二个字符为s的员工信息
**%表示任意个数的字符**
select ename from emp where ename like 'S%';
select ename from emp where ename like '%S';
select ename from emp where ename like '%S%';
**下滑线表示任意一个字符**
select ename from emp where ename like '_M%';
**使用转译字符让_具备字符含义 escape**
select ename from emp where ename like '%M_%' escape 'M'
查询没有津贴的员工信息
select * from emp where comm  is null;
select * from emp where comm  is not null;
where执行条件的顺序,and的级别要比or高,但是我们可以使用小括号来更改执行级别;
select * from emp where job='SALESMAN' or job='ANALYST' and sal>2000;
select * from emp where (job='SALESMAN' or job='ANALYST') and sal>2000;
select * from emp where job='SALESMAN' or (job='ANALYST' and sal>2000);
6、使用函数
使用函数 单行函数,多行函数,转换函数,其他函数
6.1单行函数,函数不会改变原始数据的值,改变的是查询结果.操作的数据是每行数据
单行函数:字符函数
**INITCAP首字母大写**
select empno, INITCAP(ename),job from emp;
**lower转换小写,upper转换大写**
select lower(ename),upper(job),sal,deptno from emp;
**concat字符链接**
select concat(ename,job) from emp;
使用伪表,使用数值函数
select 10*10,3+8 from dual;
**日期函数**
select abs(-11),floor(45.8),round(45.6),sqrt(9) from dual;
select MONTHS_BETWEEN('02-11月-2016','02-9月-2016') from dual;
6.2多行函数 max min sum avg count,使用频率较高
**max 最大 min 最小 sum 求和 avg 平均 count 统计**
select max(sal),sum(comm) from emp;
select max(ename) from emp;
select max(sal),min(sal),sum(sal),avg(sal) from emp;
select max(sal),min(sal),sum(sal),sum(sal)/count(*) from emp;
count函数学习:count(*)统计表中的行数,count(字段名)统计的是有效数据个数,可以使用distinct关键字去除重复数据
select count(*),count(comm),count(distinct deptno) from emp;
**多行函数不能和普通字段一起出现在查询语句中,除非 group by**
select sum(sal),ename from emp;
**多行函数不能和单行函数一起出现在查询语句中,除非group by**
select sum(sal),lower(ename) from emp;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值