每天进步一点点,积少成多,集腋成裘,积沙成塔
必须的服务
OracleOraDb_home1TNSListener
OracleSerbice+实例名
--先建立tablespace 后创建用户 并指定 默认表空间
CREATE TABLESPACE GalSpace DATAFILE 'D:\Datafile\GalSpace.DBF' SIZE 10M AUTOEXTEND ON NEXT 1K MAXSIZE UNLIMITED DEFAULT STORAGE ( MAXEXTENTS UNLIMITED );
drop user gal cascade;
CREATE USER gal PROFILE DEFAULT IDENTIFIED BY gal DEFAULT TABLESPACE GalSpace TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
GRANT DBA TO gal;
--删除有数据的表空间选项
DROP TABLESPACE STATIC_TS INCLUDING CONTENTS
--设置日期格式
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'
select * from v$session where username is not null;
--导入 imp gal/orcl@orcl full=y file=d:\gal.dmp ignore=y
现在已有数据的情况下导入 结果是 追加了数据
--导出 exp gal/orcl@orcl full=y file=d:\gal.dmp
上网查说没删除全部表的功能 一个个的删 麻烦
可利用 select 'drop table '||table_name from user_tables; 手动删除吧,
--批量修改
select 'ALTER TABLE '||'"'||table_name||'"'||' RENAME TO '|| upper(table_name)||';' from user_tab_comments;
alter table COMPANY modify slogo default 'logo';
查看当前用户的所有表
select * from tab
查看表结构
desc tablename
--表是否存在 删除 A
FOR I IN (SELECT TABLE_NAME FROM TABS WHERE TABLE_NAME = V_NAME) LOOP;
EXECUTE IMMEDIATE 'DROP TABLE '||V_NAME;
END LOOP;
--表是否存在 删除 B
declare
cou1 number;
begin
select count(*) into cou1 from user_tables where table_name='TABLENAME';
if cou1<>0 then
execute immediate 'drop table tablename purge';
end if;
end;
ps
使用purge recyclebin可以清除回收站中的所有对象。
类似的我们可以通过purge user_recyclebin或者是purge dba_recyclebin来清除不同的回收站对象。
通过PURGE TABLESPACE TSNAME,PURGE TABLESPACE TSNAME USER USERNAME命令来选择清除回收站。
1:依据已有表创建一个新表
create table student6 as select * from student where 1=2;
如果省略where 1=2;则新表不仅拥有已有表的结构,也拥有了已有表的数据。
2:依据已有表插入数据
insert into student6 select * from student;
select * from Company where nvl(sParent,' ')='" + sParent + "'
select SYS_GUID() from dual;
Select TO_CHAR(t.ddate,'YYYY_MM') ,t.* from FullAttendance t
select to_date('2002-02-28','yyyy-mm-dd') from dual;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;
SQL中Charindex和Oracle中对应的函数Instr
sql 中 case when 对应 DECODE(field,key,val1,key2,val2,...default)
--grant dba 后 仍然没有create view 权限的处理 当然 grant dba 是不求甚解的做法,不提倡的
grant all privileges TO user
--orcle 排序问题 rownum,其他条件优先级
select * from (select * from aa order by rowid desc) where rownum <= 1000;
现负责将现有系统完全兼容 ORCL,上来就直接将select top 1000 * from tb order by id 转化为了 select * from tb where rownum<1000 order by id
嗨,之前有测试 以为这样是正确的,做事马虎,其实 rownum 作为orcl 的伪字段 ,
正确: select * from(select * from tb order by id)x where rownum<1000;