--管理员登录
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
);