Oracle笔记

--(1)得到t_User表的字段
select * from user_tab_columns where table_name='t_User';

--(2)得到t_User表的约束,包括主外键
select * from user_constraints where table_name='t_User';

--(3)得到t_User表的索引
select * from user_indexes where table_name='t_User';

--(4) 查询表所属的用户

-- 用 sys 用户登陆,例如:我要查询名为 EMP 的表,在哪些用户下有:

sys@TBWORA> CONN/AS SYSDBA已连接。

sys@TBWORA>SELECT table_name, ownerfrom dba_tables2where table_name='EMP';

-- (5)两条SQL的区别

select * from (select a.custom_no, b.debit_ac from custom a left join custdep b on a.custom_no = b.custom_no and b.dep_no = 'EE') t where t.debit_ac is null;

select a.custom_no, b.debit_ac from custom a left join custdep b on a.custom_no = b.custom_no and b.dep_no = 'EE' and b.debit_ac is null;


第一个是基于查询过的结果的查询,而第二个是基于一张表建立起的链接的查询。

第一个select语句从集合
(select a.custom_no, b.debit_ac
  from custom a
  left join custdep b
  on a.custom_no = b.custom_no
  and b.dep_no = 'EE')
里找出满足条件where t.debit_ac is null;的结果集。

第二个select语句从表custom a 和custdep b 找出满足条件
a.custom_no = b.custom_no
  and b.dep_no = 'EE'
  and b.debit_ac is null;
的结果集。

(6)Oracle有两个具有dba角色的用户,分别是sys与system,他们都可以以sysdba身份登录数据库。既然system具有dba角色,为什么还分配他sysoper身份?
        1) 【sys】所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。
【system】用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。
        2) 其次的区别,权限的不同。
【system】用户只能用normal身份登陆em,除非你对它授予了sysdba的系统权限或者syspoer系统权限。
【sys】用户具有“SYSDBA”或者“SYSOPER”系统权限,登陆em也只能用这两个身份,不能用normal。

你可能感兴趣的:(oracle)