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

Oracle入门指南_4

Oracle_4

查询所有记录:

select deptno,dname,loc from dept;
--查询scott用户默认的dept表中的所有记录
select * from dept;

?

Where条件查询:

select deptno,dname,loc from dept where deptno=10;
--查询deptno=10的记录

?

比较运算符

  • =
  • >
  • >=
  • <
  • <=
  • <>或!=
  • between...and...
  • in
  • like: ?%多个 ? _一个 ? ?占位符
  • is null
  • is not null
select * from emp where deptno between 10 and 20;
--查询emp表中的deptno在10-20之间的,包括10,20

select * from emp where job like '_A%';
--匹配第二个字符为'A'的
select * from emp where job like '_a%';
--匹配第二字符为'a'的
--字符匹配是区分大小写的

select * from emp where mgr is null;
select * from emp where mgr is not null;

?

逻辑运算符

  • and
  • or
  • not
select * from emp where mgr is not null and sal>1500;
--查询mgr is not null的并且  sal>1500的数据
--not是取反的意思

?

order by:排序

  • desc,降序
  • asc,默认是升序
select * from emp order by hiredate desc;
--根据入职时间降序排

?

函数:

字符函数

  • lower:转换为小写
  • upper:大写
  • initcap:首字符大写
  • concat:连接字符串
  • substr(column_name,startIndex,count):对于column_name列从第startIndex开始截取count个显示
  • length:字符串的长度
  • trim:去掉左右的空格
  • ltrim:去掉左边的空格
  • rtrim:去掉右边的空格
select concat('你好',ename),lower(ename),upper(ename),initcap(ename),substr(ename,1,1),length(ename),trim(ename) from emp;
select length(ename),length(trim(ename)) from emp;
--函数是可以嵌套的

?

数值函数

  • round(num,n):将列或表达式所表示的数值四舍五入到小数点后几位
  • trunc(num,n):将列或表达式的数值截取到小数点的后几位,而不进行四舍五入
  • mod(m,n):m除以n以后的余数
select round(49.255,2),round(49.254,2),trunc(49.256,2),mod(3,2) from dual;
--49.26  49.25  49.25  1
select round(12.00,2) from dual;
--12,若为0则直接忽略0
select round(sal,2) from emp;

?

数据类型转换函数

  • to_char(date|number,[fmt]):将日期或数值型按照模式 fmt 转换为变长字符串
  • to_number(char):将一个有数字组成的字符串转换为数值
  • to_date(char,[fmt]):将yi8ge表示日期的字符串按照模式 fmt 转换为日期
select to_char(sysdate,'yyyy-MM-dd HH-mm-ss day d q') from dual;
--2013-10-10 10-10-19 星期四 5 4
  1. ?yyyy:年的格式
  2. MM:月份
  3. dd:日
  4. HH:时
  5. mm:分
  6. ss:秒
  7. day:星期几,根据系统时间及地区决定显示
  8. d:显示星期的数字表示,周是从周日开始的,为第一天,所以周四即为5
  9. q:季度,10月份是第四季度,一个季度三个月
select to_char(892343354) from dual;

select to_char(892343354,'L999,999,999,999') from dual;
--¥892,343,354   根据本地货币转换
select to_char(892343354,'L999,999,999,999.99') from dual;
--¥892,343,354.00
  1. ?L:local,本地货币符号
  2. 9:一个有效位
  3. ,:千分位
  4. .:小数点
select * from emp where to_char(hiredate,'MM')='12';
--获取12月份入职的 员工
select to_number('123')+1 from dual;
--将字符型,转为number型   124

?

select to_date('1991-2-15','yyyy/MM/dd') from dual;
--1991/2/15

?

日期函数

  • sysdate:获取当前时间
  • months_between(date1,date2):date1与date2之间的月数
  • add_months(date,n):向date加上n个月,是几月份
  • next_day(date,c):求出date之后一周内星期c的日期;周日是星期1,周六是星期7 ?c=1-7之间的数
  • last_day(date):求出date所在月的最后一天
s