oracle查询所有用户表的表名、主键名称、索引、外键等
oracle中查询表的信息,包括表名,字段名,字段类型,主键(精)
通过搜索摸索,总结了一下 oracle 中查询表的信息,包括表名,字段名,字段类型,主键, 外键唯一性约束信息,索引信息查询 SQL 如下,希望对大家有所帮助:1、查询出所有的用户表select * from user_tables 可以查询出所有的用户表select owner,table_name from all_tables; 查询所有表,包括其他用户表通过表名过滤需要将字母作如下处理select * from user_tables where table_name = upper('表名 '因为无论你建立表的时候表名名字是大写还是小写的, create 语句执行通过之后,对应的 user_tables表中的 table_name字段都会自动变为大写字母, 所以必须通过内置函数 upper 将字符串转化为大写字母进行查询, 否则, 即使建表语句执行通过之后, 通过上面的查询语句仍然查询不到对应的记录。
2、查询出用户所有表的索引select * from user_indexes3、查询用户表的索引 (非聚集索引 :select * from user_indexes where uniqueness='NONUNIQUE'4、查询用户表的主键 (聚集索引 :select * from user_indexes where uniqueness='UNIQUE'5、查询表的索引select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name andt.table_name='NODE'6、查询表的主键select cu.* from user_cons_columns cu, user_constraints au wherecu.constraint_name = au.constraint_name andau.constraint_type = 'P' AND cu.table_name = 'NODE'7、查找表的唯一性约束(包括名称,构成列:select column_name from user_cons_columns cu, user_constraints au wherecu.constraint_name=au.constraint_name andcu.table_name='NODE'8、查找表的外键select * from user_constraints c where c.constraint_type = 'R' andc.table_name='STAFFPOSITION'查询外键约束的列名:select * from user_cons_columns cl where cl.constraint_name = 外键名称查询引用表的键的列名:select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名9、查询表的所有列及其属性方法一:select * from user_tab_columns where table_name=upper('表名 ';方法二:select cname,coltype,width from col where tname=upper('表名 ';;10. 查询一个用户中存在的过程和函数select object_name,created,status from user_objectswhere lower(object_type in ('procedure','function';11. 查询其它角色表的权限select * from role_tab_privs ;。
Oracle中查看所有的表,用户表,列名,主键,外键
在Oracle中查看所有的表:select * from tab/dba_tables/dba_objects/cat;看用户建立的表 :selecttable_name from user_tables; //当前用户的表selecttable_name from all_tables; //所有用户的表selecttable_name from dba_tables; //包括系统表select * from user_indexes //可以查询出所有的用户表索引查所有用户的表在all_tables主键名称、外键在all_constraints索引在all_indexes但主键也会成为索引,所以主键也会在all_indexes里面。
具体需要的字段可以DESC下这几个view,dba登陆的话可以把all换成dba1、查找表的所有索引(包括索引名,类型,构成列):select t.*,i.index_type from user_ind_columnst,user_indexesi where t.index_nam e = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表2、查找表的主键(包括名称,构成列):select cu.* from user_cons_columns cu, user_constraints au where cu.constraint _name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表3、查找表的唯一性约束(包括名称,构成列):selectcolumn_name from user_cons_columns cu, user_constraints au where cu. constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table _name = 要查询的表4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表查询外键约束的列名:select * from user_cons_columns cl where cl.constraint_name = 外键名称查询引用表的键的列名:select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名5、查询表的所有列及其属性select t.*,MENTS from user_tab_columnst,user_col_comments c where t.t able_name = c.table_name and t.column_name = c.column_name and t.table_na me = 要查询的表。
oracle查询表信息(索引,外键,列等)
oracle查询表信息(索引,外键,列等)oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯⼀性约束信息,索引信息查询SQL如下,希望对⼤家有所帮助:1、查询出所有的⽤户表select * from user_tables 可以查询出所有的⽤户表select owner,table_name from all_tables; 查询所有表,包括其他⽤户表通过表名过滤需要将字母作如下处理select * from user_tables where table_name = upper('表名')因为⽆论你建⽴表的时候表名名字是⼤写还是⼩写的,create语句执⾏通过之后,对应的user_tables表中的table_name字段都会⾃动变为⼤写字母,所以必须通过内置函数upper将字符串转化为⼤写字母进⾏查询,否则,即使建表语句执⾏通过之后,通过上⾯的查询语句仍然查询不到对应的记录。
2、查询出⽤户所有表的索引select * from user_indexes3、查询⽤户表的索引(⾮聚集索引):select * from user_indexes where uniqueness='NONUNIQUE'4、查询⽤户表的主键(聚集索引):select * from user_indexes where uniqueness='UNIQUE'5、查询表的索引select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name andt.table_name='NODE'6、查询表的主键select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name andau.constraint_type = 'P' AND cu.table_name = 'NODE'7、查找表的唯⼀性约束(包括名称,构成列):select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name=au.constraint_name andcu.table_name='NODE'8、查找表的外键select * from user_constraints c where c.constraint_type = 'R' and c.table_name='STAFFPOSITION'查询外键约束的列名:select * from user_cons_columns cl where cl.constraint_name = 外键名称查询引⽤表的键的列名:select * from user_cons_columns cl where cl.constraint_name = 外键引⽤表的键名9、查询表的所有列及其属性⽅法⼀:select * from user_tab_columns where table_name=upper('表名');⽅法⼆:select cname,coltype,width from col where tname=upper('表名');;10.查询⼀个⽤户中存在的过程和函数select object_name,created,status from user_objectswhere lower(object_type) in ('procedure','function');11.查询其它⾓⾊表的权限select * from role_tab_privs ;查看索引个数和类别select * from user_indexes where table_name='表名' ;查看索引被索引的字段SQL>select * from user_ind_columns where index_name=upper('&index_name');PS:查看某表的约束条件SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name');SQL>select c.constraint_name,c.constraint_type,cc.column_namefrom user_constraints c,user_cons_columns ccwhere c.owner = upper('&table_owner') and c.table_name = upper('&table_name') and c.owner = cc.owner and c.constraint_name = cc.constraint_nameorder by cc.position;查看视图的名称SQL>select view_name from user_views;。
oracle建表的时候同时创建主键,外键,注释,约束,索引
oracle建表的时候同时创建主键,外键,注释,约束,索引--主键create table emp (id number constraint id_pr primary key ,name1 varchar(8));create table emp9 (id number ,name1 varchar(8) ,constraint aba_pr primary key(id,name1));--外键create table emp1(id number references emp(id),name varchar(8));--复合外键create table emp0(id number ,name varchar(8) ,constraint fk_nam1e foreign key(id,name) references emp9(id,name1));--主键另外写法create table emp2(id number,name varchar(8),id1 number, constraint pk_id primary key(id),constraint fk_name foreign key(id1) references emp(id))--check 约束的写法create table emp4(id number check(id in(1,2 ,3)),name varchar(8));不带约束名称的:create table userInfo (id number(6) primary key,--主键name varchar2(20) not null,--⾮空sex number(1),age number(3) default 18,birthday date,address varchar2(50),email varchar2(25) unique,--唯⼀tel number(11),deptno number(2) references dept(deptno)—外键);带约束名称:create table userInfo (id number(6) constraint id_pk primary key,name varchar2(20) constraint name_nn not null,sex number(1),age number(3) default 18,birthday date,address varchar2(50),email varchar2(25) constraint email_uqe unique,tel number(11),deptno number(2) constraint dept_deptno_ref references dept(deptno));列模式:create table userInfo (id number(6),name varchar2(20),sex number(1),age number(3) default 18,birthday date,address varchar2(50),email varchar2(25),tel number(11),deptno number(2),constraint id_pk primary key (id),--也可以两个以上,联合主键constraint dept_deptno_ref foreign key (deptno) references dept(deptno),constraint emial_name_uqe unique (email, name));Alter模式:alter table userInfo add(msn varchar2(20));alter table userInfo modify(msn varchar2(25));alter table userInfo drop(msn);alter table userInfo drop constraint id_pk;alter table userInfo add constraint id_pk primary key (id);3、创建视图create table v$_dept_viewasselect deptno, dname from dept;--重新编译视图alter view v$_dept_view compile;提⽰:视图⼀般是⼀个表或多个表的查询或⼦查询,这样可以减少代码量,但同时增加了对数据库视图的维护程度,如:某个表字段被删除或是修改,视图也要重新创建或修改,同时占⽤了数据库的⼀部分空间;视图就是⼀个虚拟的表格;4、创建索引普通索引:create index idx_dpt_dname on dept(dname);联合索引:create index idx_dept_dname_deptno on dept(dname, deptno);--唯⼀索引create unique index idx_emp_ename on scott.emp(ename);--反向键索引create index idx_emp_rev_no on scott.emp(empno) reverse;--位图索引create bitmap index idx_emp_name on scott.emp(dname);--索引组织表,⼀定要有主键create table tab (id int primary key,name varchar2(20)) organization index;--索引组织表的insert效率⾮常低--分区表索引create index idx_name on table(col) local/global;--索引分区提⽰:当给表创建主键或唯⼀键约束时,系统也会创建⼀个约束给该字段;同样创建索引也会占⽤数据库空间;索引在访问、查询的时候效率有提⾼,但是在修改表的时候效率就会降低;5、创建序列create sequence seq;select seq.nextval from dual;insert into tab values(sql.nextval, ‘music’);create sequence seqtabstart with 2 –从2开始increment by 3—每次加3nomaxvalue—没有最⼤值minvalue 1—最⼩值1nocycle—不循环nocache;--不缓存--修改序列,不能修改起始值alter sequence seqtabmaxvalue 1000;6、创建同义词同义词,顾名思义就是说别名、或是另⼀个名字。
oracle中查询表对象详细信息
四.其它查询
查询指定用户下所有表的所有列[名]及其详细信息:select * from all_tab_columns where owner='大小写区分的用户名' and table_name='表名' //无需权限
查询当前用户下所有表的所有列的注释:...]
1.查询当前用户下所有的表[名]及其详细信息:select * from user_tables [where ...] //可以和user_tab_comments left join用?.table_name=?.table_name作联结条件查询表详细信息和注释
2.查询当前用户下所有表的所有列[名]及其详细信息:select * from user_tab_columns [where table_name='表名'] //可以和user_col_comments left join用?.table_name=?table_name and ?.column_name=?.column_name作联结条件查询所有的字段和注释,要查询列数时可将select后from前的内容改为count(1)
3.查询当前实例下的所有用户信息:select * from all_users
二.无需联接需权限的查询
1.查询当前用户下的所有表的注释:select * from user_tab_comments [where table_name='表名']
2.
三.需要联接和权限的查询
一.无需联接和权限的查询
1.查询指定用户下所有表的所有列[名]及其注解:select * from all_col_comments where owner='大小写区分的用户名'
oracle查询表结构sql语句
oracle查询表结构sql语句1. 查询表结构的SQL语句在Oracle数据库中,可以使用以下SQL语句查询表的结构信息:1.1. 查询所有表的结构```SELECT owner, table_name, column_name, data_type, data_length, nullableFROM all_tab_columnsORDER BY owner, table_name, column_id;```该语句会返回所有表的所有列的结构信息,包括所属用户(owner)、表名(table_name)、列名(column_name)、数据类型(data_type)、数据长度(data_length)和是否可为空(nullable)等。
1.2. 查询指定表的结构```SELECT column_name, data_type, data_length, nullableFROM all_tab_columnsWHERE owner = 'SCHEMA_NAME' AND table_name = 'TABLE_NAME' ORDER BY column_id;```将上述语句中的'SCHEMA_NAME'替换为要查询表所属的用户,'TABLE_NAME'替换为要查询的表名,可以获取指定表的结构信息。
1.3. 查询表的主键信息```SELECT cols.table_name, cols.column_name, cons.constraint_nameFROM all_constraints cons, all_cons_columns colsWHERE cons.constraint_type = 'P'AND cons.constraint_name = cols.constraint_nameAND cons.owner = cols.ownerAND cols.table_name = 'TABLE_NAME'AND cols.owner = 'SCHEMA_NAME';```将上述语句中的'SCHEMA_NAME'替换为要查询表所属的用户,'TABLE_NAME'替换为要查询的表名,可以获取指定表的主键信息。
oracle系统表查询
oracle查询用户下的所有表select * from all_tab_comments -- 查询所有用户的表,视图等select * from user_tab_comments -- 查询本用户的表,视图等select * from all_col_comments --查询所有用户的表的列名和注释. select * from user_col_comments -- 查询本用户的表的列名和注释select * from all_tab_columns --查询所有用户的表的列名等信息(详细但是没有备注).select * from user_tab_columns --查询本用户的表的列名等信息(详细但是没有备注).--一般使用1:select t.table_name,ments from user_tab_comments t--一般使用2:select r1, r2, r3, r5from (select a.table_name r1, a.column_name r2, ments r3from user_col_comments a),(select t.table_name r4, ments r5 from user_tab_comments t)where r4 = r1oracle 系统表查询1、用户: select username from dba_users; 改口令 alter user spgroup identified by spgtest; 2、表空间: select*from dba_data_files; select*from dba_tablespaces;//表空间 select tablespace_name,sum(bytes), sum(blocks) from dba_free_space group by tablespace_name;//空闲表空间 select*from dba_data_files where tablespace_name='RBS';//表空间对应的数据文件 select*from dba_segments where tablespace_name='INDEXS'; 3、数据库对象: select*from dba_objects; CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、 PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
查询oracle中所有用户信息(转)
查询oracle中所有⽤户信息(转)----查询oracle中所有⽤户信息----1、查询数据库中的表空间名称----1)查询所有表空间select tablespace_name from dba_tablespaces;select tablespace_name from user_tablespaces;----2)查询使⽤过的表空间select distinct tablespace_name from dba_all_tables;select distinct tablespace_name from user_all_tables;----2、查询表空间中所有表的名称select * from dba_all_tables where tablespace_name = 'SYNC_PLUS_1' and owner='GDSDCZJ'----3、查询系统⽤户select * from all_usersselect * from dba_users----4、查看当前连接⽤户select * from v$session----5、查看当前⽤户权限select * from session_privs----6、查看所有的函数和存储过程select * from user_source----其中TYPE包括:PROCEDURE、FUNCTION----7、查看表空间使⽤情况select sum(Bytes_size) from (select a.file_id "FileNo",a.tablespace_name "表空间",a.bytes/1024/1021/1024 Bytes_size,a.bytes - sum(nvl(b.bytes, 0)) "已⽤",sum(nvl(b.bytes, 0)) "空闲",sum(nvl(b.bytes, 0)) / a.bytes * 100 "空闲百分率"from dba_data_files a, dba_free_space bwhere a.file_id = b.file_id(+)group by a.tablespace_name, a.file_id, a.bytesorder by a.tablespace_name);---------------------------------------------------------1.查看所有⽤户:select * from dba_users;select * from all_users;select * from user_users;----2.查看⽤户或⾓⾊系统权限(直接赋值给⽤户或⾓⾊的系统权限):select * from dba_sys_privs;select * from user_sys_privs; (查看当前⽤户所拥有的权限)----3.查看⾓⾊(只能查看登陆⽤户拥有的⾓⾊)所包含的权限sql>select * from role_sys_privs;----4.查看⽤户对象权限:select * from dba_tab_privs;select * from all_tab_privs;select * from user_tab_privs;----5.查看所有⾓⾊:select * from dba_roles;----6.查看⽤户或⾓⾊所拥有的⾓⾊:select * from dba_role_privs;select * from user_role_privs;----7.查看哪些⽤户有sysdba或sysoper系统权限(查询时需要相应权限)select * from V$PWFILE_USERS----8.SqlPlus中查看⼀个⽤户所拥有权限SQL>select * from dba_sys_privs where grantee='username';其中的username即⽤户名要⼤写才⾏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):
select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表
查询外键约束的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键名称
oracle查询所有用户表的表名、主键名称、索引、外键等
1、查找表的所有索引(包括索引名,类型,构成列):
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表
12、Oracle查看用户表空间使用情况:
select a.file_id "FileNo",a.tablespace_name
"Tablespace_name",
ቤተ መጻሕፍቲ ባይዱ
a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",
group by a.tablespace_name ,
a.file_id,a.bytes order by a.tablespace_name;
2、查找表的主键(包括名称,构成列):
select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表
3、查找表的唯一性约束(包括名称,构成列):
select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表
9、Oracle查询所有用户:
select * from all_users;
select * from dba_users
10、Oracle查看当前用户连接:select * from v$Session
11、Oracle查看当前用户权限:select * from session_privs
sum(nvl(b.bytes,0)) "Free",
sum(nvl(b.bytes,0))/a.bytes*100 "%free"
from dba_data_files a, dba_free_space b
where a.file_id=b.file_id(+)
6、Oracle中每个用户表的表名和行数
select table_name,num_rows from user_tables;
7、Oracle查询用户表空间:select * from user_all_tables
8、Oracle查询所有函数和储存过程:select * from user_source
查询引用表的键的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名
5、查询表的所有列及其属性
select t.*,MENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表