Oracle基本查询

本例的操作前期都在控制台完成,后期会使用客户端。

 1 SQL> --设置行宽
 2 SQL> show linesize
 3 linesize 80
 4 SQL> set linesize  150
 5 SQL> --设置列宽
 6 SQL> col ename format a8
 7 SQL> col sal for 9999
 8 //col是column的缩写,代表列,在sqlplus中比sql方便的是支持缩写
 9 //for是format的缩写,
10 //a代表一个符号位,8代表长度
11 //9代表一个数字符号位,9999代表该列的列宽为4个数字长度
1 SQL> --查询员工信息:员工号 姓名 月薪 年薪 奖金 年收入
2 SQL> select empno,ename,sal,sal*12,comm,sal*12+comm
3 //可以直接在语句中进行计算
 1 /*
 2 SQL> SQL中的null值:
 3 SQL> 1. 包含null的表达式都为null
 4 SQL> 2. null永远!=null
 5 SQL> *、
 6 SQL> */
 7 SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)
 8 在实际使用的过程中,如果 某个表达式包含空值,那么这个表达式的结果也为null;
 9 不能通过=号来判断数据是否为空,应该用is
10 错误: where comm=null;
11 正确:where comm is null;
 1 NVL(a,b)
 2 nvl函数表示如果a为空,那么取值为b,不为空,取原值。
 3 例如:
 4 SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)
 5   2  from emp;
 6 拓展:
 7 SQL> ed
 8 使用默认的记事本软件打开上一条sql语句进行编辑
 9 保存关闭后
10 SQL> /
11 使用/来执行保存的语句,也就是执行上一条语句
1 去除重复
2 SQL> --distinct 去掉重复记录
3 SQL> select deptno from emp;有重复
4 SQL> select distinct deptno from emp;没有重复
5 去重两个作用与两个列
6 SQL> select distinct deptno,job from emp;
7 上一行的语句意思是:去除部门号和职位都相同的数据
8  
 1 SQL> --连接符 ||
 2 SQL> -- concat
 3 SQL> select concat(‘Hello‘,‘  World‘) from dual;
 4 CONCAT(‘HELL
 5 ------------
 6 Hello  World
 7 SQL> --dual表:伪表
 8 dual是数据库提供的伪表,要查询的操作不属于任何的表时,就需要使用此表进行占位。
 9 SQL> select 3+2 from dual;
10        3+2
11 ----------
12          5                                                                                                                                            SQL> select ‘Hello‘||‘  World‘  字符串 from dual;
13 字符串
14 ------------
15 Hello  World
16 SQL> --查询员工信息:***的薪水是****
17 SQL> select ename||‘的薪水是‘||sal 信息 from emp;
18 信息
19 ----------------------------------------------------------
20 SMITH的薪水是800 
时间: 2024-07-29 13:10:24

Oracle基本查询的相关文章

数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲> 数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例 实验所用数据表 子查询,解决一步不能求解 查询工资比scott高的员工信息: 子查询知识体系搭建: 解释3,查询部门是sales的员工信息: 方法1:子查询 [方法2]:多表: 优化考虑: 解释4[select],只能放单行子查询 解释4[from] 考题:显示员工姓名,薪水 解释

【Oracle 常用查询】oracle表空间使用率统计查询

参考1 --查询表空间使用情况 SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '

Oracle 模糊查询方法

在这个信息量剧增的时代,如何帮助用户从海量数据中检索到想要的数据,模糊查询是必不可少的.那么在Oracle中模糊查询是如何实现的呢? 一.我们可以在where子句中使用like关键字来达到Oracle模糊查询的效果:在Where子句中,可以对datetime.char.varchar字段类型的列用Like关键字配合通配符来实现模糊查询,以下是可使用的通配符: (1)% :零或者多个字符,使用%有三种情况 字段 like '%关键字%'字段包含"关键字"的记录 字段 like '关键字%

oracle 层次化查询(生成菜单树等)

1.简介:Oracle层次化查询是Oracle特有的功能实现,主要用于返回一个数据集,这个数据集存在树的关系(数据集中存在一个Pid记录着当前数据集某一条记录的Id). 2.层次化查询主要包含两个子句,一个start with另一个是connect by. start with:这个子句一般用于指定层次化查询的开始节点(也就是树的最顶级节点),找到最顶级节点,然后按照一定的规则开始查找其剩余的子节点 connect by:这个子句就是上面所说的规则,用于查找剩余子节点的规则 CREATE TAB

Oracle分页查询语句的写法(转)

分页查询是我们在使用数据库系统时经常要使用到的,下文对Oracle数据库系统中的分页查询语句作了详细的介绍,供您参考. Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用.Oracle分分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHER

ORACLE 分页查询

Oracle之分页查询 Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40和RN >= 21控制分页查询的每页的范围.

Oracle生成查询包含指定字段名对应的所有数据表记录语句

应用场合:已知字段名字,查询数据库中所有数据表中包含该字段名的所有数据表 操作办法:指定字段名,数据库表用户,执行下面查询语句即可 --Oracle生成查询包含指定字段名对应的所有数据表记录语句 declare mycolumnname VARCHAR(255):='userid';--定义要查询的字段名变量,运行前修改成您要查询的字段名myownername VARCHAR(255):='system';--定义要查询的数据库用户名变量,运行前修改成您要查询的数据库用户名mystring NV

Oracle单行查询

单行查询也叫作单行函数,使用某个函数对数据进行操作 关于基本查询:oracle基本查询 1 SQL> select lower('Hello WOrld') 转小写, 2 upper('Hello WOrld') 转大写, 3 initcap('hello world') 首字母大写 4 2 from dual; 5 6 7 SQL> --substr(a,b)取子串, 从a中,第b位开始取 ,直到末尾 8 SQL> select substr('Hello World',3) 子串 f

oracle 分页查询数据重复问题

最近在做项目的时候发现一个问题,oracle 在查询分页数据的时候,有几条数据重复查询了,并且有几条数据在分页的时候消失了.百度了一下发现,ORACLE 在查询数据的时候返回的行不是固定的,他只是按照顺序从数据中读取符合条件的数据返回到客户端,给用户误解为默认排序. 然而,当我加上排序的时候,还是查询有重复的数据,(指第一页数据在第二页也查询出来了),这是我就疑问了,当我检查数据的时候,发现我排序的字段有空的情况,而且有很多条,导致排序返回的 伪列并不是唯一的. 总结: oracle 分页查询数

oracle分页查询结果集重复问题&解决方法

做项目时,无意间发现了分页上的一个bug,在此记录一下: 首先手动将后台输出的sql语句复制进oracle中查看,以便排查错误,对比以下视图前10条的结果集与10到20条的结果集,发现大部分记录出现重复现象,SQL语句如下: --前10条记录 select *   from (select row_.*, rownum rownum_           from (select t.idcard, count(1)                   from sampling.v_unvou