本文实例讲述了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程序设计有所帮助。
问题内容: 我目前在理解和编写递归查询时遇到一些麻烦。我知道递归查询用于搜索信息层次结构,但是我还没有找到一个可以遍历层次结构的简单在线解决方案。例如,假设我有一个对家谱建模的关系: 如果我想编写一个遍历此家谱的递归查询,收集所有父母直到出生,我该如何处理? 提前致谢。 问题答案: 您可以使用子句。 在您的情况下,SQL可能类似于:
本文向大家介绍Oracle SQL树形结构查询,包括了Oracle SQL树形结构查询的使用技巧和注意事项,需要的朋友参考一下 oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是: 简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段: id,parentid那么通过
本文向大家介绍php+mysql查询优化简单实例,包括了php+mysql查询优化简单实例的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了php+mysql查询优化的方法。分享给大家供大家参考。具体分析如下: PHP+Mysql是一个最经常使用的黄金搭档,它们俩配合使用,能够发挥出最佳性能,当然,如果配合Apache使用,就更加Perfect了. 因此,需要做好对mysql的查询优化,下面
本文向大家介绍Java导出oracle表结构实例详解,包括了Java导出oracle表结构实例详解的使用技巧和注意事项,需要的朋友参考一下 Java导出oracle表结构实例详解 最近用到的,因为plsql是收费的,不让用,找了很多方法终于发现了这个。 核心语句 自己写的Java方法,未做封装。 config.properties 另外需要jdbc的Oracle驱动。 感谢阅读,希望能帮助到大家
本文向大家介绍Yii2.0表关联查询实例分析,包括了Yii2.0表关联查询实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Yii2.0表关联查询的方法。分享给大家供大家参考,具体如下: 你可以使用 ActiveRecord 来进行关联查询(比如,从A表读取数据时把关联的B表数据也一起读出来), 在Active Record中,获取关联数据可以像访问主表ActiveRecord对象的
本文向大家介绍Laravel框架查询构造器简单示例,包括了Laravel框架查询构造器简单示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Laravel框架查询构造器。分享给大家供大家参考,具体如下: 更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库