如何快速Oracle 表结构熟悉,看懂结构图表结构图

博客访问: 201569
博文数量: 160
注册时间:
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Oracle
1、desc命令2、dbms_metadata.get_ddl函数例如查看oracle.a1的表结构:SQL>SQL> DECLARE
TT varchar2(4000);
tt := DBMS_METADATA.GET_DDL('TABLE','A1','ORACLE');
dbms_output.put_line(tt);
CREATE TABLE "ORACLE"."A1"
"ID" VARCHAR2(10),
"NAME" VARCHAR2(10)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "ORATBS"
PL/SQL procedure successfully completed SQL> SQL> desc oracle.a1;Name Type
Nullable Default Comments ---- ------------ -------- ------- -------- ID
VARCHAR2(10) Y
NAME VARCHAR2(10) Y
阅读(17842) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。3598人阅读
Oracle(22)
以下的文章主要是介绍常用的命令中如何查看表的结构,如果你对Oracle常用的命令中如何查看表的结构的这一实际操作方案感兴趣的话,你就可以浏览以下的文章对其有一个更好的了解。
数据库实例:(update 日15:47:34)
select instance_name,status,version,database_status from v$
select table_name from user_ //当前用户的表&&&&&&&
table_name,tablespace_name,last_analyzed等
select table_name from all_ //所有用户的表&&&&&&&&&&
ower,table_name,tablespace_name,last_analyzed等
select table_name from dba_ //包括系统表&&&&&&
ower,table_name,tablespace_name,last_analyzed等
select table_name from dba_tables where owner='用户名'&
all_objects:&
ower,object_name,subobject_name,object_id,created,last_ddl_time,timestamp,status等&
获取表字段:&
select * from user_tab_columns where Table_Name='用户表';&
select * from all_tab_columns where Table_Name='用户表';&
select * from dba_tab_columns where Table_Name='用户表';&
user_tab_columns:&
table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等&
all_tab_columns :&
ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等&
dba_tab_columns:&
ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等&
获取表注释:&
select * from user_tab_comments&
user_tab_comments:table_name,table_type,comments&
--相应的还有dba_tab_comments,all_tab_comments,这两个比user_tab_comments多了ower列。&
获取字段注释:&
select * from user_col_comments&
user_col_comments:table_name,column_name,comments
修改表字段:
Alter table 表名 modify(字段名 类型 约束);
alter table 表名 add(字段名 类型 约束);
1.登陆系统用户
在Oracle常用命令中查看表结构sqlplus 然后输入系统用户名和密码
登陆别的用户
conn 用户名/密码;
2.创建表空间
3.创建用户
4.创建角色
create role 角色名 identified by 密码;
5.给角色授权
grant create session to 角色名;--给角色授予创建会话的权限
grant 角色名 to 用户名; --把角色授予用户
6.给用户授予权限
7.select table_name from user_&& 察看当前用户下的所有表
8.select tablespace_name from user_ 察看当前用户下的 表空间
9.select username from dba_察看所有用户名称命令 必须用sys as sysdba登陆
create table 表名
11.为usrs表添加主键和索引
12.为已经创建users表添加外键
13.把两个列连接起来
表名; --把name和id连接起来
14.截取字符串
表名;把name中的‘李’去掉
15.运行事务之前必须写
打开输入输出(不写的话,打印不出信息)
16.while的应用
17.select into 的用法 --只能处理一行结果集
上述的相关内容就是对Oracle常用命令中查看表结构的描述,希望会给你带来一些帮助在此方面
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:91738次
积分:1748
积分:1748
排名:第18152名
原创:82篇
转载:34篇
(1)(1)(1)(1)(2)(3)(1)(2)(1)(1)(2)(3)(2)(1)(3)(3)(2)(3)(5)(2)(3)(4)(3)(2)(2)(1)(4)(6)(7)(5)(2)(3)(4)(5)(24)posts - 309,&
comments - 34,&
trackbacks - 0
Oracle数据库字典&&&&在Oracle的绝大多数数据字典视图中都有象DBA_TABLES,ALL_TABLES和USER_TABLES这样的视图家族。Oracle中有超过100个视图家族,下表列出了最重要和最常用的视图家族,需要注意的是每个视图家族都有一个DBA_,一个ALL_一个USER_视图。
包含了表的列权限,包括授予者、被授予者和权限
数据范围信息,比如数据文件,数据段名(segment_name)和大小
索引信息,比如类型、唯一性和被涉及的表
IND_COLUMNS
索引列信息,比如索引上的列的排序方式
对象信息,比如状态和DDL time
ROLE_PRIVS
角色权限,比如GRANT和ADMIN选项
表和索引的数据段信息,比如tablespace和storage
SEQUECNCES
序列信息,比如序列的cache、cycle和ast_number
除触发器之外的所有内置过程、函数、包的源代码
别名信息,比如引用的对象和数据库链接db_link
系统权限,比如grantee、privilege、admin选项
TAB_COLUMNS
表和视图的列信息,包括列的数据类型
表权限,比如授予者、被授予者和权限
表信息,比如表空间(tablespace),存储参数(storage parms)和数据行的数量
触发器信息,比如类型、事件、触发体(trigger body)
用户信息,比如临时的和缺省的表空间
视图信息,包括视图定义
在Oracle中还有一些不常用的数据字典表,但这些表不是真正的字典家族,他们都是一些重要的单一的视图。这些视图见下表:
USER_COL_PRIVS_MADE
用户授予他人的列权限
USER_COL_PRIVS_RECD
用户获得的列权限
USER_TAB_PRIVS_MADE
用户授予他人的表权限
USER_TAB_PRIVS_RECD
用户获得的表权限
Oracle数据库字典的应用借助Oracle数据字典,利用Oracle的DDL语句,我们可以做很多事情,几乎所有的Oracle开发辅助工具都是利用这一点进行设计的。作者将通过如何取得数据库表字段信息来说明。首先我们定义一个数据库表,数据库表结构如下:
数据库表名[TABLE_TEST]
创建表的SQL语句如下--&创建数据表create table TABLE_TEST(&&& NAME varchar2(40) not null,&&& *** varchar2(1) default ''''Y'''' not null,&&& BIRTHDAY date not null,&&& HEIGHT number(3,2),&&& WEIGHT number(3,2),&&& MEMO blob);--&给列添加备注&&comment on column TABLE_TEST.NAME is ''''姓名'''';& comment on column TABLE_TEST.*** is ''''性别'''';& comment on column TABLE_TEST.BIRTHDAY is ''''生日'''';& comment on column TABLE_TEST.HEIGHT is ''''身高'''';& comment on column TABLE_TEST.WEIGHT is ''''体重'''';& comment on column TABLE_TEST.MEMO is ''''备注'''';--&创建约束关系 主键 外键 其他&&alter table TABLE_TEST add constraint TB_TEST_P_NAME primary key (NAME);
数据表创建完毕,执行下列SQL语句:select&&& A.column_name&字段名,A.data_type&数据类型,A.data_length&长度,A.data_precision整数位,&&& A.Data_Scale&小数位,A.nullable&允许空值,A.Data_default&缺省值,B.comments&备注from&&& user_tab_columns A,user_col_comments Bwhere&&& A.Table_Name = B.Table_Name&&& and A.Column_Name = B.Column_Name&&& and A.Table_Name = ''''TABLE_TEST''''
我们可以得出一下结果:
这样,我们在进行程序设计时,通过一条简单的SQL语句,然好通过Ole调用Word,便可为最终用户导出完整的数据库表字典文档。再执行下列SQL语句:select&&& INDEX_NAME&索引名,INDEX_TYPE&索引类型,UNIQUENESS&索引类别from&&& user_indexeswhere&&& TABLE_NAME = ''''TABLE_TEST''''
得到结果如下(注:SYS_ILC00006$$索引为系统在创建数据库表时自动创建的,用于数据库表内容的维护):
SYS_ILC00006$$
TB_TEST_P_NAME
执行下列SQL语句,我们将得到更多的关于数据库表结构的信息:select&&& A.column_name&字段名,A.data_type&数据类型,A.data_length&长度,A.data_precision整数位,&&& A.Data_Scale&小数位,A.nullable&允许空值,A.Data_default&缺省值,B.comments&备注,&&& C.IndexCount&索引次数from&&& user_tab_columns A,&&& user_col_comments B,&&& (select count(*) IndexCount,Column_Name from User_Ind_Columns where Table_Name = ''''TABLE_TEST'''' group by Column_Name) Cwhere&&& A.Table_Name = B.Table_Name&&& and A.Column_Name = B.Column_Name&&& and A.Column_Name = C.Column_Name(+)&&& and A.Table_Name = ''''TABLE_TEST''''
得到结果如下:
&&&&当然Oracle数据字典的应用远不止这些,通过Oracle数据库字典的支持,我们可以得到Oracle数据库结构的所有信息,著名的数据库开发工具PL/SQL Developer完全就是基于Oracle的数据库字典实现的。
阅读(...) 评论() &}

我要回帖

更多关于 oracle看懂执行计划 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信