精华内容
下载资源
问答
  • mysql约束
    千次阅读
    2021-01-18 19:56:29

    MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息;

    常用5种约束:

    not null: 非空约束,指定某列不为空

    unique:  唯一约束,指定某列和几列组合的数据不能重复

    primary key:  主键约束,指定某列的数据不能重复、唯一

    foreign key:  外键,指定该列记录属于主表中的一条记录,参照另一条数据

    check: 检查,指定一个表达式,用于检验指定数据

    MySQL不支持check约束,但可以使用check约束,而没有任何效果;

    根据约束数据列限制,约束分为:

    单列约束:每个约束只约束一列

    多列约束:每个约束约束多列数据

    一、not null约束

    非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。

    Null类型特征:

    所有的类型的值都可以是null,包括int、float 等数据类型

    create table temp(

    idint not null,

    namevarchar(255) not null default 'abc',

    sexchar null)//上面的table 加上了非空约束,也可以用alter来修改或增加非空约束//增加非空约束alter table tempmodify sexvarchar(2) not null;//取消非空约束alter table temp modify sex varchar(2) null;//取消非空约束,增加默认值alter

    更多相关内容
  • 约束类型包括:NOT NULL (非空约束),PRIMARY KEY(主键约束),UNIQUE KEY(唯一约束),DEFAULT(默认约束),FOREIGN(外键约束) 1.主键约束 PRIMARY KEY 每张数据表只能存在一个主键 主键保证记录的唯一...
  • MySQL约束(主键,唯一,非空,外键) 概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。 分类: 1. 主键约束:primary key 2. 非空约束:not null 3. 唯一约束:unique 4. 外键约束:foreign key ...
  • mysql约束

    千次阅读 2022-01-13 22:47:56
    mysql约束-自动增长约束(auto_increment) 语法:字段名 数据类型 auto_increment 特点: 默认情况下,auto_increment的初始值是1,每新增一条记录,字段值自动加1 一个表只能有一个字段auto_increment约束,且该字段必须...

    mysql约束-自动增长约束(auto_increment)

    语法:字段名 数据类型 auto_increment
    特点:
      默认情况下,auto_increment的初始值是1,每新增一条记录,字段值自动加1
      一个表只能有一个字段auto_increment约束,且该字段必须有唯一索引,以避免序号重复(即主键或者主键的一部分)
      auto_increment约束的字段必须具备not null 属性
      auto_increment约束的字段只能是整数类型(tinyint,smallint,int,bigint)
      auto_increment约束字段的最大值受该字段的数据类型约束,如果达到上限,auto_increment就会失效(eg:类型定义为int 但是超过int取值范围就失效)
     
    修改自增:alter table 表名 auto_increment=100
      
    delete 和 truncate再删除后自增列的变化
      delete数据之后自动增长从断点开始
      truncate数据之后自动增长从默认起始值1开始
    

    mysql约束-非空约束(not null)

    介绍:对于使用了非空约束的字段,如果用户添加数据时没有指定值,数据库系统就会报错.
    增加非空约束
      建表语句指定字段添加not null
      或者 alter table 表 modify name varchar(2) not null;
    删除非空约束
      alter table 表 modify name varchar(2) ;
    

    mysql约束-唯一约束(unique)

    方式:
      字段名 类型 unique  //此时候约束的名字就是列名
      alter table 表 add constraint 约束名 unique();
    删除约束
      alter table 表 drop index 约束名字
    

    mysql约束-默认约束(default)

    方式:
      字段名 数据类型 default <默认值>
      alter table 表 modify 列名 类型 default 默认值;
    

    mysql约束-零填充约束(zerofill)

    方式:
      字段名 数据类型 zerofill;
      alter table 表 modify 列名 类型;
    

    总结

    约束的分类
    约束的作用
    约束的用法
    

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

    展开全文
  • MySQL 约束语法

    千次阅读 2022-02-12 20:39:34
    约束的概念 约束是作用于表中列上的规则,用于限制加入表的数据。 例如:我们可以给id列加约束,让其值不能重复,不能为null值。 约束的存在保证了数据库中数据的正确性、有效性和完整性。添加约束可以在添加数据...

    约束的概念

    约束是作用于表中列上的规则,用于限制加入表的数据。 例如:我们可以给id列加约束,让其值不能重复,不能为null值。

    约束的存在保证了数据库中数据的正确性、有效性和完整性。添加约束可以在添加数据的时候就限制不正确的数据,年龄是3000,数学成绩是-5分这样无效的数据,继而保障数据的 完整性。

    通俗的说:就是让数据库表中的数据不出现逻辑上的错误

    1、非空约束

    非空约束用于保证列中所有数据不能有null值

    语法:

    创建表时添加约束:CREATE TABLE 表名( 字段名 数据类型 NOT NULL, … );

    建完表后添加非空约束:alter table 表名 modify 字段名 数据类型 not null;

    删除非空约束:alter table 表名 modify 字段名 数据类型;

    2、唯一约束

    唯一约束用于保证列中所有数据各不相同

    创建表时添加唯一约束:CREATE TABLE 表名( 列名 数据类型 UNIQUE [AUTO_INCREMENT],

    -- AUTO_INCREMENT: 当不指定值时自动增长 … );

    CREATE TABLE 表名( 列名 数据类型, … [CONSTRAINT] [约束名称] UNIQUE(列名) );

    创建表后添加唯一约束:alter table 表名 modify 字段名 数据类型 unique;

    删除唯一约束:alter table 表名 drop index 字段名;

    3、主键约束

    主键是一行数据的唯一标识,要求非空且唯一;

    一张表只能有一个主键;

    创建表时添加约束:CREATE TABLE 表名( 列名 数据类型 PRIMARY KEY [AUTO_INCREMENT], … );

    CREATE TABLE 表名( 列名 数据类型, [CONSTRAINT] [约束名称] PRIMARY KEY(列名) );

    创建表后添加主键约束:alter table 表名 add primary key 列名;

    删除主键约束:alter table 表名 drop primary key;

    4、默认约束

    保存数据时,未指定值时则保存默认值

    创建表时添加默认约束:CREATE TABLE 表名( 列名 数据类型 DEFAULT 默认值, … );

    建完表后添加默认约束:alter table 表名 alter  列名 set default 默认值;

    删除约束:alter table 表名 alter 列名 drop default;

    5、外键约束

    外键用来让两个表的数据之间进行连接,保证数据的一致性和完整性。

    创建表时添加外键约束:CREATE TABLE 表名( 列名 数据类型, … [CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名) );

    创建表后添加外键约束:

    ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);

    删除外键约束:alter table 表名 drop foreign key 外键名称;

    6、约束,删除更新行为

    添加了外键之后,再删除父表数据时产生的约束行为,我们就称为删除/更新行为。具体的删除/更新行 为有以下几种:

     演示

    ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES
    主表名 (主表字段名) ON UPDATE CASCADE ON DELETE CASCADE;
    -- 将修改和删除行为改为CASCADE

     

    展开全文
  • MySQL约束写法

    千次阅读 2021-02-06 01:31:20
    MySQL约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息;约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,保证该数据不被删除。常用五类约束:not ...

    MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息;

    约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,保证该数据不被删除。

    常用五类约束:

    not null:非空约束,指定某列不为空

    unique: 唯一约束,指定某列和几列组合的数据不能重复

    primary key:主键约束,指定某列的数据不能重复、唯一

    foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据

    check:检查,指定一个表达式,用于检验指定数据

    注意: MySQL不支持check约束,但可以使用check约束,而没有任何效果;

    根据约束数据列限制,约束可分为:

    单列约束:每个约束只约束一列

    多列约束:每个约束约束多列数据

    1、not null

    非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。

    Null类型特征: 所有的类型的值都可以是null,包括int、float等数据类型 空字符串””是不等于null,0也不等于null

    create table temp(

    id int not null,

    name varchar(255) not null default ‘abc’,

    sex char null

    )

    上面的table加上了非空约束,也可以用alter来修改或增加非空约束

    增加非空约束

    alter table temp modify sex varchar(2) not null;

    取消非空约束

    alter table temp modify sex varchar(2) null;

    取消非空约束,增加默认值

    alter table temp modify sex varchar(2) default ‘abc’;

    2、unique

    唯一约束是指定table的列或列组合不能重复,保证数据的唯一性。虽然唯一约束不允许出现重复的值,但是可以为多个null,同一个表可以有多个唯一约束,多个列组合的约束。在创建唯一约束的时候,如果不给唯一约束名称,就默认和列名相同。 MySQL会给唯一约束的列上默认创建一个唯一索引;

    create table temp (

    id int not null,

    name varchar(25),

    password varchar(16),

    constraint uk_name_pwd unique(name, password)

    );

    表示用户名和密码组合不能重复

    添加唯一约束

    alter table temp add unique(name, password);

    修改唯一性约束

    alter table temp modify name varchar(25) unique;

    删除约束

    alter table temp drop index name;

    3、primary key

    主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值;如果的多列组合的主键约束, 那么这些列都不允许为空值,并且组合的值不允许重复。 每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别上创建。

    MySQL的主键名总是PRIMARY, 当创建主键约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。

    列模式:

    create table temp(

    id int primary key,

    name varchar(25)

    );

    create table temp2(

    id int not null,

    name varchar(25),

    pwd varchar(15),

    constraint pk_temp_id primary key(id)

    );

    组合模式:

    create table temp2(

    id int not null,

    name varchar(25),

    pwd varchar(15),

    constraint pk_temp_id primary key(name, pwd)

    );

    alter删除主键约束

    alter table temp drop primary key;

    alter添加主键

    alter table temp add primary key(name, pwd);

    alter修改列为主键

    alter table temp modify id int primary key;

    设置主键自增

    create table temp(

    id int auto_increment primary key,

    name varchar(20),

    pwd varchar(16)

    );

    auto_increment自增模式,设置自增后在插入数据的时候就不需要给该列插入值了。

    4、foreign key

    外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。 也就是说从表的外键值必须在主表中能找到或者为空。 当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据, 然后才可以删除主表的数据。还有一种就是级联删除子表数据。

    注意:外键约束的参照列,在主表中引用的只能是主键或唯一键约束的列,假定引用的主表列不是唯一的记录, 那么从表引用的数据就不确定记录的位置。同一个表可以有多个外键约束。

    创建外键约束:

    主表

    create table classes(

    id int auto_increment primary key,

    name varchar(20)

    );

    从表

    create table student(

    id int auto_increment,

    name varchar(22),

    constraint pk_id primary key(id),

    classes_id int references classes(id)

    );

    通常先建主表,然后再建从表,这样从表的参照引用的表才存在。

    表级别创建外键约束:

    create table student(

    id int auto_increment primary key,

    name varchar(25),

    classes_id int,

    foreign key(classes_id) references classes(id)

    );

    上面的创建外键的方法没有指定约束名称,系统会默认给外键约束分配外键约束名称,命名为student_ibfk_n, 其中student是表名,n是当前约束从1开始的整数。

    指定约束名称:

    create table student(

    id int auto_increment primary key,

    name varchar(25),

    classes_id int,

    constraint fk_classes_id foreign key(classes_id) references classes(id)

    );

    多列外键组合,必须用表级别约束语法:

    create table classes(

    id int,

    name varchar(20),

    number int,

    primary key(name, number)

    );

    create table student(

    id int auto_increment primary key,

    name varchar(20),

    classes_name varchar(20),

    classes_number int,

    foreign key(classes_name, classes_number) references classes(name, number)

    );

    删除外键约束:

    alter table student drop foreign key student_ibfk_1;

    alter table student drop foreign key fk_student_id;

    增加外键约束:

    alter table student add foreign key(classes_name, classes_number) references classes(name, number);

    自引用、自关联(递归表、树状表)

    create table tree(

    id int auto_increment primary key,

    name varchar(50),

    parent_id int,

    foreign key(parent_id) references tree(id)

    );

    级联删除:删除主表的数据时,关联的从表数据也删除,则需要在建立外键约束的后面增加on delete cascade 或on delete set null,前者是级联删除,后者是将从表的关联列的值设置为null。

    create table student(

    id int auto_increment primary key,

    name varchar(20),

    classes_name varchar(20),

    classes_number int,         /*表级别联合外键*/

    foreign key(classes_name, classes_number) references classes(name, number) on delete cascade

    );

    5、check

    MySQL可以使用check约束,但check约束对数据验证没有任何作用。 (但ORACLE中可以支持) create table temp(          id int auto_increment,          name varchar(20),          age int,          primary key(id),  check(age > 20)  );  上面check约束要求age必须大于20,但没有任何作用。但是创建table的时候没有任何错误或警告。

    展开全文
  • MySQL约束案例总结

    2022-03-14 13:19:33
    1:主键约束 2:自增长约束 3:非空约束 4:唯一约束 5:默认约束 6:零填充约束
  • MySQL 约束

    千次阅读 2021-01-18 19:56:29
    约束的作用:保证数据的完整性和一致性1.完整性约束not null 和defaultunique单列唯一仅仅给一列设置unique(id)多列唯一给多列设置unique(id),unique(name)联合唯一unique(id,name)主键primary key化学反应: not ...
  • MySql 约束条件

    千次阅读 2021-01-19 10:29:42
    约束sql约束约束用于限制加入表的数据的类型。是一种限制,它通过对表的行或列的数据做出...数据类型的属性MySQL关键字含义NULL数据列可包含NULL值NOT NULL数据列不允许包含NULL值DEFAULT默认值PRIMARY KEY主键...
  • MySQL 约束详解

    2021-11-07 16:26:07
    一、什么是约束 约束实际上就是表中数据的限制条件 二、约束作用 表在设计的时候加入约束的目的就是为了保证表... 检查约束(目前MySQL不支持、Oracle支持) 下面将逐一介绍以上约束 四、非空约束 用not null约束
  • mysql约束以及数据库的修改

    千次阅读 2021-02-02 11:06:17
    (1)表级约束(约束针对于两个或两个以上的字段使用)(2)列级约束(针对于一个字段使用)3、约束类型有:(1)NOT NULL(非空约束)(2)PRIMARY KEY(主键约束)(3)UNiQUE KEY(唯一约束)(4)DEFAULT(默认约束)(5)FOREIGN KEY(外键...
  • MySQL约束课堂笔记.md

    2021-10-30 17:03:36
    MySQL约束课堂笔记.md
  • MySQL约束_java_

    2021-09-29 13:23:13
    MySQL约束的资料
  • MySQL约束条件.doc

    2020-08-07 16:40:14
    什么叫约束条件,约束条件就是控制我们往表字段里插入数据时的一些条件,那我怎么查看一个表的约束条件呢,我们可以通过查看表结构来看一个表的约束条件。
  • MySQL约束课堂笔记.html

    2020-01-01 20:56:18
    MySQL约束课堂笔记.html
  • MySQL约束总结(CONSTRAINT)

    千次阅读 2021-02-15 22:45:12
    MySQL数据库通过约束(constraints)防止无效的数据进入到表中,以保护数据的实体完整性。 约束的分类 在 MySQL 中,主要有六种约束: 1、NOT NULL:非空约束,用于约束该字段的值不能为空。比如姓名、学号等。 2、...
  • MySQL约束_java_资料.zip

    2021-10-18 23:01:06
    MySQL约束_java_资料.zip
  • MySQL约束简介

    2022-01-26 21:29:55
    MySQL约束简介 约束(constraint):约束其实就是表中数据的一个限制条件。 作用: 表在设计之初加入约束的目的就是为了保证表中记录完整性的有效性,比如用户表中的值(身份证号、电话号码)不能为空,有些值是不...
  • Mysql约束

    千次阅读 2020-09-05 23:04:34
    Mysql约束 DQL:查询语句 1. 排序查询 2. 聚合函数 3. 分组查询 4. 分页查询 约束 多表之间的关系 范式 数据库的备份和还原 DQL:查询语句 1. 排序查询 * 语法:order by 子句 * order by 排序字段1 排序方式...
  • MYSQL约束

    千次阅读 2022-01-10 22:42:09
    MYSQL约束 约束:constraint 约束实际上就是表中数据的限制条件 作用:表在设计的时候加入了约束的目的就是为了保证表中记录的完整性和有效性,比如用户表有些列的值(手机号) 不能为空,有些列的值(身份证号)不能重复. ...
  • MySQL约束详细介绍

    千次阅读 2019-08-20 08:27:33
    MySQL约束详细介绍 一、约束_概述 概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。 分类: 1. 主键约束:primary key 2. 非空约束:not null 3. 唯一约束:unique 4. 外键约束:foreign ...
  • 约束英文:constraint 约束实际上就是表中数据的限制条件 作用: 表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性,比如用户表有些列的值(手机号)不能为空,有些列的值(身份证号)不能重复...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 186,539
精华内容 74,615
关键字:

mysql约束

mysql 订阅