精华内容
下载资源
问答
  • 1、向中添加外键约束,把emp的deptno字段设置为emp的外键,引用自dept  ALTER TABLE emp ADD CONSTRAINT FK_test FOREIGN KEY(deptno) REFERENCES dept(deptno); 2、向中添加主键约束 alter table...

    一、主外键的添加、删除

    1、向表中添加外键约束,把emp表的deptno字段设置为emp表的外键,引用自dept表

          ALTER TABLE emp  ADD CONSTRAINT FK_test FOREIGN KEY(deptno) REFERENCES dept(deptno);

    2、向表中添加主键约束 alter table emp add constraint pk_emp primary key(empno);

    3、创建表的同时创建主键约束

    (1)无命名 create table EMP( empno int  primary key not null, ename varchar(20), deptno int);

    (2)有命名 create table EMP( empno int , ename varchar(20), deptno int , constraint PK_EMP primary key(empno));

    4、删除表中已有的主键约束

    (1)无命名可用 SELECT * from user_cons_columns;

          如:SELECT * from user_cons_columns where table_name='EMP';

            查找表中主键名称得emp表中的主键名为PK_EMP

            alter table student drop constraint  PK_EMP;

    (2)有命名 alter table emp drop constraint PK_EMP;

     

    二、更改表的结构

      1.编辑表的字段

      修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时有诸多限制):

      语法:

      ALTER TABLE 表名 MODIFY(列名,数据类型);

      eg1:

      alter table skate_test modify (author number(10,0) )

      在修改列的长度时候,只能编辑比现有字段实际存的长度还要大,否则提示下面的错误:

      ORA-01441: 无法减小列长度, 因为一些值过大

      eg2:

      alter table skate_test modify (author varchar2(10) )

      在修改列的数据类型的时候,所修改的列必须为空,否则提示下面的错误:

      ORA-01439: 要更改数据类型, 则要修改的列必须为空

      2.增加一个列

      语法:

      ALTER TABLE 表名 ADD(列名,数据类型);

      eg1:

      ALTER TABLE skate_test ADD(author NUMBER(38,0) not null);

      3.给列改名:

      语法:

      ALTER TABLE 表名 RENAME COLUMN 当前列名 TO 新列名;

      eg1:

      ALTER TABLE skate_test RENAME COLUMN author TO authorer_new

      4.删除一个列

      语法:

      ALTER TABLE 表名 DROP COLUMN 列名;

      eg1:

      alter table skate_test drop column author

      5.将一个表改名

      语法:

      ALTER TABLE 当前表名 RENAME TO 新表名;

      eg1:

      alter table skate_test rename to test_sakte

      5.给表加注释

      comment column on 表名.列名 is '注释内容';   //修改表的列的注释

      COMMENT ON TABLE MOVO_NEW.TEST_SAKTE  IS '注释内容';  //修改表的注释

     

    三、主键、外键等约束的启用与禁用

    这里以外键为例来说明

    执行下面的查询语句,我们会得到当前用户下所有可以被查询到的表的外键,并生相应的修改语句。我们指需要把生成的结果copy出来执行就OK了。

    不过对于alter语句的使用还是要谨慎,使用之前需要考虑清楚。

    --删除所有外键约束 的Sql代码 
    select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R'
    --alter table EMP drop constraint FK_TEST;
    --禁用所有外键约束的Sql代码
    select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'
    --alter table EMP disable constraint FK_TEST;
    --启用所有外键约束的Sql代码
    select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'   
    --alter table EMP enable constraint FK_TEST;

    这里有一点需要注意,在上面的查询语句中where条件后带的约束类型 constraint_type='R' ,我们这里指定的是'R',可以猜想到,出来R之外还有其他的约束类型。

    下面列出constraint_type的其他几种类型及相应的含义:

    Type CodeType DescriptionActs On Level
    CCheck on a tableColumn
    ORead Only on a viewObject
    PPrimary KeyObject
    RReferential AKA Foreign KeyColumn
    UUnique KeyColumn
    VCheck Option on a viewObject

    所以,我们需要禁用哪类约束,就将查询条件做相应的调整就好。

    展开全文
  • --禁用所有外键约束的Sql代码select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'--启用所有外键约束的Sql代码select 'alter table...

     

    --禁用所有外键约束的Sql代码
    select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'

    --启用所有外键约束的Sql代码
    select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'  

    执行查询出外键,然后执行即可

     

    以下提到的内容都很简单,所以不详细说明,仅罗列一些语法:

    一、主外键的添加、删除

    1、向表中添加外键约束,把emp表的deptno字段设置为emp表的外键,引用自dept表

          ALTER TABLE emp  ADD CONSTRAINT FK_test FOREIGN KEY(deptno) REFERENCES dept(deptno);

    2、向表中添加主键约束 alter table emp add constraint pk_emp primary key(empno);

    3、创建表的同时创建主键约束

    (1)无命名 create table EMP( empno int  primary key not null, ename varchar(20), deptno int);

    (2)有命名 create table EMP( empno int , ename varchar(20), deptno int , constraint PK_EMP primary key(empno));

    4、删除表中已有的主键约束

    (1)无命名可用 SELECT * from user_cons_columns;

          如:SELECT * from user_cons_columns where table_name='EMP';

            查找表中主键名称得emp表中的主键名为PK_EMP

            alter table student drop constraint  PK_EMP;

    (2)有命名 alter table emp drop constraint PK_EMP;

     

    二、更改表的结构

      1.编辑表的字段

      修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时有诸多限制):

      语法:

      ALTER TABLE 表名 MODIFY(列名,数据类型);

      eg1:

      alter table skate_test modify (author number(10,0) )

      在修改列的长度时候,只能编辑比现有字段实际存的长度还要大,否则提示下面的错误:

      ORA-01441: 无法减小列长度, 因为一些值过大

      eg2:

      alter table skate_test modify (author varchar2(10) )

      在修改列的数据类型的时候,所修改的列必须为空,否则提示下面的错误:

      ORA-01439: 要更改数据类型, 则要修改的列必须为空

      2.增加一个列

      语法:

      ALTER TABLE 表名 ADD(列名,数据类型);

      eg1:

      ALTER TABLE skate_test ADD(author NUMBER(38,0) not null);

      3.给列改名:

      语法:

      ALTER TABLE 表名 RENAME COLUMN 当前列名 TO 新列名;

      eg1:

      ALTER TABLE skate_test RENAME COLUMN author TO authorer_new

      4.删除一个列

      语法:

      ALTER TABLE 表名 DROP COLUMN 列名;

      eg1:

      alter table skate_test drop column author

      5.将一个表改名

      语法:

      ALTER TABLE 当前表名 RENAME TO 新表名;

      eg1:

      alter table skate_test rename to test_sakte

      5.给表加注释

      comment column on 表名.列名 is '注释内容';   //修改表的列的注释

      COMMENT ON TABLE MOVO_NEW.TEST_SAKTE  IS '注释内容';  //修改表的注释

     

    三、主键、外键等约束的启用与禁用

    这里以外键为例来说明

    执行下面的查询语句,我们会得到当前用户下所有可以被查询到的表的外键,并生相应的修改语句。我们指需要把生成的结果copy出来执行就OK了。

    不过对于alter语句的使用还是要谨慎,使用之前需要考虑清楚。

    --删除所有外键约束 的Sql代码
    select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R'
    --alter table EMP drop constraint FK_TEST;
    --禁用所有外键约束的Sql代码
    select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'
    --alter table EMP disable constraint FK_TEST;
    --启用所有外键约束的Sql代码
    select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'  
    --alter table EMP enable constraint FK_TEST;

    这里有一点需要注意,在上面的查询语句中where条件后带的约束类型 constraint_type='R' ,我们这里指定的是'R',可以猜想到,出来R之外还有其他的约束类型。

    下面列出constraint_type的其他几种类型及相应的含义:

    Type CodeType DescriptionActs On Level
    CCheck on a tableColumn
    ORead Only on a viewObject
    PPrimary KeyObject
    RReferential AKA Foreign KeyColumn
    UUnique KeyColumn
    VCheck Option on a viewObject

    所以,我们需要禁用哪类约束,就将查询条件做相应的调整就好。

    展开全文
  • Oracle 级定义约束与列级定义约束 1. 级定义约束 指的是在定义完一个所有列之后,再去定义所有相关的约束。 注意:not null 约束只能在列级上定义。 2. 列级定义约束 指的是在定义一个的每一列的...

    Oracle 表级定义表级约束与列级定义约束

    1. 表级定义约束

    指的是在定义完一个表所有列之后,再去定义所有相关的约束。

    注意:not null 约束只能在列级上定义。

    2. 列级定义约束

    指的是在定义一个表的每一列的同时定义每一个列的约束条件,其约束条件

    位于每一列之后。

    约束:FOREIGN KEY,PRIMARY KEY,NOT NULL,CHECK,UNIQUE

    check约束:是为了让表中某字段值能输入固定的值。

    unique约束:是指唯一约束,用于要求列种不允许出现重复值。可以为单独的列添加一个unique约束,也可以为多个列添加一个unique约束(属于表级约束)

    展开全文
  • oracle笔记约束

    2018-09-25 08:43:43
    oracle笔记约束,如何创建一个约束,删除约束,在创建的同时创建约束,在创建之后创建约束,有具体详细的代码案例!
  • oracle外键约束表无法truncate

    使用oracle truncate表的时候往往遇到有外键的数据表,这时表无法truncate,你必须先truncate外键表才能truncate当前表,

    这里使用另一种办法来解决这个问题:先把外键失效,truncate表之后再把外键生效。

    1.查询外键约束

    select * from ALL_CONSTRAINTS
    WHERE constraint_type='R' and owner='SS_HR';


    得到constraint_name 为:如:FK_PERSON_DEPT


    2 失效子表的外键约束

    ALTER TABLE  PERSON DISABLE CONSTRAINT FK_PERSON_DEPT ;


    3 再次执行truncate父表数据的操作

    TRUNCATE TABLE DEPARTMENT;


    4 生效外键约束

    ALTER TABLE  PERSON enable CONSTRAINT FK_PERSON_DEPT;

    展开全文
  • oracle表约束

    千次阅读 2018-08-28 19:07:26
    约束 – 创建好的结构之后,再去添加约束。 – 第一种写法 create table tb_stu4 ( id int, name varchar(20), sex char(4), age int, address varchar(100) default ‘广州天河’, phone ....
  • Oracle定义约束 外键约束 实验详解
  • oracle 数据库约束笔记

    2013-08-12 12:49:45
    oracle 数据库约束笔记oracle 数据库约束笔记
  • oracle约束

    2015-01-17 20:10:22
    详细介绍了oracle的常见约束,约束(主键),列级约束,唯一性约束,外键约束,并介绍了如何给相应的约束命名
  • Oracle唯一约束.txt

    2019-11-18 15:18:25
    Oracle唯一约束
  • oracle基本约束语法

    2012-10-22 12:02:39
    oracle基本约束语法,记录的oracle各种约束,以及基本的使用方法
  • oracle表约束

    2014-04-22 09:52:56
    1. 查看某张表列的约束及类型 SELECT USER_CONS_COLUMNS.CONSTRAINT_NAME AS 约束名, USER_CONS_COLUMNS.TABLE_NAME AS 表名, USER_CONS_COLUMNS.COLUMN_NAME AS 列名, CASE WHEN CONSTRAINT_TYPE='P' THEN...
  • Oracle Check约束

    千次阅读 2019-01-08 20:53:53
    最近做一份数据库的任务,发现MySQL中不支持在创建定义字段时使用check约束,如果要在MySQL中使用类似字段约束取值,有两种方式:1.枚举enum,2.创建触发器 MySQL关于check约束无效的解决办法 下面正式记录一下...
  • oracle 查看表约束,列约束

    千次阅读 2013-08-12 22:15:20
    USER_CONS_COLUMNS.CONSTRAINT_NAME AS 约束名, USER_CONS_COLUMNS.TABLE_NAME AS 表名, USER_CONS_COLUMNS.COLUMN_NAME AS 列名, USER_CONS_COLUMNS.POSITION AS 位置 FROM USER_CONSTRAINTS JOIN USER
  • oracle创建约束 Constraint 约束 如不给约束指定起名,那么oracle会自动给约束起名 约束和列级约束 作用范围: ①列级约束只能作用在一个列上 ②约束可以作用在多个列上(当然约束也...
  • Oracle 约束错误约束错误Oracle 约束错误约束错误
  • 08 oracle约束 ppt

    2011-07-29 14:48:09
    08 oracle约束 ppt 08 oracle约束 ppt
  • select * from dba_constraints t where 1=1 and t.constraint_name=‘FK_HU_MASTER_LOCATION’----约束
  • oracle表约束

    千次阅读 2009-04-09 10:14:00
    create table stu( id number ptimary key, 主键约束 name varchar2(20) not null,或 constraint stu_name_nn not null 非空约束 grade number default 1, 
  • 1、普通外键约束(如果存在子引用父主键,则无法删除父记录) 2、级联外键约束(可删除存在引用的父记录,而且同时把所有有引用的子记录也删除) 3、置空外键约束(可删除存在引用的父记...
  • Oracle字段约束.docx

    2020-04-15 15:39:36
    Oracle数据库常用的字段约束
  • Oracle 约束 总结

    2017-03-13 11:58:29
    学习Oracle 约束总结
  • oracle约束

    2013-10-11 16:08:33
    oracle约束 一、维护数据的完整性 概述:数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则。在Oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,...
  • Oracle 外键约束、父

    千次阅读 2014-10-22 10:45:46
    CREATE TABLE employees(  employee_id NUMBER(6),  last_name VARCHAR2(25) NOT NULL...ON DELETE CASCADE:当父中的列被删除时,子中相对应的列也被删除 ON DELETE SET NULL:子中相应的列置空
  • ORACLE查看约束

    千次阅读 2019-05-15 15:57:02
    SELECT constraint_name, constraint_type, search_condition FROM user_constraints WHERE table_name = 'FR_WH_M' ...constraint_name是用户自定义的约束名,_NN代表NOT NULL constraint_type 中C对应CHEC...
  • oracle约束详解

    2010-04-11 14:28:10
    oracle约束详解.oracle约束详解.oracle约束详解.oracle约束详解.
  • 使用Oracle数据库时,考虑到数据的完整性,有时会为中的列添加约束。而当需要对表中的约束进行删除或其他操作时,就需要查询此中定义的约束。尤其是当需要删除那些必须得知道约束名才能删除的约束时,查询中的...
  • Oracle建立约束、删除约束

    万次阅读 2018-02-05 16:00:18
    NOT NULL 约束只能在列级定义,不能在级定义 例: CREATE TABLE emp01( eno INT NOT NULL, name VARCHAR2(10) CONSTRAINT nn_name2 NOT NULL, salary NUMBER(6,2) ); 2.定义UNINQUE约束 alter ...
  • Oracle创建约束

    2016-08-09 09:33:31
    Oracle入门教程:创建约束Oracle创建同SQL Server一样,使用CREATE TABLE命令来完成。创建约束则使用如下命令: 语法格式:ALTER TABLE命令  ALTER TABLE 表名 ADD CONSTRAINT 约束名 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 95,134
精华内容 38,053
关键字:

oracle表约束