开发中需要的最基本的sql

来源:互联网 发布:伦敦奥运会陈江华数据 编辑:程序博客网 时间:2024/04/29 22:13

1.对数据库时间的操作

to_char 是将日期和数字转换成字符串(这一点就是我们要将时间显示在页面上 或者是用excle导出等一系列的操作时需要转换);

to_date 是将将字符串转换成数据库中的日期类函数;

to_number 是将字符转换成数字;

to_timestamp  是从数据库中取出微秒数;(在excle导出时我遇到了导出有0的情况 用这个函数得到了解决关键点事时间的类型有问题需要转换)

举个例子

select to_timestamp('2010-10','yyyy-mm-dd hh24:mi:ss:ff') from dual;

result:10-10月-20 12.00.00.000000000 上午;

在oracle中当涉及到时间转换时 精确到秒时有细微的差别
例子:
receivedtime>= to_date('2008-01-01 11:20:00','yyyy-mm-dd hh24:mi:ss');
用的是'yyyy-mm-dd hh24:mi:ss';

2.decode函数
在项目中 我们经常的会遇到要转换值的  decode就解决了这个问题

DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名。 

decode的用法:DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。
举个例子:
decode(state,'0','未领取','1','领取','2','领取失败') state  state是数据库中的列名;


3.模糊查询

LIKE 模糊查询
字符匹配操作可以使用通配符 “%” 和 “_”:
%:表示任意个字符,包括零个;
_:表示一个任意字符;
模糊查询中我们常常要用到escape
举个例子:
create table t_test
(
name varchar2(10)
);
insert into t_test3(name) values('123');
insert into t_test3(name) values('张三');
insert into t_test3(name) values('张23');
insert into t_test(name) values('21%');
insert into t_test(name) values('%21');
select name from t_test3 where name like '/%%' ESCAPE '/';
可以查到所有以%开头的字符,即%21,/是一个去通配符含义的符号,ESCAPE '/'表示/后面的一个符号不再具有通配符的含义,也就是/%%中第一个%不是通配符了,同样,我们也可以查询所有以%结尾的字符串,如:
select name from t_test3 where name like '%/%' ESCAPE '/';
的结果为21%;
事实上,在以上的语句中,/只是一个去通配符含义的符号,它只是一个标志,标志/后面的第一个字符不
是通配符,我们可以用任意的符号来代替/。