1、where子句(选择操作)
where子句使用在 select ... from ... 后面,用来选择所需(符合条件的)的记录
例:查询George的工资
select first_name,salary from s_emp where first_name='George';
where后面跟的是表达式 也就是 XXX=XXX, XXX between X and X ,XXX in(X,X,X)
like '...' 通配查询
between ... and ... ,表示结果在这之间,between and是一个闭区间,也就相当于... <= ... and ... >= ... 。
!=,<>,^=,这三个都标识不等于,<=,>=,=,这些运算符都可以使用。
... in (va1,val2,...) 判断结果是否在这个集合中存在,等于其中随变一个就行了,可以说in=any
in中集合的数据是有顺序的,概率高的数据放在前面可提高效率
not in<>all 没有顺序
空值会对not in造成影响,也就是不等于任何值,但是空值例外。
like '...' 字符串通配查询,'%'表示0或任意多个字符,'_',表示任意一个字符。
注意:转义的用法:like ‘S\_%’ escape ‘\’
例:找出表名是以s_开头的表
select table_name from user_tables where table_name like 'S\_%' escape '\'; 把\定义为转义字符
... is null 使用来判断值是否为空。is not null 判断值不为空
例:查看哪些人没有提成
select first_name from s_emp where commission_pct is null;
... and ... 表示只有两个条件同时满足
... or ... 表示条件只要满足其中只一就可以
all ... 是要求都满足条件。
注意:Oracle中的字符串是严格区分大小写的。
(1)注意数据类型,数字类型直接写,字符用'......' ,缺省格式的Date可以用'......',只有别名才用" "包含。
(2)选择合适的运算符
2、单行函数(一个输入,一个输出)
多行函数又叫组函数(多个输入,一个输出)例平均值
1.字符函数
字符是大小写敏感的
转小写 lower(字段名) --- 其中的参数可以是一个字符串常量或是一个字段名
转大写 upper(字段名)
首字母大写 initcap(字段名)
字符串拼接 concat(字段1, 字段2)
截取子串 substr(字段名, 起始位置,取字符个数)
返回字符串长度length(字符串)
dual表,是专门用于函数测试和运算的,他只有一条记录
可以使用"-"表示从右向左取,取的时候可以从左往右取。
例:select substr(first_name,-2,2) sub from s_emp;(取后两个)
select substr(first_name,2,2) sub from s_emp;(取前两个)
nvl是一般函数,支持任何数据类型
2.数值函数
四舍五入 round(数据,保留小数点后几位)
可以用负数表示小数点前,0,表示小数点后第一位,也就是保留个位,-1表示个位(保留到十位)。
例:select round(15.36,1) from dual;
截取数字函数 trunc(数据,保留的位数(小数点后位数)) 截取个位之后补0
例:select trunc(123.456,1) from dual;
3.日期函数
日期格式,
全日期格式 世纪信息,年月日,时分秒。
缺省日期格式,日-月-年 dd-mon-rr
修改当前会话的日期格式,会按照指定的格式输出日期
alter session set nls_date_format='yyyy mm dd hh24:mi:ss';
返回当前日期 sys