精华内容
下载资源
问答
  • 数据库中常用的约束约束作用

    千次阅读 2017-09-19 08:59:56
    1、声明所使用标识符不一样 ,函数使用function ,存储过程procedure ...4、函数参数作用仅仅是将数据传入函数,存储过程参数可以有传入和传出两种方式(即存储过程里,可以通过参数结果将所需要结果返回)

    1.非空约束:由非空约束约束的字段不能为空
    2.唯一约束:由唯一约束约束的字段如果填写内容,则内容不能重复,
    3.主键约束:由主键约束约束的字段,必须非空且唯一,一个表中只能有一个主键,
    4.外键约束:由外键约束约束的字段,对其修改时,添加必须参照主表的相性字段。

    展开全文
  • Oracle数据库中的约束

    2017-05-03 01:02:14
    列出Oracle数据库中有哪些约束,并说明该约束的作用 很遗憾,一不小心就把上学期学得挺好的Oracle忘完了,突然想起来,查阅资料,同时在此记录一下。为了维护数据的完整性,Oracle提供了5种约束: NOT NULL (非空):...

    Oracle数据库中的约束

    注:本文参考自文章

    上周应聘一家公司的实习生,笔试时遇到一个题:

    • 列出Oracle数据库中有哪些约束,并说明该约束的作用

    很遗憾,一不小心就把上学期学得挺好的Oracle忘完了,突然想起来,查阅资料,同时在此记录一下。


    为了维护数据的完整性,Oracle提供了5种约束:

    1. NOT NULL (非空):约束该列一定要输入值。

    2. UNIQUE Key (唯一) :当定义了唯一约束后,该列值是不能重复的,但是可以为null。

    3. PRIMARY KEY (主键) :用来唯一标示表中的一个列,一个表中的主键约束只能有一个。当定义主键约束后,该列不但不能重复而且不能为NULL。

    4. FOREIGN KEY (外键) :用于定义主表和从表之间的关系,外键约束要定义在从表上,主表则必须具有主键约束或是unique约束,当定义外键约束后,要求从表的外键列数据必须在主表的主键列存在或是为NULL。

    5. CHECK :用于强制行数据必须满足的条件,假定在sal列上定义了check约束,并要求sal列值在1000~2000之间,如果不在1000~2000之间就会提示出错:check(sal between 1000 and 2000)。

    展开全文
  • oracle 数据库的约束

    2018-09-25 21:02:59
    第一种 约束: 主键约束(PRMARY KEY ) 作用:用来识别一个行的,添加了主键约束的列,具有唯一且非空的特性,一般主键会用来设置id的,因为id是一个有序且无意义的。 添加主键约束代码示例 --第一种添加方式 AL.....

    oracle 数据库的 约束

    什么是约束: 通俗来说约束就是一种规则,目的就是为了保证数据库中的数据的完整性和一致性的检查机制。

    oracle数据库有五种类型的约束

    第一种 约束: 主键约束(PRMARY KEY ) 作用:用来识别一个行的,添加了主键约束的列,具有唯一且非空的特性,一般主键会用来设置id的,因为id是一个有序且无意义的。

    添加主键约束代码示例

    --第一种添加方式
    ALTER TABLE STUDENT ADD CONSTRAINT PK_STU_ID PRIMARY KEY(STU_ID);
    
    --第二种添加方式
    CREATE TABLE STUDENT(
        STU_ID  NUMBER(4) CONSTRAINT PK_STU_ID PRIMARY KEY,--行级定义
        STU_NAME VARCHAR2(10),
        STU_CLASS NUMBER(4)  
    )
    --第三种添加方式
    CREATE TABLE STUDENT(
        STU_ID NUMBER(4),
        STU_NAME VARCHAR2(4),
        STU_CLASS NUMBER(4),
        CONSTRAINT PK_STU_ID PRIMARY KEY(STU_ID); --表级定义
    )

    第二种约束:唯一约束(UNIQUE) 作用: 确保定义了唯一约束的列中的值,不存在重复的值,但可以为NULL。

    添加唯一约束代码示例

    --第一种添加方式
    ALTER TABLE STUDENT ADD CONSTRAINT UN_STU_NAME UNIQUE(STU_NAME);
    --第二种添加方式
    CREATE TABLE STUDENT(
        STU_ID NUMBER(4),
        STU_NAME VARCHAR2(4) CONSTRAINT UN_STU_NAME UNIQUE--行级定义
    
    )
    --第三种添加方式
    CREATE TABLE STUDENT(
        STU_ID NUMBER(4),
        STU_NAME VARCHAR2(10),
        CONSTRAINT UN_STU_NAME UNIQUE(STU_NAME)--表级定义
    )
    

    第三种约束:非空约束(NOT NULL )  被定义了非空约束的列 值不能为 null 。

    代码示例:

    --第一种添加方式
    ALTER TABLE STUDENT MODIFY STU_NAME NOT NULL;
    
    --第二种添加方式
    CREATE TABLE STUDENT(
        STU_ID NUMBER(4),
        STU_NAME VARCHAR2(4) NOT NULL--行级定义
    )

    第四种约束:检查约束(CHECK)  定义了该约束的列,可以定义一个表达式,用户输入基于该业务逻辑的表达式,符合规则就执行DML(data manipulation language)语句,不符合就ROOLBACK回滚。

    代码示例:

    --第一种定义方式
    ALTER TABLE STUDENT ADD CONSTRAINT CH_STU_SEX CHECK(STU_SEX = '男' OR STU_SEX = '女');
    
    --第二种定义方式
    CREATE TABLE STUDENT(
        STU_ID NUMBER(4),
        STU_NAME VARCHAR2(4),
        STU_SEX VARCHAR2(3) CONSTRAINT CH_STU_SEX CHECK -- 行级定义
    )
    
    --第三种定义方式
    
    CREATE TABLE STUDENT(
        STU_ID NUMBER(4),
        STU_NAME VARCHAR2(4),
        STU_SEX VARCHAR2(3) ,
        CONSTRAINT CH_STU_SEX CHECK(STU_SEX) -- 表级定义
    )
    
    
    

    第五种约束:外键约束(FOREIGN KEY (从表列) REFERENCES(主表列)) 作用:用来强制两个表之间的关系。定义了外键的从表中的(一个列)值与对应的主表中的引用建(一个列)中的值相对应,如果主表中的被引用的列中不存在该值,那么从表INSERT INTO 该值的时候就会被约束(不能添加进从表);

    外键:将会引用到其它表(主表)中的列的数据,外键定义在从表中的列,

    引用建:被从表中的外键锁引用的列,该列必须是定义了唯一约束或主键约束的列才行

    代码示例:

    --定义方式
    --定义一个学生表
    CREATE TABLE STUDENT(
        STU_ID NUMBER(4) CONSTRAINT PK_STU_ID PRIMARY KEY,
        STU_NAME VARCHAR2(4) CONSTRAINT UN_STU_NAME UNIQUE,
        STU_CLASS NUMBER(4) CONSTRAINT UN_STU_CLASS UNIQUE
    )
    --定义一个班级表
    CREATE TABLE T_CLASS(
        C_ID NUMBER(4) CONSTRAINT PK_C_ID PRIMARY KEY,
        C_CLASSNO NUMBER(4) CONSTRAINT UN_C_CLASS UNIQUE
    )
    --定义外键约束
    ALTER TABLE STUDENT ADD CONSTRAINT FK_STU_CLASS FOREIGN KEY (STU_CLASS) REFERENCES T_CLASS (C_CLASSNO) ON DELETE CASCADE;
    --级联关系
    --删除主表数据的同时删除对应的从表数据,删除班级表中的数据的同时删除对应的学生表的数据
    --ON DELETE CASCADE 
    -- ON DELETE SET NULL  删除从表数据时将对应的主表数据设置为NULL
    
    --学生表是依附于班级表中的数据才能产生的 ,班级不存在了,也就不存在属于这个班的学生了
    --意思就是说先有班级才能有对应班级的学生
    
    
    

     

    展开全文
  •  当为某个表定义约束后,对该表所做的所有SQL操作都必须满足约束的规则要求,否则将操作失败  命名规则:表名_列名_约束类型  默认约束名:SYS_Cn,n是一个唯一的整数  约束分类:  1)主键约束(pk):primar...

     

    约束:constraint 
        概念:
            约束是定义在表上的一种强制规则
        
        作用:
            当为某个表定义约束后,对该表所做的所有SQL操作都必须满足约束的规则要求,否则将操作失败

        命名规则:表名_列名_约束类型
        默认约束名:SYS_Cn,n是一个唯一的整数

        约束分类:
            1)主键约束(pk):primary key
                概念:
                    主键约束,用来确保表中的某一列或者某几列组合的所有行数据必须唯一,并且确保作为主键一部分的列不能包含空值
                PS:
                    唯一的,非空的,每张表主能创建一个主键约束,一个主键可以由多个列组成(联合主键),Oracle会自动添加唯一索引
            2)唯一约束(uk):unique
                概念:
                    唯一约束,用来确保表中的某一列或者某几列组合的所有行数据必须唯一,定义unique约束的列(或列组合)被称为唯一键
                PS:
                    唯一的,允许为空,一张表可以有多个唯一约束,Oracle会自动添加唯一索引
            3)非空约束:not null
                非空约束,确保被约束列的的所有行记录都不能为空值
                PS:
                    只能定义在列级别上
            4)检查约束(ck):check
                概念:
                    检查性约束,确保某个列的所有行数据必须满足的条件
                PS:
                    1)表达式不能使用伪列,如:currval,nextval,level,rownum
                    2)表达式不能使用对其他记录其他值的查询
                    3)可以调用sysdate,uid,user和userenv
                    函数
            5)外键约束(fk):foreign
                概念:
                    外键约束,确保相关联的两个字段的关系:
                        -外键列的值必须在引用列值的范围内,或者为空
                        -外键参照的列必须是主键或者唯一键
                PS:
                    主键表主键值被外键表参照时,主键表记录不允许被删除
                    
            6)列级约束:CONSTRAINT 约束名 约束类型
            7)表级约束:CONSTRAINT 约束名 约束类型(约束列)
            
        外键约束:
            foreign key:定义在子表的列中
            references:引用列所在的父表
            1)ON DELETE CASCADE:
                当父表中的行被删除时,子表中相依赖的行同时被删除;
            2)ON DELETE SET NULL:
                当父表的行被删除时,子表中相依赖的列值被转换为空值;
            3)无ON DELETE CASCADE或)ON DELETE SET NULL选项,当父表中的行被删除时,如果父表中的行在子表中被引用,则提示不能被删除

        约束操作:
            1)定义约束:
                约束通常在创建表的同时被创建
            2)追加约束:
                在表被创建后,如果有需求也可以临时添加约束,不修改表结构
                语法:
                    ALTER TABLE 表名 ADD [CONSTRAINT 约束名] 约束类型(约束列);
            3)删除约束:不修改表结构
                语法:
                    ALTER TABLE 表名 DROP PRIMARY KEY|UNIQUE(column)|CONSTRAINT 约束名 [CASCADE];
            4)启用约束:
                约束可以被临时启用
                语法:
                    ALTER TABLE 表名 ENABLE CONSTRAINT 约束名;
            5)禁用约束:
                约束可以被临时禁用
                语法:
                    ALTER TABLE 表名 DISABLE CONSTRAINT 约束名 [CASCADE];

        定义约束:
            1)约束既可以写在每个对应列的后面,称之为列级别约束,一个列级别约束只能作用在一个列上
            2)约束也可以在写完所有列之后,再写约束,称之为表级别约束,一个表级别约束既可以作用在一个列上,也可以作用在列的组合上
            3)not null 约束只能定义在列级别上,联合主键或联合唯一性约束只能定义在表级别上,其他约束既可以定义成表级别,也可以定义成列级别
            4)列级别约束和表级别约束达到的作用完全相同,只是书写的位置不同
            
        数据字典:
            1)USER_CONSTRAINTS:
                查看表上所有的约束。
            2)USER_CONS_COLUMNS:
                查看与约束相关的列名,该字典对于那些由系统指定名字的约束特别有用。
            3)在约束类型中,c代表check,p代表primary key,R代表foreign key,u代表unique,notnull约束实际上是一个check约束
        
        

    视图(view):虚表,没有物理存储空间,对视图的操作都会作用在相应表上
        概念:
            视图是逻辑上来自一张表或多张表的数据的集合
        
        分类:
            1)简单视图:
                只基于一张表,不能有组数据和组函数,可以进行DML操作
            2)复杂视图:
                基于一张表或者多张表,有组数据和组函数,不一定进行DML操作
        
        作用:
            1)限制其他用户对数据库表的访问,因为视图可以有选择性的显示数据库表的一部分
            2)容易实现复杂查询
            3)对于相同的数据可以产生不同的视图
        
        视图操作:
            1)创建视图:
                语法:
                    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 视图名
                    [(column[, column]...)]
                    AS 子查询
                    [WITH CHECK OPTION [CONSTRAINT constraintname]]
                    [WITH READ ONLY]
            ***********************************
                OR REPLACE:
                    如果所创建的视图已经存在,该选项表示修改原始图的定义
                FORCE:
                    不管视图所基于的基表是否存在,都会创建该视图
                NOFORCE:
                    只有视图所基于的基表都存在,才会创建该视图
                WITH CHECK OPTION:
                    一个约束条件,通过视图所插入或修改的数据行必须满足视图所定义的查询;
                WITH READ ONLY:
                    只读,不能进行DML操作
            2)修改视图:
                语法:
                    CREATE OR REPLACE VIEW 
            3)删除视图:
                语法:
                    drop  view  视图名;

        视图上执行DML操作的规则:
            1)删除操作:视图中不能有以下情况
                1-1)不能有组函数
                1-2)不能有group by字句
                1-3)不能有distinct
            2)修改操作:视图中不能有以下情况    
                2-1)不能有组函数
                2-2)不能有group by字句
                2-3)不能有distinct
                2-4)不能使用表达式定义的列
                2-5)不能有rownum伪列
            3)添加操作,视图中不能有一下情况
                3-1)不能有组函数
                3-2)不能有group by字句
                3-3)不能有distinct
                3-4)不能使用表达式定义的列
                3-5)不能有rownum伪列
                3-6)不能基表中未在试图中选择的其他列定义为非空并且没有默认值

        数据字典表:
            1)USER_VIEWS:
                字典中包含了视图的定义。
            2)USER_UPDATABLE_COLUMNS:
                字典包含了哪些列可以更新、插入、删除。
            3)USER_OBJECTS:
                字典中包含了用户的对象。

     

    展开全文
  • 数据库约束

    2018-05-18 23:28:08
    数据库约束约束的作用:对添加进表的数据进行限制和检查,保证表的数据正确性、有效性和完整性。 ​ -- 建议在创建表的时候创建约束,因为这里表没有数据。约束种类:约束名约束关键字主键primary key唯一...
  • 数据库的约束约束六大约束约束的分类添加约束删除约束标识列(自增长列)删除标识列删除标识列 约束 概念 一种限制,用于限制表的数据,可以保证表的数据的准确性和可靠性 六大约束 not null 非空约束 作用...
  • 数据库中外键的作用

    2013-07-31 10:32:00
    外键(FK)是用于建立和...FOREIGNKEY约束的主要目的是控制存储在外键表的数据,但它还可以控制对主键表数据的修改。例如,如果在publishers表删除一个出版商,而这个出版商的ID在titles表记录书的信息时使...
  • 数据库的约束

    2019-12-11 16:39:12
    约束的作用: 对表的数据进行限制,保证数据的正确性、有效性和完整性。一个表如果添加了约束,不正确的数据将无法插入到表。约束在创建表的时候添加比较合适。 约束种类 约束名 约束关键字 主键 ...
  • 一、 数据库约束的作用和分类  primarykey 和unique他们的作用是为了不让表有重复的数据(一个表)  check表示表列的数据的范围性的定义(一个表)  defult表示表的默认值  foreignkey 表与表之间的...
  • 在我写添加文章接口时,ser.save()一直不起作用,试了很多方法,百度了很多,始终找不到解决办法 def post(self, request, *args, **kwargs): ser = serializer.ArticleSerializer(data=request.data, many=False) ...
  • 1.防止用户向数据库中添加不合语义数据 2.利用基于DBMS完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序复杂性,提高应用程序运行效率,同时,基于DBMS完整性控制机制是集中管理...
  • 外键是数据库一级一个完整性约束,就是数据库基础理论书所说“参照完整性”的数据库实现方式。    外键属性当然是可以去掉,如果你不想再用这种约束,对编程当然不会有什么影响,但相应录入数据...
  • 数据库中主键的作用

    千次阅读 2007-12-23 12:10:00
    我们在建立数据库的时候,需要为每张表指定一个主键,所谓主键就是能够唯一标识表某一行属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新...
  • 约束作用:用来保持数据完整性,防止无效数据进入到数据库中。oracle数据库中提供5种约束,都是限定某个列或者列组合。1、主键约束(PRIMARY KEY):在一个表中能唯一标识一行。主键可以限定在多个列上。3...
  • 06——数据库表的约束1、数据库约束的概述1.1 约束的作用1.2 约束的终类2、主键约束2.1 主键的作用2.2 创建主键 1、数据库约束的概述 1.1 约束的作用 对表的数据进行限制,保证数据的正确性、有效性和完整性。一个...
  • 约束的作用 约束种类 主键约束 主键的作用 ​哪个字段应该作为表的主键? 创建主键 删除主键 主键自增 修改自增长的默认值起始值 DELETE 和 TRUNCATE 对自增长的影响 唯一约束 唯一约束的基本格式 非空...
  • 对于数据库中的约束,初学者会觉得...一、 数据库约束的作用和分类  primarykey 和unique他们的作用是为了不让表中有重复的数据(一个表)  check表示表中列的数据的范围性的定义(一个表)  defult表示表中...
  • postgresql数据库唯一性约束没起作用

    千次阅读 2018-08-03 17:16:20
     因为两条数据插入间隔极小,所以开始以为是并发问题,在排除了这个问题后,检查了数据库中该表是否设置了唯一性约束,确认有唯一性约束,理论上不应该存两条一样数据,手动插入了一条一样数据,还是可以插入...
  • oracle数据库约束: 定义要输入这个值是一个什么样值, 或者是哪个范围内作用: 确保完整性, 确保精确性 1, 非空约束(not null) 记录一条信息时候如果用户名和密码没有被记录, 那么这条记录是没有实际...
  • oracle数据库约束: 定义:要输入这个值是一个什么样值, 或者是哪个范围内作用: 确保完整性, 确保精确性 1, 非空约束(not null) 记录一条信息时候如果用户名和密码没有被记录, 那么这条记录是没有...
  • mysql常用的约束: 1、主键约束(primary key) 2、自增长约束 auto_incrment 加在整数型字段配和主键约束来使用 3、唯一约束(unique) 4、非空约束(not null) 5、外键约束(foreign key) sex ENUM('...
  • mysql-数据库的约束

    2020-12-12 20:45:42
    1 约束的作用:对表数据进行限制,保证数据的正确性,有效性和完整性。一个表要是添加了约束,不正确的数据将无法添加。约束一般在建表时添加。 2 约束种类: 约束类型 作用 primary key 主键 unique ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,299
精华内容 519
关键字:

数据库中约束的作用