oracle数据库知识小结

1,查询本地数据库时间(24小时制的)

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')from dual;

2,数据库中 数据批量迁移

insert into 要更新的表的表名 (字段) select (跟前面字段对应的字段,顺序也要一样) from 要迁移的表 where 条件;(一般是id相等)。

3,替换表里面的字符串

update 要修改的表 set 列名=replace(列名,'要替换的字符','替换成的字符') where 条件;(注意两个列名一致)。

4,删除重复数据

DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO);这个还不是太明白。

5,基本的sql语句
选择:select * from table1 where 范围;
插入:insert into table1(field1,field2) values(value1,value2);
删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围;
查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]---desc为倒叙排列,不写或者asc为正序
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1

6,列出数据库里所有的表名
SELECT TABLE_NAME FROM USER_TABLES

7,建一个和a表结构一样的空表

create table b as select * from a where 1=2;

create table b(b1,b2,b3) as select a1,a2,a3 from a where 1=2;

8,视图中不能使用order by,但可用group by代替来达到排序目的 

SQL > create view a as select b1,b2 from b group by b1,b2;

9,向一个表格添加字段

alter table alist_table add address varchar2(100); 

10, 修改字段 属性 字段为空

alter table alist_table modify address varchar2(80); 

11,修改字段名字

create table alist_table_copy as select ID,NAME,PHONE,EMAIL, QQ as QQ2,      /*qq 改为qq2*/ 

12,有时要求列值不能为空 

create table dept (deptno number(2) not null, dname char(14), loc char(13)); 

13,在基表中增加一列 

alter table dept add (headcnt number(3)); 

14,一些常用的数学小知识

--绝对值:abs()

select abs(-2) value from dual;          --(2)

--取整函数(大):ceil()

select ceil(-2.001) value from dual;       --(-2)

--取整函数(小):floor()

select floor(-2.001) value from dual;       --(-3)

--取整函数(截取):trunc()

select trunc(-2.001) value from dual;       -- (-2)

--四舍五入:round()

select round(1.234564,4) value from dual;       --(1.2346)

--取平方:Power(m,n)

select power(4,2) value from dual;       --(16)

--取平方根:SQRT()

select sqrt(16) value from dual;       --(4)

--取随机数:dbms_random(minvalue,maxvalue)

select dbms_random.value() from dual;  (默认是0到1之间)

select dbms_random.value(2,4) value from dual;  (2-4之间随机数)

--取符号:Sign()

select sign(-3) value from dual; --(-1)

select sign(3) value from dual; --(1)

--取集合的最大值:greatest(value)

select greatest(-1,3,5,7,9) value from dual;       --(9)

--取集合的最小值:least(value)

select least(-1,3,5,7,9) value from dual;       --(-1)

--处理Null值:nvl(空值,代替值)

select  nvl(null,10) value from dual;       --(10)  

select nvl(score,10) score from student

15,关于时间的一些sql

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')currenttime, 

       to_char(sysdate,'yyyy') year,

       to_char(sysdate,'mm') month,

       to_char(sysdate,'dd') day,

       to_char(sysdate,'day') week,

       to_char(sysdate,'hh24')hour,

       to_char(sysdate,'mi') minute,

       to_char(sysdate,'ss') second

from dual;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值