精华内容
下载资源
问答
  • 唯一约束(Unique Constraint):要求该列数据唯一,允许为空,但只能出现一个空值 检查约束(Check Constraint):某列取值范围限制、格式限制等 默认约束(Default Constraint):某列的默认值 外键约束...

    常用的约束类型有:
    主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空
    唯一约束(Unique Constraint):要求该列数据唯一,允许为空,但只能出现一个空值
    检查约束(Check Constraint):某列取值范围限制、格式限制等
    默认约束(Default Constraint):某列的默认值
    外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的哪列

    注意:主键约束与唯一约束的区别:
    1.主键约束所在的列不允许有空值,唯一约束所在的列允许空值
    2.每个表中可以有一个主键,多个唯一键

    语法: ALTER TABLE 表名
    ADD CONSTRAINT 约束名 约束类型 具体的约束说明

    //源代码:
    ALTER TABLE Student
    ADD CONSTRAINT PK_stuNo PRIMARY KEY (StudentNo)

    ALTER TABLE Student
    ADD CONSTRAINT UQ_stuID UNIQUE (IDENTITYCard)

    ALTER TABLE Student
    ADD CONSTRAINT DF_stuAddress DEFAULT ('地址不详') FOR stuAddress

    ALTER TABLE Student
    ADD CONSTRAINT CK_stuBornDate CHECK(BornDate > '1980-01-01')

    ALTER TABLE Grade
    ADD CONSTRAINT PK_GradeID PRIMARY KEY(GradeID)

    ALTER TABLE Student
    ADD CONSTRAINT FK_Grade FOREIGN KEY(GradeID) REFERENCES Grade(GradeID)
    GO

    转载于:https://www.cnblogs.com/wangzhaofang/p/8301232.html

    展开全文
  • 数据库约束 1:约束类型: NOT NULL 指示某列不能储存NULL值,即某列不为空; 使用: 如果在增加数据时,第一列为NULL,就会报错 UNIQUE :保证某列的每行必须有唯一的值; 这时表中已经有一个name为李数据...

    数据库约束

    1:约束类型:

    约束类型 约束方式
    NOT NULL 指示某列不能存储NULL值
    UNIQUE 保证某列的每行必须有唯一值
    DEFAULT 规定没有给列赋值时的默认值
    PRIMARAY KEY NOT NULL和UNIQUE的结合(指定某列不能为null值,并且此列的每一行的值都是唯一的),确保某一列(或多列)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
    FOREIGN KEY 保证一个表中的数据匹配另一个表中的值的参照完整性
    CHECK 保证列中的值符合指定的条件。(对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK语句)

    NOT NULL :指示某列不能储存NULL值,即某列不为空;
    使用:在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    如果在增加数据时,第一列为NULL,就会报错
    在这里插入图片描述

    UNIQUE :保证某列的每行必须有唯一的值

    在这里插入图片描述
    这时表中已经有一个name为李数据信息,倘若此时再添加一个name为李的数据,就会报错
    在这里插入图片描述

    DEFAULT:规定没有给列赋值时的默认值
    使用方法:

    在这里插入图片描述

    在这里插入图片描述
    当name列没有赋值时,使用默认值unkown。
    在这里插入图片描述

    PRIMARY KEY主键约束某列不能存储空值且唯一(NOT NULL和UNIQUE的结合)确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速的找到表中的一个特定记录。(因为是主键,可以理解为其他表连接此表的接口,所以不能存储空值,这样接口就不存在了,也必须唯一,只有唯一,其他表才能找到此接口)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    对于整数类型的主键,常配搭自增长auto_increment来使用。插入数据对应字段不给值时,使用最大值+1。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    FOREIGN KEY:(外键约束外键用于关联其他表的主键或唯一键,保证一个表中的数据匹配与另一个表中的值的参照完整性。

    foreign key (字段名) reference 主表(列)
    

    创建班级表,id 为主键:
    在这里插入图片描述

    创建学生表student,一个学生对应一个班级,一个班级对应多个学生。使用id为主键,
    classes_id为外键,关联班级表id
    在这里插入图片描述
    在两个表中插入数据

    在这里插入图片描述
    在这里插入图片描述

    CHECK:(忽略)保证列中的值符合指定条件。(MySQL数据库对CHECK子句进行分析,但是忽略CHECK语句)

    展开全文
  • 数据库约束

    2017-06-21 23:11:11
    关于李兴华老师数据库建表的约束总结约束简介:(重点) ...唯一约束 主键约束(重点) 检查约束(了解) 外键约束(重点) 约束的确保证了数据在合法后才进行保存,但是一个数据库中设置了过多的约束,那

    关于李兴华老师数据库建表的约束总结


    约束简介:(重点)
    数据表本身只支持数据的存储操作,但是在数据库上为了保证数据的完整性,
    特别增加了约束,即需要满足若干条件才可以进行操作,本质上数据库的约束
    一共有六种:
    ----------
    数据类型 
    非空约束(重点) 
    唯一约束 
    主键约束(重点)
    检查约束(了解)
    外键约束(重点)
    约束的确保证了数据在合法后才进行保存,但是一个数据库中设置了过多的约束,那么更新的速度慢,所以在开发中,某一些验证操作还是交给程序完成。
    
    1. 数据类型
    常用的数据类型
    VARCHAR2   字符串(200个文字以内使用 )
    NUMBER     数字
    DATE       日期(oracle包含日期时间)
    CLOB       大文本数据(可保存4G文字信息)

    2、 非空约束 NOT NULL

    当表中某一个字段不允许为空,如果要使用非空约束,只需要使用非空约束
    "NOT NULL"声明即可。
    
    CREATE TABLE not_null_demo(
        name1 VARCHAR2(20) NOT NULL,
        sex VARCHAR2(6),
        sal NUMBER(8,2)
    );  
    INSERT INTO not_null_demo (name1,sex,sal) VALUES ('张三''boy',10000.00);
    //当插入下列数据时,会报错
    INSERT INTO not_null_demo (name1,sex,sal) VALUES (null'boy',10000.00);

    3、唯一约束 (UNIQUE、UK)

    特点:在某一列上的内容不允许出现重复。
    CREATE TABLE member(
        mid NUMBER,
        name VARCHAR2(20) NOT NULL,
        email VARCHAR(20) UNIQUE
    )
        INSERT INTO member (mid,name,email)     VALUES(1,'xiaomage','123@qq.com');  
    报错:INSERT INTO member (mid,name,email) 
    VALUES(2,'ma ge','123@qq.com'); 
    发现唯一约束并不会向非空约束那样,明确告知错误信息,为了解决此类问题
    可以采用 “约束类型简写_[表名]_列名”  如:
    CREATE TABLE member(
        mid NUMBER,
        name VARCHAR2(20) NOT NULL,
        email VARCHAR(20),
        CONSTRAINT uk_member_email UNIQUE (email)
    )
    INSERT INTO member (mid,name,email)         VALUES(1,'xiaomage','123@qq.com');
    错误:INSERT INTO member (mid,name,email)
         VALUES(2,'ma ge','123@qq.com');
    
    错误信息为:在行: 113 上开始执行命令时出错 -
    INSERT INTO member (mid,name,email) VALUES(2,'ma ge','123@qq.com')
    错误报告 -
    ORA-00001: 违反唯一约束条件 (SCOTT.UK_MEMBER_EMAIL)              
    
    注意:只要进行数据表的创建时,约束一定要设置名字,且约束名不能重复。

    4、主键约束(PRIMARY KEY 、PK)

    CREATE TABLE member(
        mid NUMBER,
        name VARCHAR2(20) NOT NULL,
        email VARCHAR(20),
        CONSTRAINT pk_member_mid PRIMARY KEY (mid)
     )
            INSERT INTO member (mid,name,email) VALUES(1,'xiaomage','123@qq.com');
    错误: INSERT INTO member (mid,name,email) VALUES(1,'mage','12712@qq.com');
    
    错误提示:在行: 113 上开始执行命令时出错 -
    INSERT INTO member (mid,name,email) VALUES(1,'mage','12712@qq.com')
    错误报告 -
    ORA-00001: 违反唯一约束条件 (SCOTT.PK_MEMBER_MID)
    
    主键约束 = 非空约束 + 唯一约束;
    也就是说,设置为主键的列不能为空,也不能重复。
    

    5、检查约束 (CHECK、CK)

    指在数据列上设置一些过滤条件,当过滤条件满足的时候,才可以进行保存,否则报错。
    
    列如:设置年龄信息在 0 ~ 300之间,性别
    CREATE TABLE member(
        mid NUMBER,
        name VARCHAR2(20) NOT NULL,
        age NUMBER,
        email VARCHAR(20),
        CONSTRAINT pk_member_mid PRIMARY KEY (mid),
        CONSTRAINT ck_member_age CHECK (age BETWEEN 0 AND 300)
     )
    
            INSERT INTO member (mid,name,age,email)         VALUES(1,'xiaomage',60,'123@qq.com');
    错误:     INSERT INTO member (mid,name,age,email) VALUES(1,'mage',400,'12712@qq.com');
    错误提示:在行: 116 上开始执行命令时出错 -
    INSERT INTO member (mid,name,age,email) VALUES(1,'mage',400,'12712@qq.com')
    错误报告 -
    ORA-02290: 违反检查约束条件 (SCOTT.CK_MEMBER_AGE)
    
    从实际开发讲,检查约束尽量不要用(损耗性能),检查通过程序完成。
    

    外键约束

    定义:在父子表中体现的一种约束模式,列如父表person,子表books,关联字段mid。 在设置外键约束的时候必须设置指定的外键列(MID)列,与哪张表的哪个列有关联。
    
        CREATE TABLE PERSON(
            MID NUMBER,
            NAME VARCHAR2(20), 
            CONSTRAINT PK_PERSON_MID PRIMARY KEY (MID)
    );
    外键约束: (FOREIGN KEY 、FK)
    CREATE TABLE BOOKS(
        MID NUMBER,
        BOOKNAME VARCHAR2(25),
        bookNumber NUMBER,
        CONSTRAINT fk_PERSON_MID FOREIGN
             KEY(MID)REFERENCES PERSON (MID) 
    );
    
    对于外键的使用的限制:
    所谓的外键就是相当于子表的某一个字段的内容由父表来决定的其具体的使用数据范围。对外键来说,最麻烦的就是一些限制。
    
    限制一:在删除父表之前,需要先删除其所有的子表才可以删除,
    如遇到奇葩设计者,A是B的父表,B又是A的父表,这是可以使用强制删除操作,
    删除后不关心子表,DROP TABLE person CASCADE CONSTRAINT;
    
    限制二:如果要作为子表外键的父表列,那么这个列必须设置唯一约束或主键约束
    
    限制三:如果现在主表中的某一行数据有对应的子表数据,那么必须先删除子表的全部数据,再删除父表。如果不想受到子记录的影响,可以使用级联的操作关系,级联关系有两种:级联删除,级联更新。
    
    级联删除:指在父表数据已经被删除的情况下,自动删除其对应子表的数据,
            再定义外键的时候后面加上 ON DELETE CASCAED即可。
            此时删除父表的数据时,子表的数据会同时删除掉。
    
    级联更新:在删除父表数据的时候,那么对应的子表的数据的外键设置为null,
            加上ON DELETE SETNULL。
    总结:综合来讲,不要去修改表结构,约束条件应该和表一起创建。
         重要的约束 PRIMARY KEY,FROEIGN KEY,NOT NULL
    展开全文
  • 原因:当时把student表中的stuno设置成了主键,但是由于新增的学生的stuno已存在,所以报错。

    在这里插入图片描述原因:当时把student表中的stuno设置成了主键,但是由于新增的学生的stuno已存在,所以报错。

    展开全文
  • alter table DLTC.dbo.t_CarPark  add constraint AK_ParkNumber --约束名  unique (ParkNumber) -- 列名
  • 数据库中的元素增加约束

    千次阅读 2015-06-12 21:26:03
    1 通过设计器增加约束创建CK check(检查)约束点击表右键→设计→任意位置点击右键→check(检查)约束→CK_表名_列名→表达式 (len)tsname>=2 and len(tsname)创建主键PK约束主键唯一且不能为空,右键→设置为...
  • 右击想要加入约束的表单击“设计”二、PrimaryKey约束(主键约束) 主键是指表中一个列或者列的组合,其值能够唯一的标识表中的每一个行1.选中要加主键约束的字段,右击单击“设置主键”三、ForeignKey约束(外键...
  • 数据库之中一共存在有6种约束; 有一种约束是数据类型的约束,例如:存放日期的不能随意存放字符串; 五种人为约束:非空约束,主键约束,检查约束,外键约束。 非空约束(NOT NULL,NK) 非空约束主要是在表...
  • mySQL数据库 约束 在实际应用中,表格之间会有关联,每张表也会有一些字段是有格式要求(比如:非空且唯一,...唯一约束:nuique ,字段值不能重复,但是这个约束对于字段值为null,没有约束,也就是说,被约束的列可以
  • 修改oracle数据库约束

    2017-06-01 10:07:46
    增加约束 ALTER TABLE tableName ADD [CONSTRAINT constraint]  type (column); //name变为唯一约束 alter table insert_test2 add constraint test_name_uk unique(name) //删除约束 alter table ...
  • mysql 唯一约束

    2019-09-25 00:47:27
    对表user增加username和userid的唯一约束 ALTER TABLE tablename ADD UNIQUE (列名,列名) 约束需要消耗一定的性能,慎用,建议更多的约束逻辑在程序中控制,避免数据库性能瓶颈。自己平衡性能和完整性的取舍...
  • 1:在之前的关于activeandroid的基本使用中讲,为了保持数据的唯一性,可以增加唯一的约束 @Column(name = "person_id",unique = true) private int personId; 当时没仔细说,其实只加了这个唯一约束,只能保证...
  • 数据库约束详解(2) —— 外键

    千次阅读 2015-07-19 20:17:24
    数据库约束详解(2) —— 外键  外键约束主要用于保证一个或两个数据表之间的参照完整性。从表外键参照的只能是主表主键列或者唯一键列,这样才能保证从表记录可以准确定位到被参照的主表记录。同一表内可以...
  • 相关知识 在数据库的使用过程中我们经常要限制字段的取值,比如有些字我们不能让它为空,我们就需要添加非空约束,本关我们就来学习如何添加这些常用的约束。 为了更好学习,你需要掌握:1....唯一约束可以确保一...
  • 1.向学生这个表中添加两列,一个Score 一个Pid ALTER TABLE Student ...3.删除学生表中姓名的唯一性的约束 ALTER TABLE Student DROP UNIQUE(name); 4.DROP删除整个表,DELETE …FROM…只是删除表中的记录
  • --增加主键约束//用一个学号作为每个学生的辨认alter table (表名) add constraint PK_student_studentno primary key(studentno); -- 增加非空约束//每个人的名字是非空的alter table (表名) ...-- 增加唯一约束//...
  • Mysql数据库唯一键 一张表往往有很多字段需要具有唯一性,数据不能重复: 但是一张表中只能有一个主键: 唯一键...增加唯一键 基本与主键差不多: 三种方案 方案1: 在创建表的时候,字段之后直接跟unique/ unique key...
  • EmpIdalter table Employees add constraint PK_Employees_EmpId primary key(EmpId)2手动为EmpName增加非空约束alter table Employees alter column EmpName varchar(50) not null3手动为EmpName增加唯一键约...
  • 索引的存在会增加数据库的存储空间,也会使插入、修改数据的时间开销变多(因为索引也要随之变动)。注:索引可常驻内存进行处理 在这些列上创建索引: 在经常需要搜索的列上,可以加快搜索速度;在主键列上,强制该...
  • mysql建表约束主键约束主键约束-联合主键建表后增加或删除或修改主键约束自增约束唯一约束非空约束默认约束外键约束 主键约束 它能够唯一确定一张表中的一条记录,增加主键约束之后,就可以使得字段不重复而且不为空 ...
  • 文章目录表的基本概念创建表查看表结构删除表修改表表的约束设置主键约束(PK约束)设置非空约束(NK约束)设置字段默认值(DEFAULT)设置字段自动增加(AUTO_INCREMENT)设置唯一约束(UK约束)设置外键约束(FK...
  • 数据库(Mysql)----mysql建表中的约束

    万次阅读 2020-01-06 21:13:04
    它能够唯一确定一张表中的一条记录,增加主键约束之后,就可以使得字段不重复而且不为空 create table user( id int PRIMARY KEY, name VARCHAR(20) ); INSERT INTO user VALUES (1,‘张三’); +----+------+ | id ...
  • 给MySQL 表设置唯一约束方法

    千次阅读 2018-08-10 11:32:38
    就有个比较好的方法就是个表的字段添加唯一约束。 SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录。 UNIQUE约束为列或列集合提供了唯一性的保证。 每个表可以有多个 UNIQUE 约束。 已...
  • 前言: 达梦数据库表字段涉及到表的主键问题,需要设置主键、非空等特性。 总结: 1、修改数据表字段类型和长度 --设置字段类型和长度 ...alter table "SYSDBA"."MY_TABLE" modify "ID" ...--增加唯一 alter t...
  • SQL数据库基本操作

    2020-08-24 16:05:49
    数据库六大约束主键约束primary key(pk)非空约束is not null检查约束check唯一约束unique默认值约束default外键约束FK4.数据类型5.数据库操作显示数据库版本显示当前的时间查看所有数据库创建数据表删除数据库增加表...
  • 一、简单的查询语句 ...它能够唯一确定一张表中的一条记录,该字段不重复且不能为空,创建表时如果忘记添加主键,可以使用命令:alter table (表名)add primary key (属性名)来增加主键,alter table (...
  • 数据库总结

    2019-05-07 23:28:12
    数据库基础知识 一、关于数据库的操作 创建数据库 查看数据库 删除数据库 修改数据库的编码 二、关于表的操作 ...唯一约束 非空约束 默认约束 四、关于索引 在创建表的时候设置索引 索引类别 INDEX...
  • 约束可以唯一确定一张表的一条记录,通过增加主键,使该字段不为空也不重复 添加:primary key 复合主键:由多个字段都为主键的叫联合主键 只要主键值(如下图:id+name)加起来不重复就可以成功插入 联合...
  • 约束

    2020-02-05 22:32:14
    约束 数据表本身只支持数据...唯一约束 主键约束 检查约束 外键约束 约束是一把双刃剑,约束的确可以保证数据合法后才进行保存,但是如果在一个数据库里面一张表中设置了过多的约束,那么更新的速度一定会慢,所以...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 308
精华内容 123
关键字:

数据库增加唯一约束