ORACLE操作列

一.下面介绍oracle数据库操作列的CURD操作

--学生表  STUDENT
CREATE TABLE STUDENT(
      ID NUMBER(18) NOT NULL,
      NAME VARCHAR2(20),
      NO  VARCHAR2(12),
      AGE NUMBER(3)
);

二.修改表字段

-- 添加学生表 CLASS学生所在的班级字段
DECLARE
  AN_FLAG NUMBER DEFAULT 0;
BEGIN
  SELECT COUNT(1)
  INTO AN_FLAG
   FROM USER_TAB_COLUMNS
   WHERE TABLE_NAME='STUDENT'
   AND COLUMN_NAME='CLASS';
  IF AN_FLAG = 0 THEN
    EXECUTE IMMEDIATE 'ALTER TABLE STUDENT ADD CLASS VARCHAR2(30)';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN STUDENT.CLASS IS ''学生所在的班级''';
  END IF;
END;
/

三.修改表字段的类型

-- 修改学生表 AGE字段的类型
DECLARE
  AN_FLAG NUMBER DEFAULT 0;
BEGIN
  SELECT COUNT(1)
  INTO AN_FLAG
   FROM USER_TAB_COLUMNS
   WHERE TABLE_NAME='STUDENT'
   AND COLUMN_NAME='AGE';
  IF AN_FLAG = 1 THEN
    EXECUTE IMMEDIATE 'ALTER TABLE STUDENT MODIFY AGE CHAR(3)';
  END IF;
END;
/

四.修改表字段的名称

-- 修改学生表 AGE字段的名称
DECLARE
  AN_FLAG NUMBER DEFAULT 0;
BEGIN
  SELECT COUNT(1)
  INTO AN_FLAG
   FROM USER_TAB_COLUMNS
   WHERE TABLE_NAME='STUDENT'
   AND COLUMN_NAME='AGE';
  IF AN_FLAG = 1 THEN
    EXECUTE IMMEDIATE 'ALTER TABLE STUDENT RENAME COLUMN AGE TO AGE_TO';
  END IF;
END;
/ 

五.删除表字段 

-- 修改学生表 删除AGE字段
DECLARE
  AN_FLAG NUMBER DEFAULT 0;
BEGIN
  SELECT COUNT(1)
  INTO AN_FLAG
   FROM USER_TAB_COLUMNS
   WHERE TABLE_NAME='STUDENT'
   AND COLUMN_NAME='AGE';
  IF AN_FLAG = 1 THEN
    EXECUTE IMMEDIATE 'ALTER TABLE STUDENT DROP COLUMN AGE';
  END IF;
END;
/ 
posted @ 2016-07-29 16:41  独具匠心  阅读(674)  评论(0编辑  收藏  举报