欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle常用SQL操作

程序员文章站 2022-04-03 20:53:41
...
-- 查看ORACLE 数据库中所有表的注释
select table_name,comments from user_tab_comments;
-- 查看ORACLE 数据库中所有列的注释
select table_name,column_name,comments from user_col_comments;
①增加字段语法:
  alter table 表名 add (字段名 字段类型 默认值 是否为空);
修改字段的语法:
  alter table 表名 modify (字段名 字段类型 默认值 是否为空);
删除字段的语法:
  alter table 表名 drop column 字段名;

②修改表字段长度
   alter table 表名 modify column_name varchar2(32)
   alter table 表名 modify (column_name1 varchar(20) default null,column_name2 varchar2(30));
     查看字段长度:
    select column_name as 字段名, data_type as 数据类型, DATA_LENGTH as 数据长度  from user_tab_columns  where table_name = 'EMP'   and column_name in ('ENAME','SAL')

④字段的重命名:
  alter table 表名 rename  column  列名 to 新列名   (其中:column是关键字)
⑤表的重命名:
  alter table 表名 rename to  新表名
⑥ 查看ORACLE 数据库中所有表的注释:
  select table_name,comments from user_tab_comments;
⑦查看ORACLE 数据库中所有列的注释:
  select table_name,column_name,comments from user_col_comments;
⑧使用存储过程循环向某表进行添加X字段
  如:向某个库中以AB开头的表添加CREATED字段,并添加注释
    DECLARE
    V_SQL VARCHAR2(2000);
    V_TABLE_NAME VARCHAR2(30);
    CURSOR C1 IS
    SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME like 'AB_%';   --查询当前用户下的所有表
    BEGIN
    OPEN C1;
    LOOP
     --提取一行数据到c1
      FETCH C1
        INTO V_TABLE_NAME;
        --判读是否提取到值,没取到值就退出
        EXIT WHEN C1%NOTFOUND;
        V_SQL := 'alter table ' || V_TABLE_NAME || ' ADD CREATED   VARCHAR2(20) DEFAULT 默认值,没有就为NULL 修改值';
        EXECUTE IMMEDIATE V_SQL;
        V_SQL := 'COMMENT ON COLUMN ' || V_TABLE_NAME || '.' || 'CREATED IS ''存储时间''';
       EXECUTE IMMEDIATE V_SQL;
   END LOOP; --关闭游标
   CLOSE C1;
END;