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

本文实例讲述了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程序设计有所帮助。 ad51e517755f8fd6a7ec83ced4ecfaf3.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值