zoukankan      html  css  js  c++  java
  • 3-表约束修改

    对表的约束的修改的基本SQL语句

    --3表约束的修改,基于1中建立的表进行的修改操作,[]内容可以不存在
    
    --3.1主键
    --3.1.1设置某列为主键-1
    ALTER TABLE EMP MODIFY EMPNO PRIMARY KEY;
    --3.1.2设置某列为主键-2
    ALTER TABLE EMP ADD CONSTRAINT pk_emp_empno PRIMARY KEY(EMPNO);
    --3.1.3删除主键约束-1
    ALTER TABLE EMP DROP PRIMARY KEY;
    --3.1.4删除主键约束-2
    ALTER TABLE EMP DROP CONSTRAINT pk_emp_empno;
    --3.1.5注意事项
    /*
    3.1.4中是根据约束的名字来删除,约束的名字可以通过3.1.2方法在增加约束时指定名字,
    若通过3.1.1中方法增加约束,则系统会有一个默认的约束名称,可以通过查系统表USER_CONSTRAINTS
    得知在该表有的约束的详细信息
    */
    SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME='EMP';
    /*
    USER_CONSTRAINTS需要了解的字段:
    OWNER:所属用户
    CONSTRAINT_NAME:约束名,在3.1.4中删除约束时根据这个名字
    CONSTRAINT_TYPE:约束类型[P:primary key,R:foreign key, U:unique, C:check(unique约束为C类型)]
    */
    
    --3.2外键
    --3.2.1设置外键约束-1
    ALTER TABLE EMP MODIFY FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO);
    --3.2.2设置外键约束-2
    ALTER TABLE EMP ADD CONSTRAINT rk_emp_deptno FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO);
    /*
    外键约束存在一个级联删除的问题,意思为当所依附的表的数据记录删除时,
    依附于那条被删除的记录的数据也要被删除,举例:当某个部门被删除时,该部门的所有员工也删除
    需要达到这种效果:可以在建立外键约束时添加ON DELETE CASCADE
    */
    ALTER TABLE EMP ADD CONSTRAINT rk_emp_deptno FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO) ON DELETE CASCADE;
    --3.2.3删除外键约束
    ALTER TABLE EMP DROP CONSTRAINT SYS_C0017586;--SYS_C0017586为系统默认名字,性质同3.1.4
    
    --3.3NOT NULL
    --3.3.1添加NOT NULL约束-1
    ALTER TABLE EMP MODIFY HIREDATE NOT NULL;
    --3.3.2添加NOT NULL约束-2
    ALTER TABLE EMP ADD CONSTRAINT NN_EMP_HIREDATE CHECK(HIREDATE IS NOT NULL);
    /*注意:在添加非空约束通过通用方法时需要变更为check约束*/
    
    --3.4UNIQUE
    --3.4.1添加UNIQUE约束-1
    ALTER TABLE EMP MODIFY ENAME UNIQUE;
    --3.4.1添加UNIQUE约束-2
    ALTER TABLE EMP ADD CONSTRAINT U_EMP_ENAME UNIQUE(ENAME);
    
    --3.5CHECK:假设的EMP表有SEX性别这一列,值只能为男,女
    --check约束举例-1
    ALTER TABLE EMP MODIFY SEX CHECK(SEX IN ('', ''));
    --check约束举例-2
    ALTER TABLE EMP ADD CONSTRAINT C_EMP_SEX CHECK(SEX IN ('',''));
    
    --总结
    --对表约束修改有两种方法
    --1:ALTER TABLE 表名 MODIFY 约束
    --2:ALTER TABLE 表名 ADD [CONSTRAINT 约束名] 约束
    --删除表约束
    --通用:ALTER TABLE 表名 DROP CONSTRAINT 约束名
  • 相关阅读:
    【JS】DOM
    【JS】事件处理
    【JS】引用类型之Global
    【JS】引用类型之RegExp
    【JS】引用类型之Function
    树形图(菜单)构建组建dhtmlXTree
    【JS】引用类型之String
    【JS】引用类型之Math
    【JS】鼠标事件
    【JS】UI事件
  • 原文地址:https://www.cnblogs.com/superstudy/p/5091334.html
Copyright © 2011-2022 走看看