所谓的查询就是关于select的语句,select是SQL语言的基础,最为重要。在我们讲解的过程中我们利用scott用户存在的几张表(emp,dept)为大家演示如何使用select语句,select语句在软件编程中非常有用,希望大家好好的掌握。
以下为常用的查询语句和相对应的代码及效果截图:
1、查看表结构(命令窗口)
desc emp;
2、查询所有列
select * from dept;
3、统计行数
select count (*) from dept;
4、查询指定列
select ename, sal, job, deptno from emp;
5、如何取消重复行distinct
select distinct deptno, job from emp;
6、使用算术表达式 nvl null
问题:如何显示每个雇员的年工资?
select sal*13+nvl(comm, 0)*13 "年薪" , ename, comm from emp;
7、使用列的别名(as 可省略)
select ename "姓名", sal*12 as "年收入" from emp;
8、如何处理null值——使用nvl函数来处理
例:–5.查询员工的姓名及其经理编号,要求对于没有经理的显示“No Manager”字符串。
select last_name,nvl(to_char(manager_id),'No Manager') from employees;
9、如何连接字符串(||)
select ename || ' is a ' || job from emp;
10、使用where子句
问题:如何显示工资高于3000的 员工?
select * from emp where sal > 3000;
问题:如何查找1982.1.1后入职的员工?
select ename,hiredate from emp where hiredate >'1-1月-1982';
问题:如何显示工资在2000到3000的员工?
select ename,sal from emp where sal>=2000 and sal <= 3000;
查询SMITH所在部门,工作,薪水
select deptno,job,sal from emp where ename= 'SMITH';
注意:oracle对内容的大小写是区分的,所以ename='SMITH’和ename='smith’是不同的,如果需要转换则需要借助字符控制函数upper(转大写)和lower(转小写)。
11、如何使用like操作符
%:表示0到多个字符 _:表示任意单个字符
问题:如何显示首字符为S的员工姓名和工资?
select ename,sal from emp where ename like 'S%';
问题:如何显示第三个字符为大写O的所有员工的姓名和工资?
select ename,sal from emp where ename like '__O%';
12、在where条件中使用in
问题:如何显示empno为7844, 7839,123,456 的雇员情况?
select * from emp where empno in (7844,7839,123,456);
in后面的括号里是数字可以省略英文单引号,若是字符串则要加上英文单引号
13、使用is null的操作符
问题:如何显示没有上级的雇员的情况?
错误写法:select * from emp where mgr = ' ';
正确写法:select * from emp where mgr is null;
14、使用逻辑操作符号
问题:查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J?
select * from emp where (sal >500 or job= 'MANAGER') and ename like 'J%';
15、使用order by子句
默认升序:asc(可省略不写),降序:desc(不可省略)
问题:如何按照工资的从低到高的顺序显示雇员的信息?
select * from emp order by sal;
问题:按照部门号升序而雇员的工资降序排列
select * from emp order by deptno, sal desc;
注:(当两个条件一起排序时,默认执行顺序是从左往右,即先排序第一个,后面的效果不明显)
(也可以order by 1, 2;其中1默认代表第一列,2代表第二列,以此类推。)
使用列的别名排序
问题:按年薪排序
select ename, (sal+nvl(comm,0))*12 "年薪" from emp order by "年薪" asc;
别名是中文需要使用“”号圈中,英文不需要“”号。