Oracle学习总结3-基本对象
(一)表
1、表
创建表:
create table test1(tid number,tname varchar2(20));
--增加新列:
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 test1 to test2;
--删除表
drop table test2;
--查看回收站(可以通过回收站中的表名查询,没真删)
show recyclebin;
--清空回收站
purge recyclebin;
--注意:管理员没有回收站
行地址:(伪列)rowid-------AAAMfPAAEAAAAAgAAA(这类值)
select rowid,empno,ename,sal from emp;
通过查询结果创建表:
创建表:保存20号部门的员工
create table emp20 as select * from emp where deptno=20;
创建表:员工号 姓名 月薪 年薪 部门名称
create table empinfo as select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname from emp e,dept d where e.deptno=d.deptno
2、表的约束:
主键、非空、唯一、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 check(gender in('男','女')), email varchar2(20) constraint student_email_unique unique constraint student_email_notnull not null, deptno number constraint student_fk references dept(deptno) on delete set null )
(二)视图
1、 管理员用户给予创建视图的权限:
grant create view to scott;
2、创建视图
Create or replace view empinfoview as select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname from emp e,dept d where e.deptno=d.deptno with read only;
(三)序列
创建序列:
create sequence myseq;
初始值是0。
select myseq.nextval from dual. select myseq.currval from dual.(刚刚创建无法执行这句)
(四)索引
建立索引
create index myindex on emp(deptno);
SQL的执行计划:--可以看出建立索引后cpu使用率降低
explain plan for select * from emp where deptno=10; select * from table(dbms_xplan.display);
(五)同义词
管理员授权scott用户可以查看hr用户的employees表
grant select on hr.employees to scott;
管理员授权创建同义词:
grant create synonym to scott;
创建同义词:
create synonym hremp for hr.employees; select * from hremp;