Oracle数据库之四 简单查询

四、简单查询

? 简单查询的主要特征就是将一张数据表之中的全部数据行进行显示,而后可以利用 SELECT 子句来控制所需要的输出列。

4.1、基础语法

范例:查询 emp 表中的数据(全部数据查询)

SELECT * FROM emp;

? 在取得全部数据后,可以发现某些列上会显示 null 的信息,null 表示的是没有内容,但 null != 0 , null 指的是暂时未知的内容。

  • 简单查询语句语法:
SELECT [DISTINCT] * | 列名称[AS][列别名],列名称[AS][列别名],...
FROM 表名称[表别名];

? 在整个简单查询之中,主要有两个句子完成:

? SELECT 子句:在这个子句里面存在如下内容:

? * : 表示查询所有的数据列;

? 列名称:表示要显示的指定列,列也可以设置别名 ;

? DISTINCT:表示去除重复数据的显示。

? FROM 子句:定义要使用的数据表,就可以理解为数据来源。

范例: 查询每个雇员的编号、姓名、基本工资 三个信息进行浏览。

SELECT empno, ename, sal
FORM emp;

?

关于执行顺序问题,这两个子句的执行顺序:

? 第一步:执行 FROM 子句,表示确定数据来源

? 第二步:执行 SELECT 子句,确定要显示的数据列

4.2、其他的查询操作

? 范例 :现在要查询公司中所有雇员的职位信息

SELECT job FROM emp;       # 职位会有重复

SELECT DISTINCT job FROM emp;     # 去除重复数据

? 虽然使用 DISTINCT 可以消除全部的重复数据,但是只局限于所有列的内容全部相同的情况,如果在以上查询中多增加一个 empno 字段,

SELECT DISTINCT empno,job FROM emp; 

? 会发现所有数据都显示了,因为每个编号所对应的职位都是唯一的,不同的,所以 DISTINCT 只能用于全部内容相同时。

? 除了以上的基本查询之外,简单查询之中的 SELECT 子句里面也支持四则运算。

范例 :要求通过数据库查询出所以雇员的编号、雇员姓名和年基本工资、日基本工资,以作为年终奖金的发放标准

SELECT empno,ename,sal*12,sal/30
FROM emp;

? 年薪=月薪*12、 日薪=月薪/30

? 出现的结果有小数,对于小数部分的处理,留给后面的单行函数完成。

范例:现在公司每个雇员在年底可以领取 5000 的年终奖,要求查询雇员编号、雇员姓名和增长后的年基本工资(不包括佣金)

SELECT empno,ename,sal*12+5000
FROM emp;

范例:公司每个月为雇员增加 200 元的补助金,此时查询每个雇员的雇员编号、姓名、年基本工资

SELECT empno,ename,(sal+200)*12+5000
FROM emp;

? 出现结果的表中 (sal+200)*12+5000 意思不明确,可以起别名 年薪

SELECT empno,ename,(sal+200)*12+5000 年薪
FROM emp;

? 在进行别名设置时,也可以使用一个 AS 进行设置操作。

SELECT empno,ename,(sal+200)*12+5000 AS 年薪
FROM emp;

? 此处是否加上 AS 对于最终的结果没有任何区别,但是必须提醒读者的是,如果进行别名的设置,如果在程序之中肯定是没用的,那么显示中用处也不大,而且要记住,不要使用中文,现在是刚接触,可以使用中文,等将来学到程序时,是一定要回避中文的!

范例:为查询结果设置别名

SELECT empno AS 雇员编号,ename AS 雇员姓名,(sal+200)*12+5000 AS 年薪
FROM emp;

? 此时有个新问题,给出的年薪是什么样的年薪?所以希望可以输出一个标识,下面直接输出一个人民币标识。

SELECT empno AS 雇员编号,ename AS 雇员姓名,(sal+200)*12+5000 AS 年薪,'¥' AS 货币
FROM emp;

? 查询结果中这个货币的标识实际上就是一个字符串常量,常量都使用直接输出的方式定义。

范例:使用 "||" 进行连接显示

? 在进行简单查询的时候,可以直接使用 “||” 进行字符串或者列数据的连接操作。

? 先观察连接:

SELECT empno || ename FROM emp;

? 结果显示,雇员编号和名字连在一起了。

SELECT '编号是:' || empno || ' 的雇员信息是:' || ename || '基本工资是:' || sal 雇员信息
FROM emp;

? “雇员信息” 是设置的整个表的标题名称。

说明:本学习资料是根据李兴华的Oracle开发实战经典整理

原文地址:https://www.cnblogs.com/duncan1863/p/11423338.html

时间: 2024-08-06 03:50:49

Oracle数据库之四 简单查询的相关文章

ASP.NET操作ORACLE数据库之模糊查询

ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 1 //连接Oracle数据库的连接字符串 2 string connectionString = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) 3 (HOST=localhost) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=TestDB)))

oracle数据库的高级查询方法 多表联合查询

oracle查询 一,简单查询 order by 1,2 select t.sno, t.sname, t.ssex from STUDENT t order by 1,2,3 group by 增强版 SELECT p.toma, p.ptype, SUM(p.lastcou) FROM product p GROUP BY rollup(p.toma, p.ptype) 二,高级查询(多表连接查询) 笛卡尔积的概念: 所谓笛卡尔积,通俗点说就是指包含两个集合中任意取出两个元素构成的组合的集合

MSSQL之四 简单查询

作为数据库开发人员,你需要因各种目的经常抽取数据,例如创建报表.你可以使用SQL查询从数据库服务器抽取数据. 本章解释如何通过执行SQL查询从数据库表中抽取选择的数据.进一步,讨论如何使用函数以自定义查询返回的数据值.而且,本章解释如何从数据库表中抽取汇总和分组的数据 重点 ?        数据库中的数据类型 ?        使用数据库中自带的函数处理结果集 ?        用select语句从数据库表中抽取数据 ?        掌握分组查询 预习功课 ?          数据库中数据

一起ORACLE数据库中数据查询结果不一致问题的排查过程

一.问题描述 在某软件开发项目中,需要在ORACLE数据库中建立十张类型相同的员工信息表tb_employeeinfo0~tb_employeeinfo9,并建立向这十张表中插入数据的存储过程.ORACLE数据库安装在Linux操作系统下. 为了操作上的方便性,开发人员在PL/SQL Developer软件(ORACLE数据库开发软件)上实现了建表和建存储过程的操作.之后,开发人员利用SQL语句在在PL/SQL Developer软件上实现了向某个数据表中插入数据的操作.利用select语句查询

Oracle数据库锁表查询以及解锁进程

Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容. 锁表查询的代码有以下的形式: select count(*) from v$locked_object; select * from v$locked_object; 查看哪个表被锁 1.select b.owner,b.object_name,a.session_id,a.locked_mode 2. from v$locked_object a,dba

Oracle数据库——SQL高级查询

一.涉及内容 1.掌握SELECT语句的多表连接查询. 2.掌握SELECT语句的子查询. 二.具体操作 (一)根据Oracle数据库scott方案下的emp表和dept表,完成下列操作: 1.查询所有工种为CLERK的员工的姓名及其部门名称. select ename,dname from scott.emp t1 inner join scott.dept t2 on t1.deptno=t2.deptno where job='CLERK'; 2.查询所有部门及其员工信息,包括那些没有员工

Oracle数据库锁表查询

--查看数据库最大连接数 select value from v$parameter where name = 'processes'; --更改数据库连接数 alter system set processes = 3000 scope = spfile; --查看被锁的表 select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id

Oracle数据库常用经典查询

本文收集了常用的数据库查询,需要数据库管理员权限: 1. 查询临时表空间使用情况 SELECT TABLESPACE_NAME, TABLESPACE_SIZE / 1024 / 1024 TABLESPACE_SIZE_MB, ALLOCATED_SPACE / 1024 / 1024 ALLOCATED_SPACE_MB, FREE_SPACE / 1024 / 1024 FREE_SPACE_MB, TO_CHAR((1 - FREE_SPACE / TABLESPACE_SIZE) *

Oracle数据库的状态查询

1 状态查询 启动状态 SQL语句 结果 nomount select status from v$instance; STARTED select open_mode from v$database; ERROR at line 1: ORA-01507: database not mounted mount select status from v$instance; MOUNTED select open_mode from v$database; MOUNTED open select