1 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是一个系统表。注意用于测试。