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;