欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle中scott表结构与简单查询实例分析

程序员文章站 2023-01-23 09:33:36
本文实例讲述了oracle中scott表结构与简单查询的方法。分享给大家供大家参考。具体分析如下: 1、scott用户的表的结构 查看表结构 desc 表名;//de...

本文实例讲述了oracle中scott表结构与简单查询的方法。分享给大家供大家参考。具体分析如下:

1、scott用户的表的结构

查看表结构

desc 表名;//desc emp;
emp表:
sql> desc emp;
名称 是否为空? 类型
----------------- -------- ------------
empno not null number(4) 雇员编号
ename varchar2(10) 雇员姓名
job varchar2(9) 雇员职位
mgr number(4) 对应领导编号
hiredate date 雇用日期
sal number(7,2) 基本工资
comm number(7,2) 奖金,佣金
deptno number(2) 部门编号

dept表:
sql> desc dept;
名称 是否为空? 类型
----------------- -------- ------------
deptno not null number(2) 部门编号
dname varchar2(14) 部门名称
loc varchar2(13) 部门所在位置

salgrade表:
sql> desc salgrade;
名称 是否为空? 类型
----------------- -------- ----------
grade number 工资等级
losal number 此等级最高工资
hisal number 此等级最高工资

bonus表:
sql> desc bonus;
名称 是否为空? 类型
----------------- -------- ------------
ename varchar2(10) 雇员姓名
job varchar2(9) 雇员职位
sal number 雇员工资
comm number 雇员奖金

2、简单查询

1.查询不重复的职位

select distinct job from emp;

2.查询年薪,起别名,别名不要用单引号括起来

select sal*12 [as] income from emp;

3.简单查询中可以使用"||"连接查询的字段

select empno ||','|| ename from emp;

sql语句中的字符串用单引号表示
select '雇员编号是:'||empno||'姓名是:'||ename||'工资为:'||sal||'职位是:'||job||'!' 雇员信息 from emp;

4.在oracle中数据时区分大小写的

select * from emp where job ='clerk';

查询不是办事员的雇员信息

select * from emp where job!='clerk'; 
select * from emp where job<>'clerk';
select * from emp where not job='clerk';

5.between ……and 大于等于 小于等于

select * from emp where sal between 1500 and 3000; 

也可以求反

select * from emp where sal not between 1500 and 3000;

也可以是日期

select * from emp where hiredate between '01-1月 -1981' and '31-12月 -81';

6. 判断是否为空is(not)null

select * from emp where comm is not null; 
select * from emp where not comm is null;

7.in操作符

select * from emp where empno in (7521,7844,5555);
select * from emp where empno not in (7521,7844,5555);

关于not in
如果现在使用了in操作符,查询范围之中存在了null,不影响查询

select * from emp where empno in (7521,7844,null);

如果现在使用的是not in操作符,如果查询范围之中有了null,则不会有任何的结果返回

select * from emp where not empno in (7521,7844,null);
select * from emp where empno not in (7521,7844,null);

8.like子句

匹配符号:
匹配单个字符: _ 0个
匹配任意多个字符:% 0个、一个、多个
查询全部以字母"a"开头的雇员

select * from emp where ename like 'a%';

查询第二个字母为"a"的雇员

select * from emp where ename like '_a%'; 

查询含有字母为"a"的雇员

select * from emp where ename like '%a%'; 

查询不含有字母为"a"的雇员

select * from emp where not ename like '%a%'; 
select * from emp where ename not like '%a%';

like '%%' 表示查询全部数据

select * from emp where empno like '%%'

9.数据的排序

order by 字段 [asc|desc][,字段 [asc|desc]……];

order by子句必须在where子句之后,在所有sql语句最后
排序的时候可以指明多个排序字段
排序方式有两种:默认(asc)升序 、desc(降序)
按照工资进行排序

select * from emp order by sal desc;

先按工资排序,再按照雇佣日期排序

select * from emp order by sal desc,hiredate;

希望本文所述对大家的oracle程序设计有所帮助。