oracle 查询用户名表名列名主键
时间: 2023-09-01 13:04:41 浏览: 56
要查询Oracle中的用户名、表名、列名以及主键信息,可以通过以下的SQL查询语句完成:
```
SELECT u.username AS user_name, t.table_name, c.column_name, c.position AS primary_key_position
FROM all_users u
JOIN all_tables t ON u.username = t.owner
JOIN all_tab_columns c ON t.owner = c.owner AND t.table_name = c.table_name
JOIN all_constraints pk ON t.owner = pk.owner AND t.table_name = pk.table_name AND c.column_name = pk.column_name AND pk.constraint_type = 'P'
ORDER BY u.username, t.table_name, c.column_name;
```
该查询语句使用了四个关联的表:all_users、all_tables、all_tab_columns 和 all_constraints,通过多个连接条件来获取所需的信息。其中,u.username AS user_name 用于查询用户名,t.table_name 查询表名,c.column_name 查询列名,pk.constraint_type = 'P' 用于筛选出主键信息。
查询结果会按照用户名、表名和列名的顺序进行排序。主键信息也会显示在结果中,主键位置使用 primary_key_position 列表示。
注意:以上查询语句只能获取当前数据库用户有权限访问的表和列信息,如果想要查询其他用户的信息,需要相应的权限和访问权限。