欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle数据库之数据库对象

程序员文章站 2024-01-11 09:12:40
一、数据库对象: 模式对象: 数据库对象是逻辑结构的集合,最基本的数据库对象是表; 其他对象包括:create增、drop删、改alter 同义词、序列、视图、索引 1、同义词: ①、 现有对象的一个别名: 简化SQL语句,隐藏对象的名称和所有者,提供对对象的公共访问; ②、类型: 私有同义词: 只 ......

一、数据库对象:

   模式对象:

数据库对象是逻辑结构的集合,最基本的数据库对象是表;

其他对象包括: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(前三个必须写)

 

 

Oracle数据库之数据库对象

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、当出现异常需要修改和删除的序列时,友情提示:删除重新建!