经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Oracle » 查看文章
Oracle数据库之数据库对象
来源:cnblogs  作者:壹叶知秋  时间:2019/7/30 9:33:23  对本文有异议

一、数据库对象:

   模式对象:

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

其他对象包括:create增、drop删、改alter

  同义词、序列、视图、索引

1、同义词:

①、 现有对象的一个别名:

  简化SQL语句,隐藏对象的名称和所有者,提供对对象的公共访问;

②、类型:

私有同义词:

  只能在其模式下内访问,且不能与当前模式的对象同名(当前用户下使用);

公有同义词:

  可被所有的数据库用户访问。只能是管理员用户创建。

③、私有:synonym(system身份登录创建)

  1. ---创建用户
  2.  
  3. CREATE USER test IDENTIFIED BY 123456;--创建一个用户名为 test 密码为123456的用户
  4. GRANT CONNECT , CREATE SYNONYM TO test; ---授予权限(连接数据库,创建同义词--起别名)
  5. GRANT SELECT ON SCOTT.EMP TO test;--查询
  6. GRANT DELETE ON SCOTT.EMP TO test;--删除
  7. GRANT UPDATE ON SCOTT.EMP TO test;--
  8.  
  9. select * from scott.emp;
  10. create synonym staff for scott.emp--起别名--提高安全性
  11. select * from staff;---私有同义词,只能谁创建谁访问

④、公有:public

需要sys或者system用户来创建

  1. --syssystem身份登录,创建公有同义词--谁都能查
  2. create public synonym emps for scott.emp;
  3. select * from emps;

 

修改和删除的原则是:谁创建谁修改、删除

二、序列:

1、Oracle是不支持自增长的;

  ①、序列是用于生成唯一、连续序号的对象;

  ②、序列可以是升序,也可以是降序的;

  ③、创建:create sequence(前三个必须写)

 

 

2、访问序列:

nextval:返回序列的下一个值;

currval:返回序列的当前值

  1. ---创建序列(相当于计数器,与表无关)
  2. create sequence seq_student start with 1 increment by 1;
  3. create table stu(
  4. ssid int primary key,
  5. sname varchar(10)
  6. )
  7. --ssid赋值为序列的值
  8. insert into stu values(seq_student.nextval,'李四');---nextval 下一个值
  9. insert into stu values(seq_student.nextval,'张三');
  10. select * from stu
  11. select seq_student.currval from dual;-- currval 当前值

注意:

序列与表无任何关系!!!

 3、当出现异常需要修改和删除的序列时,友情提示:删除重新建!

原文链接:http://www.cnblogs.com/21-forever/p/11265924.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号