Oracle 子查询创建表,修改表,回收站,闪回删除,约束


--管理员登录
sqlplus sys/密码 as sysdba   --只有管理员可以使用,密码认证
sqlplus 错误用户名/错误密码 as sysdba   --主机认证(登录操作系统的用户必须是数据库的管理员)


select rowid,empno,ename,sal from emp;
select * from emp where rowid='AAAMfPAAEAAAAAgAAJ';   --rowid 行地址


create table emp20
as
select * from emp where deptno=20;   --通过子查询创建表,同时将子查询的结果插入到新表中 (根据子查询的结构创建表)


create table emp20
as
select * from emp where 1=2;   --通过子查询创建表 (根据子查询的结构创建表)


--修改表:增加新列,修改列,删除列,重命名列,重命名表
alter table test1 add photo blob;  --增加新列
alter table test1 modify tname varchar2(40);  --修改列
alter table test1 drop column photo;     --删除列
alter table test1 rename column tname to username;   --重命名列
rename 表名1 to 表名2;     --重命名表
drop table TESTDELETE;     --删除表
drop table TESTDELETE purge;     --删除表(purge表示不经过回收站)


show recyclebin;      --查看回收站
purge recyclebin;     --清空回收站

select * from "BIN$384BF4yOT+aAlXzC7eLPIA==$0";  --查看回收站中表的数据(BIN$384BF4yOT+aAlXzC7eLPIA==$0是回收站中被删除的表名,要用双引号) 
--注意:管理员没有回收站

flashback table TESTTABLE to before drop;   --闪回删除 ---> 从回收站恢复删除的表
闪回删除
闪回表
闪回查询
闪回版本查询
闪回事务查询
闪回数据库
闪回数据归档(Oracle 11g中才有的)


--约束
create table test3
(tid number,
 tname varchar2(20),
 gender varchar2(2) check (gender in ('男','女')),   --check ()  检查性约束
 sal  number check (sal > 0)     --check ()  检查性约束
);

create table student
(
 sid number constraint student_pk primary key,
 sname varchar2(20) constraint student_name_notnull not null,
 gender varchar2(2) constraint student_gender check (gender in ('男','女')),   --check约束
 email varchar2(40) constraint student_email_unique unique
                    constraint student_email_notnull not null,    --同一列添加多个约束
 deptno number constraint student_fk references dept(deptno) on delete set null  --on delete set null表示关联的主键删除时,该外键设为null 
);

猜你喜欢

转载自blog.csdn.net/houyanhua1/article/details/82380099