一、数据库对象:
模式对象:
数据库对象是逻辑结构的集合,最基本的数据库对象是表;
其他对象包括: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、当出现异常需要修改和删除的序列时,友情提示:删除重新建!