【数据库】Oracle常用DDL语句整理(删除表、修改表名、修改表注释、表主键等、新增列、修改列等操作)

1.1 Oracle常用DDL语句整理

1.1.1、删除表

drop table ARCH_MG.ORDER_APP_FORM;

1.1.2、修改表名

修改表名有两种方式,我们这里就只写一种常用方式

ALTER TABLE SRV_MG.SRV_MONI_FILE RENAME TO SRV_S_FILE;

1.1.3、表添加列

ALTER TABLE ARCH_MG.ARCH_USER_EXPAND ADD USER_NO1 NUMBER(16);

1.1.4、表删除列

ALTER TABLE ARCH_USER_EXPAND DROP COLUMN USER_NO;

1.1.5、修改表列类型

当不同类型修改的时候,该字段有数据情况将会修改失败,针对这种情况我们需要新建一个差不多字段,把需要修改字段的值赋值给新字段,然后删除旧字段,新字段重新修改名字和以前保持一致

ALTER TABLE BIZ_PROJECT_INFO MODIFY PRO_NAME VARCHAR2(128);

如下面情况则是从VARCHAR2转换到NUMBER类型,是需要一个中间过程,要不然无法修改成功

ALTER TABLE ARCH_MG.ARCH_USER_EXPAND ADD USER_NO1 NUMBER(16);
UPDATE ARCH_MG.ARCH_USER_EXPAND SET USER_NO1= USER_NO;
ALTER TABLE ARCH_USER_EXPAND DROP COLUMN USER_NO;
ALTER TABLE ARCH_USER_EXPAND RENAME COLUMN USER_NO1 TO USER_NO;

如果是TIMESTAMPDATE类型则不需要中转,能直接转换成功

ALTER TABLE ARCH_MG.ARCH_LOGIN_LOG MODIFY CREATETIME  DATE;

1.1.6、修改表列名

ALTER TABLE BIZ_PROJECT_INFO RENAME COLUMN PRO_NAME TO PROJECT_NAME;

1.1.7、修改表列注释

COMMENT ON COLUMN ARCH_MG.SYS_METER.TOTAL_METER_TYPE IS '总表类型 码值:TOTAL_METER_TYPE(1010501)';

1.1.8、修改表注释

COMMENT ON TABLE BIZ_MG.BIZ_USER_SIGN_SUB IS '业务应用-用户签约';

1.1.9 表添加主键

ALTER TABLE BIZ_MG.BIZ_USER_EXEC_LOG ADD CONSTRAINT PK_BIZ_USER_EXEC_LOG PRIMARY KEY (TASK_ID);

1.1.10 删除表主键

ALTER TABLE BIZ_MG.BIZ_USER_EXEC_LOG DROP PRIMARY KEY

1.2 Oracle同义词

1.2.1 创建同义词

大部分情况下我们都是创建公有同义词,私有同义词只能在其模式内使用而且不能和当前模式的对象同名,使用场景比较少;创建同义词需要权限

CREATE OR REPLACE PUBLIC SYNONYM ANY_USER_OBJ FOR ANY_MG.ANY_USER_OBJ;

1.2.2 删除同义词

当表被删除的时候同时需要删除同义词,否则再去查询的时候就会出现同义词循环连;删除同义词同样需要权限

DROP PUBLIC SYNONYM BIZ_REAL_CONS;

1.2.3 同义词赋权

一般是MG赋权给本域下CRUD帐号增删查改权限,其他域查询权限

GRANT SELECT,INSERT,UPDATE,DELETE ON ANY_USER_OBJ TO ANY_CRUD;
GRANT SELECT ON ANY_USER_OBJ TO SRV_CRUD;
GRANT SELECT ON ANY_USER_OBJ TO ARCH_CRUD;
GRANT SELECT ON ANY_USER_OBJ TO BIZ_CRUD;

1.3 查询数据库中表无注释

SELECT TABLE_NAME,
       COMMENTS
  FROM ALL_TAB_COMMENTS 
 WHERE TABLE_TYPE='TABLE'
   AND OWNER IN ('用户1','用户2','用户3','用户4','用户5') 
   AND COMMENTS IS NULL 

1.4 查询数据库中表字段无注释

SELECT TABLE_NAME,
       COLUMN_NAME,
       COMMENTS
  FROM ALL_COL_COMMENTS 
 WHERE OWNER IN ('用户1','用户2','用户3','用户4','用户5') 
  AND COMMENTS IS NULL 
  AND TABLE_NAME NOT LIKE '%==$0'
ORDER BY OWNER,TABLE_NAME DESC

1.5 查询数据库中无主键表

select owner, table_name
from dba_tables a
where not exists(select *
                 from dba_constraints b
                 where a.table_name = b.table_name
                   and constraint_type = 'P'
                   and owner in ('用户1','用户2','用户3','用户4','用户5') )
  and owner in ('用户1','用户2','用户3','用户4','用户5') ;
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Oracle 中,可以使用 "DESCRIBE" 或 "DESC" 命令来查看信息,其中也包括注释信息。 例如: ``` DESCRIBE 表名; ``` 或 ``` DESC 表名; ``` 另外,也可以使用 "COLUMN" 命令来查询特定的详细信息,包括注释: ``` COLUMN 名 FORMAT A50 SELECT COLUMN_NAME, COMMENTS FROM USER_COL_COMMENTS WHERE TABLE_NAME = '表名' AND COLUMN_NAME = '名'; ``` ### 回答2: 在Oracle中,可以使用DDL语句获取注释DDL数据库定义语言,包括创建、修改和删除数据库对象的语句。 要获取注释,可以使用如下的DDL语句: ```sql SELECT COMMENTS FROM USER_TAB_COMMENTS WHERE TABLE_NAME = '表名'; ``` 在这个DDL语句中,`USER_TAB_COMMENTS`是Oracle系统提供的一个视图,用于存储注释信息。这个视图包含了所有用户自定义注释。`TABLE_NAME`是一个条件,用于指定要查找注释表名称。将该语句中的'表名'替换为具体的表名,就可以获取到该注释信息。 执行上述的DDL语句后,将返回包含所查询注释文本的结果集。如果该没有注释,则返回空值。通过解析查询结果,可以获取到注释信息。 需要注意的是,该方法仅适用于获取用户定义注释信息。如果需要获取系统或其他用户的注释,需要修改`USER_TAB_COMMENTS`为相应的系统视图,如`ALL_TAB_COMMENTS`。 总之,通过使用DDL语句并指定相关条件,可以获取到Oracle数据库注释信息。 ### 回答3: 在Oracle数据库中,可以通过以下DDL语句来获取注释: ```sql SELECT COMMENTS FROM USER_TAB_COMMENTS WHERE TABLE_NAME = '表名'; ``` 其中,`USER_TAB_COMMENTS`是系统视图,包含了用户注释信息。通过将`表名`替换为实际的表名,可以获取到对应注释信息。 此外,也可以通过以下DDL语句来获取注释: ```sql SELECT COMMENTS FROM ALL_TAB_COMMENTS WHERE TABLE_NAME = '表名' AND OWNER = '用户名'; ``` 其中,`ALL_TAB_COMMENTS`是系统视图,包含了所有用户注释信息。通过将`表名`替换为实际的表名,将`用户名`替换为实际的用户名,可以获取到指定用户下对应注释信息。 需要注意的是,以上DDL语句只能获取到用户自己创建的注释信息,不能获取到系统或其他用户创建的注释信息。同时,如果没有被注释,以上DDL语句将返回空值。 总之,通过DDL语句可以方便地获取Oracle数据库注释信息,根据不同的用户权限和的所属关系,选择相应的系统视图进行查询即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值