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

来源:互联网 发布:php在线考试系统源码 编辑:程序博客网 时间:2024/05/22 07:03

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;不要使用单引号,但是可以使用双引号和asselect 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;
原创粉丝点击