oracle的Select语句以及函数

Select语句_函数

 查询语句

SELECT

select 用于从数据中查询数据,形式:

select field1 ,field2,.....from tablename

where condition

例如:查询员工的名字和雇员号,

首先的构思出从那个数据包中>>>> from emp

使用select 查询,select emp.ename, emp.empno,

其中字段的别名,用双引号,也可以省略。

select ename as " 姓名  "from emp;

* 通配符表示查询所有字段。如果要查特定字段时,不要使用*,影响查询效率。

select empno,ename,job,mgr,hiredate,sal,comm,deptno

from emp;

-- * 通配符表示所有字段

select * from emp;

 distinct 去重

重复性的记录去掉,只保留一条。

select distinct e.job from emp e;

 where 子句

where 表示查询的条件。

 

[1] =,!= ,<>,<,>,<=,>= 关系运算符

<> 表示不等于

-- 把部分10的雇员查询出来

select *

from emp

where deptno = 10;

 

-- 把名称为smith的雇员

select e.*

from emp e

where e.ename = 'SMITH';

 

-- 查询底薪大于等于1000的员工

select e.*

from emp e

where e.sal >= 1000;

 

select e.*

from emp e

where e.sal <> 800

any/some/all (list)

any/some(list) 满足list列表的任意一个条件

all(list) 满足list列表的中所有条件

null

null 在sql中表示是不确定 => 可以认为没有值

between x and y 

表示一个值位于[x,y]区间,x/y 一般都是数字。

 in/not in list

表示字段值是否在list列表

模糊查询 

like 关键字用于模糊查询,其中

%:表示任意字符出现多次(0),

_:表示任意字符出现1

escape('x') 表示指定转义字符为x,一般指定为\

 复杂查询(and/or)

where 后面条件可以跟多个通过and 或者 or 连接

and:且、并且

or: 或、或者

优先级:and大于or

where and or 中执行效率问题

分析:

and:表示且,条件越多,检索的数据量越来越少,

or:表示或,条件越少,检索的数据量越来越多。

where执行的顺序从后向前。

 计算字段

我们经常需要把数据中检索出来的信息进行再加工,允许的操作+-、*/。通过四个运算得到新的字段(计算字段)

计算字段在数据中不存在。

注意:很多记录中的comm是null,表示不确定的值,经常四则运算后的值也不确定

 

当遇到字段时null,可以通过nvl函数把null转化便于运算的类型。

 函数

函数一般是在数据上执行的,它给数据的转换和处理提供了方便。只是将取出的数据进行处理,不会改变数据库中的值。

函数根据处理的数据分为单行函数和聚合函数(函数)

组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果,组函数仅可用于选择列表或查询的having子句

单行函数对单个数值进行操作,并返回一个值。

 

dual一个系统表。注意用于测试。

 

posted on 2019-05-13 20:19  轩舞  阅读(2229)  评论(0编辑  收藏  举报