日期:2014-05-16  浏览次数:20379 次

oracle表的简单查询

desc emp显示emp表的结构

?

dual 是一个特殊的表,里面没有任何数据

?

select 语句:
计算数学表达式:select from 3*2 from dual?

?

重命名的形式输出: select 3*2 as mult_result from dual;

注意中间的as可以省略不写,且中间不能用空格隔开(eg:mult result );要想用空格隔开mult result 加上双引号“”后将可以原样输出;as后面的重命名要么加双引号要么不加,使用单引号将会出错。而插入值时除了number类型的值,其他类型的值都要用单引号括起来

?

空值运算函数:nvl(name,number)

任何运算法则(加减乘除)与含有空值的字段的运算结果都是空值,nvl(name,number)可以用number值来代替name字段为null处的值

eg:? select ename ,sal *12+nvl(comm,0) from emp?? //表示如果comm列里面的值是空值,则用0代替,如果不是空值,则不起任何作用

?

查询空值情况:

* 不能用‘=’作为判断连接词,不是空就是 is not null

eg:select * from a_tbl where money is null??

?

?

字符串的连接用||
连接字符:select ename || 'fdfdfdfd' from emp;
如果连接的字符里面已经有一个单引号了,就用两个单引号代替一个单引号;

如:select ename || 'fdf''dfdfd' from emp;

?

dintinct 表示去掉重复的,修饰多个字段的组合的时候表示把这多个字段组成的重复的记录消除掉

?

模糊查询:like?

eg:select name from a_tbl where name like '%lms%'??

_代表一个字母,如:查询第二个字母为a的姓名 like '_a%'
默认的转义字符是\

eg:当模糊查询的条件里面就有%时查询语句如下: like '%\%%'
当不使用\作为转义字符写法如下(转义字符为$):select name from a_tbl where name like '%$%%' escape '$'

?

in

eg:?select * from a_tbl where name in ('张三','李四','王五');

?

排序:order by(desc降序,asc升序),order by 默认为asc
eg:select * from?emp order by EMPNO desc
两个字段进行排序:select * from emp? order by EMPNO desc,sal desc

如果使用列的别名进行查询,那么列的别名要用双引号括起来

eg:select sal as "月工资" from emp order by "月工资" desc;

?

字符串操作函数

lower(char),upper(char)??? 大小写的转换
eg:select name from a_tbl where lower(name) like '_a%'? 查询所有姓名的第二个字符为(a/A)的姓名?

length(char)? 获取字符串的长度
substr(str,beginIndex,login)截字符串,从1开始
eg:select substr(name,2,3) from a_tbl???? 从name第二个字符开始截取name值一个截取三个字符
chr(int):将ascii码转换为字符

eg:select chr(65) from dual
ascii(char):将字符转换为ascii码

eg:select chr('a') from dual

replace?(char,search_string,replace_string)替换字符串中的字符

eg:将雇员名字中的字母'A'替换成'我是A'

?select replace(ename,'A','我是A') from emp;

instr(char1,char2,[,n[,m]])取子串在字符串中的位置

?

?常用字符串函数综合应用

以首字母大写的形式显示所有员工姓名

select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1)) as "姓名" from emp;

?

数学函数:

数学函数的输入参数和返回值类型都是数字类型的,数学函数包括cos,cosh,exp,ln,log,sin,sinh,sqrt,tan,tanh,acos,asin,atan,round,最常用的有如下几个

round(c,[m]):该函数用于执行四舍五入,如果省掉m,则四舍五入到整数;如果m是正数,就四舍五入到小数点的m位后,如果是负数,则四舍五入到小数点的m位前

eg:select round(23.652) from dual 结果为:24
eg:select round(23.652,1) from dual 结果为:23.7
eg:select round(23.652,-1) from dual 结果为:20

trunc(c,[m])该函数用于截取数字,如果省掉m,就截取去小数部分,如果m是正数就截取到小数点的m位后,如果m是负数,就截取到小数点的前m位

eg:select trunc(23.652) from dual; 结果为23

eg:?select trunc(23.652,1) from dual;结果为23.6

?select trunc