SQL语句汇总
1.SQL语句排序语句select * from 【表名】 order by 【表字段】 ASC ; --升序
select * from 【表名】 order by 【表字段】 DESC ; --降序
select NAME,count(id) from T_USER group by NAME having count(id)>1
3.通过关联字段update表中字段
update T_ILLEGAL_POLT a
set a.illegal_action =
( select b.id from T_ILLEGAL_ACTION2 b where a.description = b.alias);
4.1创建临时表空间
CREATE TEMPORARY TABLESPACE TE_TEMP
TEMPFILE 'E:\oracle\product\10.2.0\oradata\orcl\TE_TEMP.DBF'
SIZE 1024M
REUSE
AUTOEXTEND
ON NEXT 100M
MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K;
4.2创建数据表空间
CREATE TABLESPACE TE
DATAFILE 'E:\oracle\product\10.2.0\oradata\orcl\TE.DBF'
SIZE 1024M
REUSE
AUTOEXTEND
ON NEXT 100M
MAXSIZE 4096M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K;
4.3删除用户TE3登录
drop user TE cascade;
4.4创建用户并指定表空间
create user TE identified by TE default tablespace TE temporary tablespace TE_TEMP;
4.5用户授权
grant connect,resource,dba to TE;
4.6导入数据库
imp TE/TE@TE full=y file=E:\comit.te\data\ZHIFADATAtebei2011-12-26.dmp
5.增加表字段
alter table【表名】 add 【字段名】 【字段类型】;
例子:alter 【表名】 add name VARCHAR2(255) default ''
5.1修改表字段属性或字段名
alter table【表名】 modify 【字段名】 【字段类型】;
5.2删除表字段
alter table 【表名】 drop column 【字段名】;
6.数据库导入语句:
1. 获取帮助
imp help=y
2. 导入一个完整数据库
imp system/manager file=bible_db log=dible_db full=y ignore=y
3. 导入一个或一组指定用户所属的全部表、索引和其他对象
imp system/manager file=seapark log=seapark fromuser=seapark imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
4. 将一个用户所属的数据导入另一个用户
imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy imp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1)
5. 导入一个表
imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
6. 从多个文件导入
imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) log=paycheck, filesize=1G full=y
7. 使用参数文件
imp system/manager parfile=bible_tables.par
bible_tables.par参数文件: #Import the sample tables used for the Oracle8i Database Administrator's Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
8. 增量导入
imp system./manager inctype= RECTORE FULL=Y FILE=A Oracle imp/exp C:Documents and Settingsadministrator>exp help=y
9.导入 自己电脑
imp TE3/TE3@136 full=y file=E:\新建文件夹\ZHIFADATA2010-06-211330.dmp
10. 导入一个表
imp TE3/TE3@136 TABLES=(BM_OWNER_MASSAGE,WORK_PERSON,BM_CAR_INFO) file=E:\新建文件夹\ZHIFADATA2010-06-211330.dmp
7.oracle日期加减
7.1oracle时间加法
select sysdate,add_months(sysdate,12) from dual; --加1年
select sysdate,add_months(sysdate,1) from dual; --加1月
select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期
select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual; --加1天
select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --加1小时
select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1分钟
select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1秒
7.2oracle时间减法
select sysdate,add_months(sysdate,-12) from dual; --减1年
select sysdate,add_months(sysdate,-1) from dual; --减1月
select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual; --减1星期
select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual; --减1天
select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --减1小时
select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1分钟
select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1秒
8.oracle计算时间差函数
8.1两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差:
天:
ROUND(TO_NUMBER(END_DATE - START_DATE))
小时:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)
分钟:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60)
秒:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)
毫秒:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000)
8.2日期格式参数含义说明
D 一周中的星期几
DAY 天的名字,使用空格填充到 9 个字符
DD 月中的第几天
DDD 年中的第几天
DY 天的简写名
IW ISO 标准的年中的第几周
IYYY ISO 标准的四位年份
YYYY 四位年份
YYY,YY,Y 年份的最后三位,两位,一位
HH 小时,按 12 小时计
HH24 小时,按 24 小时计
MI 分
SS 秒
MM 月
Mon 月份的简写
Month 月份的全名
W 该月的第几个星期
WW 年中的第几个星期
8.3日期时间间隔操作
当前时间减去 7 分钟的时间
select sysdate,sysdate - interval '7' MINUTE from dual
当前时间减去 7 小时的时间
select sysdate - interval '7' hour from dual
当前时间减去 7 天的时间
select sysdate - interval '7' day from dual
当前时间减去 7 月的时间
select sysdate,sysdate - interval '7' month from dual
当前时间减去 7 年的时间
select sysdate,sysdate - interval '7' year from dual
时间间隔乘以一个数字
select sysdate,sysdate - 8 *interval '2' hour from dual
8.4日期到字符操作
select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual
select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual
select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from dual
select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from dual
8.5字符到日期操作
select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from dual
9.代替脚本
update t_dim_illegaltime t set t.illegalquarter=replace(illegalquarter,'第一季度', '1第一季度');