一、数据库对象:
模式对象:
数据库对象是逻辑结构的集合,最基本的数据库对象是表;
其他对象包括:create增、drop删、改alter
同义词、序列、视图、索引
1、同义词:
①、 现有对象的一个别名:
简化SQL语句,隐藏对象的名称和所有者,提供对对象的公共访问;
②、类型:
私有同义词:
只能在其模式下内访问,且不能与当前模式的对象同名(当前用户下使用);
公有同义词:
可被所有的数据库用户访问。只能是管理员用户创建。
③、私有:synonym(system身份登录创建)
- ---创建用户
-
- CREATE USER test IDENTIFIED BY 123456;--创建一个用户名为 test 密码为123456的用户
- GRANT CONNECT , CREATE SYNONYM TO test; ---授予权限(连接数据库,创建同义词--起别名)
- GRANT SELECT ON SCOTT.EMP TO test;--查询
- GRANT DELETE ON SCOTT.EMP TO test;--删除
- GRANT UPDATE ON SCOTT.EMP TO test;--增
-
- select * from scott.emp;
- create synonym staff for scott.emp;--起别名--提高安全性
- select * from staff;---私有同义词,只能谁创建谁访问
④、公有:public
需要sys或者system用户来创建
- --一sys或system身份登录,创建公有同义词--谁都能查
- create public synonym emps for scott.emp;
- select * from emps;
修改和删除的原则是:谁创建谁修改、删除
二、序列:
1、Oracle是不支持自增长的;
①、序列是用于生成唯一、连续序号的对象;
②、序列可以是升序,也可以是降序的;
③、创建:create sequence(前三个必须写)

2、访问序列:
nextval:返回序列的下一个值;
currval:返回序列的当前值
- ---创建序列(相当于计数器,与表无关)
- create sequence seq_student start with 1 increment by 1;
- create table stu(
- ssid int primary key,
- sname varchar(10)
- )
- --给ssid赋值为序列的值
- insert into stu values(seq_student.nextval,'李四');---nextval 下一个值
- insert into stu values(seq_student.nextval,'张三');
- select * from stu
- select seq_student.currval from dual;-- currval 当前值
注意:
序列与表无任何关系!!!
3、当出现异常需要修改和删除的序列时,友情提示:删除重新建!