四、简单查询

​ 简单查询的主要特征就是将一张数据表之中的全部数据行进行显示,而后可以利用 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开发实战经典整理

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

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

    ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 //连接Oracle数据库的连接字符串 string connect ...

  2. oracle数据库元数据SQL查询

    oracle数据库经典SQL查询 .查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from ...

  3. Oracle数据库的状态查询

    本文来源:huang_xw 的<Oracle数据库的状态查询> 1 状态查询 启动状态 SQL语句 结果 nomount select status from v$instance; ST ...

  4. Oracle数据库日期范围查询的两种实现方式

    参考文档:http://database.51cto.com/art/201108/288058.htm Oracle数据库日期范围查询有两种方式:to_char方式和to_date方式,接下来我们通 ...

  5. 关于oracle数据库 跨表查询建立 视图的方法

    工作中很多时候都会遇到需要将两个不同的表空间甚至数据库的表进行联合查询或者建立视图的情况. 不同的表空间查询我们可以通过在将要查询的表前面加上 表空间的对应的用户名来实现,如有两个表空间分别对应两个用 ...

  6. [转载]Oracle数据库基础--SQL查询经典例题

    Oracle基础练习题,采用Oracle数据库自带的表,适合初学者,其中包括了一些简单的查询,已经具有Oracle自身特点的单行函数的应用 本文使用的实例表结构与表的数据如下: emp员工表结构如下: ...

  7. 使用spring框架的JdbcTemplate实现对Oracle数据库的简单操作实例

    最近实现了一个小功能,针对Oracle数据库两张关联表进行查询和修改,因为比较简单,所以选择了spring框架里的JdbcTemplate.JdbcTemplate算是老古董了,是当年spring为了 ...

  8. Oracle数据库基础--SQL查询经典例题

    Oracle基础练习题,采用Oracle数据库自带的表,适合初学者,其中包括了一些简单的查询,已经具有Oracle自身特点的单行函数的应用 本文使用的实例表结构与表的数据如下: emp员工表结构如下: ...

  9. Oracle数据库——SQL高级查询

    一.涉及内容 1.掌握SELECT语句的多表连接查询. 2.掌握SELECT语句的子查询. 二.具体操作 (一)根据Oracle数据库scott方案下的emp表和dept表,完成下列操作: 1.查询所 ...

随机推荐

  1. jsp页面中将CST时间格式化为年月日

    引入: <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 格式化: ...

  2. C#2.0新增功能06 协变和逆变

    连载目录    [已更新最新开发文章,点击查看详细] 在 C# 中,协变和逆变能够实现数组类型.委托类型和泛型类型参数的隐式引用转换. 协变保留分配兼容性,逆变则与之相反. 以下代码演示分配兼容性.协 ...

  3. [leetcode] 80. Remove Duplicates from Sorted Array II (Medium)

    排序数组去重题,保留重复两个次数以内的元素,不申请新的空间. 解法一: 因为已经排好序,所以出现重复的话只能是连续着,所以利用个变量存储出现次数,借此判断. Runtime: 20 ms, faste ...

  4. Appium+python自动化(二十三)- 真假美猴王Monkeyrunner与Monkey傻傻的分不清楚(超详解)

    简介 看<西游记>第五十七回,说是“六耳猕猴”化作孙悟空的摸样,伤了唐僧,后又和孙悟空大打出手…… 这位假孙悟空,实力不用多说了吧,和真孙悟空一般无二,大战孙悟空,闹到上天入地下海. 在唐 ...

  5. Visual Studio 调试(系列文章)

    调试是软件开发过程中非常重要的一个部分,它具挑战性,但是也有一定的方法和技巧. Visual Studio 调试程序有助于你观察程序的运行时行为并发现问题. 该调试器可用于所有 Visual Stud ...

  6. 并查集_HDU 1232_畅通工程

    某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可). ...

  7. ASP.NET Core Web Api之JWT VS Session VS Cookie(二)

    前言 本文我们来探讨下JWT VS Session的问题,这个问题本没有过多的去思考,看到评论讨论太激烈,就花了一点时间去研究和总结,顺便说一句,这就是写博客的好处,一篇博客写出有的可能是经验积累,有 ...

  8. sqlmap续

    sqlmap续 注入语句(知道绝对路径时候可用) http://192.168.99.171/test2/sqli/example10.php?catid=3’union select 1,’< ...

  9. Rust写时复制Cow<T>

    写时复制(Copy on Write)技术是一种程序中的优化策略,多应用于读多写少的场景.主要思想是创建对象的时候不立即进行复制,而是先引用(借用)原有对象进行大量的读操作,只有进行到少量的写操作的时 ...

  10. TensorFlow神经网络机器学习使用详细教程,此贴会更新!!!

    运行 TensorFlow打开一个 python 终端: $ python >>> import tensorflow as tf >>> hello = tf.c ...