莫愁前路无知己,天下谁人不识君。。。。

oracle知识精简一览

上一篇 / 下一篇  2017-05-08 20:19:20 / 个人分类:数据库知识

Oracle知识太多,只总结常用的,或面试中容易问到的,如下:
1.修改单列名称
alter table test rename column A to B;
2.增加单列
alter table test add A VARVHAR(2);
3.删除单列
alter table test drop column A;
4.增加多列
alter table test add(A VARCHAR(2),B VARCHAR(10));
5.修改多列(注意,此处只能修改数据类型,不能修过列名称)
alter table test modify(A VARCHAR(10),B VARCHAR(15));
6.删除多列
alter table test drop(A,B);
7.创建表,只含结构
create table ta as select * from tb where 1=0;
8.创建表,结构和数据都有
create table ta as select * from tb where 1=1;
9.删除表中所有内容
delete from ta;(仅删除内容)
truncate table ta;(仅删除内容)
drop table ta;(删除所有,包括结构和内容) 
10.复制内容
update ta set 字段1=trim(字段2) #将字段2的内容复制到字段1中  
11.oracle查找指定时间范围内的记录(to_date/to_char)
eg:查找2号到30号的数据
A:select * from test where time>=to_date('2017-07-02','yyyy-mm-dd')and time<=to_date('2017-07-30','yyyy-mm-dd');
结果:无法查出30号的数据,进过实践有两种解决方案:
a.将'2017-07-30'改'2017-07-31'即可
b.将'2017-07-30 23:59:59','yyyy-mm-dd hh24:mi:ss'即可
#上面格式也可改where time between to_date()and to_date();
B.用to_char可以解决此问题
a.select * from test where to_char(time,'yyyy-mm-dd')between'2017-07-02'and'2017-07-30';
b.select * from test where to_char(time,'yyyy-mm-dd')>='2017-07-02'and to_char(time,'yyyy-mm-dd')<='2017-07-30';
12.高效分页查询语句(很好用,很好用,很好用)
select * from (select a.* ,Rownum rn from(select * from tablename)a where Rownum<=30)where rn>=11;

TAG: Oracle 知识

引用 删除 @TY   /   2018-08-03 15:51:37
5
 

评分:0

我来说两句

Open Toolbar