-
2021-01-19 10:29:42
约束
sql约束:约束用于限制加入表的数据的类型。是一种限制,它通过对表的行或列的数据做出限制,来确保表数据的完整性、唯一性可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。
数据类型的属性
MySQL关键字
含义
NULL
数据列可包含NULL值
NOT NULL
数据列不允许包含NULL值
DEFAULT
默认值
PRIMARY KEY
主键
AUTO_INCREMENT
自动递增,适用于整数类型
UNSIGNED
无符号
CHARACTER SET name
指定一个字符集
1、not null 约束:强制列不接受 NULL 值,强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
例:create table table_name(id int not null,name varchar(255) not null); # 强制id和name不能为空
2、unique 约束:唯一标识数据库表中的每条记录,确保表中的一列数据没有相同的值
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束
例:create table时在id列创建unique约束
create table table_name(id int not null,
更多相关内容 -
MySQL约束条件.doc
2020-08-07 16:40:14什么叫约束条件,约束条件就是控制我们往表字段里插入数据时的一些条件,那我怎么查看一个表的约束条件呢,我们可以通过查看表结构来看一个表的约束条件。 -
MySQL约束条件
2020-06-10 13:09:31MySQL的常用约束条件的定义、修改和删除1. 约束条件分类:
-
主键约束:primary key:
唯一约束 + 非空约束 的组合,可以同时保证唯一性和非空。 -
外键约束:foreign key:
用于限制两个表的关系,保证从表该字段的值来自于主表相关联的字段的值 -
非空约束:not null :
保证字段的值不能为空 -
唯一约束:unique:
保证唯一性但是可以为空, -
默认约束:default:
保证字段总会有值,即使没有插入值,都会有默认值! -
自增长列:auto_increment:
一个表中有且只能有一个自增长列 -
检查性约束:check
在MySQL已经不支持,语法不报错,但无效可以使用枚举类型替代:枚举类型(enum)
create table student( studentno int auto_increment primary key , //定义学生学号为主键,设置位自增长 sname nvarchar(8) not null, //定义学生姓名为非空 sex nchar(1) default '男', //定义性别,默认值为‘男’ birthday datetime null, //定义出生日期,默认为null classno nchar(6) , //定义所属教室号 phone nchar(11) unique, //定义唯一约束 email nvarchar(30) unique, //定义唯一约束 constraint fk_class //给约束起名字 foreign key (classno) references class(classno) //将教室号设置为外键 );
2. 约束范围
- 列级约束
create table student( studentno int auto_increment primary key , sname nvarchar(8) not null );
- 表级约束
create table student( studentno int auto_increment , sname nvarchar(8) not null, primary key(studentno,sname) );
- 表级约束可以给约束起名字,方便以后删除:
create table student( studentno int auto_increment , sname nvarchar(8) not null, constraint pk_student primary key(studentno,sname) );
3.修改约束
-
主键 (primary key):
添加:alter table 表名 add primary key(数据);
修改:alter table 表名 modify column 列名 数据类型 primary key;
删除:alter table 表名 drop primary key ;
-
外键 (foreign key):
添加:alter table 表名 add foreign key(列名) references 外键表名(外键列名);
删除:alter table 表名 drop foreign key 外键约束名称;
-
唯一 (unique):
添加:alter table 表名 modify column 列名 数据类型 unique;
删除:alter table 表名 drop index seat;
查看:show index from 表名;
-
其他
添加:alter table 表名 modify column 列名 数据类型 约束条件;
删除:alter table 表名 modify column 列名 数据类型 ;
-
-
Mysql常用的约束条件
2021-12-08 11:35:23Mysql常用的约束条件Mysql约束
1.基本介绍:
约束用于确保数据库的数据满足特定的商业规则。
在mysql中,约束包括: not null、unique、primary key、foreign key、default、check六种.
2.primary key(主键)
用于唯一的标示表行的数据,当定义主键约束后,此列不能重复
字段名 字段类型 primary key
primary key(主键)-细节说明:
① primary key不能重复而且不能为null。
② 一张表最多只能有一个主键,但可以是复合主键
③ 主键的指定方式有两种:
a.直接在字段名后指定:字段名 primakry key
b.在表定义最后写primary key(列名);
④ 使用 desc 表名,可以看到primary key的情况.
⑤ 提醒:在实际开发中,每个表往往都会设计一个主键.
3.not null(非空)
如果在列上定义了not null,那么当插入数据时,必须为列提供数据,值不能为空。
字段名 字段类型 not null
4.default(默认)
默认约束,保证字段总会有值,即使没有插入值,都会有默认值
字段名 字段类型 default 默认值
一般搭配 not null 使用
`name` VARCHAR(32) NOT NULL DEFAULT '' -- 默认值为一个空字符串
5.unique(唯一)
当定义了唯一约束后,该列值不能重复的。
字段名 字段类型 unique
unique细节:
① 如果没有指定not null,则unique字段可以有多个null
② 一张表可以有多个unique字段
注:unique not null 约等于 primary key
6.foreign key(外键)
用于定义主表和从表之间的关系: 外键约束要定义在从表上,主表则必须具**有主键约束 **或是 unique约束当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为null (学生/班级图示)
FOREIGN KEY (本表字段名) REFERENCES 生表名(主键名或unique字段名)
foreign key(外键)–细节说明:
① 外键指向的表的字段,必须是 primary key 或者是 unique
② 表的引擎必须是innodb,这样的表才支持外键
③ 外键字段的类型要和主键字段的类型必须一致(长度可以不同)
④ 外键字段的值,必须在主键字段中出现过,或者为null [前提是外键字段允许为null]
⑤ 一旦建立主外键的关系,数据不能随意删除了
外键示意图
7.check
用于强制行数据必须满足的条件,假定在sal列上定义了check约束,并要求sal列值在1000 ~ 2000之间,如果不再1000 ~ 2000之间就会提示出错。
提示: oracle 和 sql server 均支持check ,但是 mysql5.7 及旧版本不支持check , 只做语法校验,但不会生效。
基本语法:
列名 类型 check (check条件) user表 id, name, sex(man,woman), sal(大于100 小于900)
在mysql中实现check的功能,一般是在程序中控制,或者通过触发器完成。
-
MySQL语句之约束条件的设置
2020-12-14 16:11:431.设置主键约束: 主键约束是最常用的一种约束,设置主键约束的关键字是PRIMARY KEY。 语法形式: ①.定义字段是时主键约束 col_name data_type PRIMARY KEY ②.定义所有字段后设置主键约束 PRIMARY KEY (col... -
MySQL常见约束条件
2018-12-02 15:36:23约束条件:限制表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败! 约束条件在创建表时可以使用, 也可以修改表的时候添加约束条件 1、约束条件分类: 1)not null :非空...约束条件:限制表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败!
约束条件在创建表时可以使用, 也可以修改表的时候添加约束条件1、约束条件分类:
1)not null :非空约束,保证字段的值不能为空
s_name VARCHAR(10) NOT NULL, #非空2)default:默认约束,保证字段总会有值,即使没有插入值,都会有默认值!
age INT DEFAULT 18, #默认约束3)unique:唯一,保证唯一性但是可以为空,比如座位号
s_seat INT UNIQUE,#唯一约束4)check:检查性约束【MySQL不支持,语法不报错,但无效】
s_sex CHAR(1) CHECK(s_sex='男' OR s_sex='女'),#检查约束(Mysql无效)5)primary key :主建约束,同时保证唯一性和非空
id INT PRIMARY KEY,#主建约束(唯一性,非空)6)foreign key:外键约束,用于限制两个表的关系,保证从表该字段的值来自于主表相关联的字段的值!
teacher_id INT REFERENCES teacher(id) #这是外键,写在列级,Mysql无效注意
1. 列级约束
上面6种约束都可以写,语法都支持,不报错,但外键约束写了mysql无效不起作用
2. 表级约束
非空、默认不支持,其他都可以!语法:
其他: 【constraint 约束名】 约束类型(字段名称) ,
外键: 【constraint 约束名】 约束类型(字段名称) foreign key(字段名称) references 关联表名(其字段名),
DROP TABLE IF EXISTS students; CREATE TABLE students( id INT , s_name VARCHAR(10) not null,# 非空约束 s_sex CHAR(1) default '男', # 默认约束 s_seat INT, age INT , teacher_id INT , #上面是列级约束,下面有表级约束 CONSTRAINT pk PRIMARY KEY(id), #主建约束,pk是起的名,后面一样 CONSTRAINT uq UNIQUE(s_seat), #唯一约束 CONSTRAINT ck CHECK(s_sex='男' OR s_sex='女'), #检查约束 CONSTRAINT fk_students_teacher FOREIGN KEY(teacher_id) REFERENCES teacher(id) #外键约束 );
2、MySQL修改表时添加或删除约束
即修改表字段的数据类型或约束
外键删除约束: ALTER TABLE 表名 DROP CONSTRAINT 约束名称
1) 非空约束
alter table students modify column s_name varchar(20) not null; # 添加
alter table students modify column s_name varchar(20) ; # 删除 不写约束条件2)默认约束
alter table students modify column age int default 18; #添加
alter table students modify column age; #删除3)唯一键约束
alter table students modify column seat int unique; #添加
alter table students drop index seat; #删除
show index from students; #查看唯一约束4)主键约束
alter table students modify column id int primary key; #添加
alter table students drop primary key; #删除 约束名称5)外键约束
alter table students add foreign key(major_id) references majors(id); #添加
alter table students drop foreign key fk_students_teacher; #删除 约束名称3、自增长列 auto_increment
id int primary key auto_increment,
一个表中有且只能有一个自增长列,自增长列一般和主键搭配
修改表的时候添加自增长列:
alter table t_indentity modify column id int primary key auto_increment;删除自增长列:
alter table t_indentity modify column id int;修改自增id的初始值:
ALTER TABLE 表名 AUTO_INCREMENT=6;
-
MySQL 约束条件
2016-04-29 17:10:43主键(PRIMARY KEY) 标识该属性为该表的主键,可以唯一的标识对应的记录。 外键(FOREIGN KEY) 标识该属性为该表的外键,与某个表的主键关联。...* MySQL不支持CHECK约束,但可以使用CHECK约束而没 -
MySQL约束(主键,唯一,非空,外键)
2020-12-14 13:46:36MySQL约束(主键,唯一,非空,外键) 概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。 分类: 1. 主键约束:primary key 2. 非空约束:not null 3. 唯一约束:unique 4. 外键约束:foreign key ... -
MYSQL 数据库给表加约束条件 (史上最详细教程!)!!
2020-12-14 11:08:25mysql> show columns from message;// 命令 +-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+... -
MySQL——约束条件、外键
2022-03-23 23:20:53文章目录创建表的完整语法约束条件not nullunsignedzerofilldefaultuniqueprimary keyauto_increment清空数据的两种方式外键外键浅析外键种类如何判断表关系SQL语句实现级联更新级联删除 创建表的完整语法 # 语法: ... -
MySQL的约束条件
2020-11-09 14:39:17文章目录前言一、MySQL的约束条件有哪些?二、约束条件举例1.NOT NULL2.UNIQUE3.DEFAULT4.PRIMARY KEY5.FOREIGN KEY6.CHECK总结 前言 一、MySQL的约束条件有哪些? 1 . not null — 指示某列不能存储 NULL 值。 2.... -
Mysql约束相关的基础知识
2021-02-02 15:47:571. DQL:查询语句1. 排序查询2. 聚合函数3. 分组查询4. 分页查询2. 约束3. 多表之间的关系4. 范式5. 数据库的备份和还原DQL:查询语句1....* 注意:* 如果有多个排序条件,则当前边的条件值一样时... -
MYSQL的约束条件
2022-04-12 15:01:22一、主键约束 1.特点:不能添加重复的值,并且值不能为NULL。 2.分类: (1)单链主键 CONSTRAINT pk1 primary key(eid) (2)联合主键: 就是由一张表中多个字段组成的。 primary key(字段1,字段2,……,字段n... -
mysql的约束条件
2021-11-20 15:30:37表的约束: 主键约束: primary key:不能重复,...检查约束: check:在SQL标准中,检查约束是存在的,但是注意: MySQL在8.0之前是默认不支持检查约束的!!! 8.0之前,定义是添加检查约束,不报错,也不生效 8.... -
MySQL的七种约束
2022-02-20 10:43:00MySQL约束类型 -
数据库中的五大约束条件
2021-01-27 11:59:23数据库中的约束条件,在数据库中使用约束条件可以定义规则使得数据能够朝我们希望的方向发展,也就是可以保证数据的完整性。在数据库中有五大约束条件,分别为主键约束,非空约束,唯一约束,检查性约束,外键约束。... -
MySQL数据库约束整理
2021-01-30 05:29:22约束条件与数据类型的宽度一样,都是可选参数作用:用于保证数据的完整性和一致性主要分为:PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录FOREIGN KEY (FK) 标识该字段为该表的外键NOT NULL 标识该... -
MySQL 字段增删改查 和 约束条件
2021-01-18 18:37:44一、字段操作1.添加字段 (add)alter table add 字段名 数据类型;desc ;2.修改字段数据类型 (modify)alter table ...#可用来修改字段数据类型#也可以在修改数据类型后添加默认值或其它约束条件#可以在最后修改字段位... -
MYSQL 数据库给表加外键约束条件 (史上最详细教程)
2020-12-14 10:57:31(还未加外键约束) 1. mysql> show columns from message;//信息表 +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------... -
MySQL约束
2021-01-18 19:56:29MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息;常用5种约束:not null: 非空约束,指定某列不为空unique: 唯一约束,指定某列和几列组合的数据不能重复primary key:... -
mysql字段类型与约束条件
2021-01-19 00:00:01一、数值类型二、日期类型三、枚举与集合四、约束条件五、设置严格模式一、数值类型1.1 整型应用场景: id号、年龄...tinyint:有符号:默认范围 -128, 127无符号:默认范围 0,255#tinyint 默认有符号:create table ... -
mysql如何处理外码约束
2021-02-07 00:59:05http://hi.baidu.com/wangzhiqing999/item/e74b2be28be445a3c00d7528MySQL 外键约束-- 创建测试主表. ID 是主键.CREATE TABLE test_main (id INT,value VARCHAR(10),PRIMARY KEY(id));-- 创建测试子表.CREATE TABLE ... -
MySQL - 完整性约束条件
2021-12-15 22:42:00完整性约束条件 完整性约束条件是对字段进行限制,要求用户对该属性进行的操作符合特定的要求。如果不满足完整性约束条件,数据库系统将不再执行用户的操作。 PRIMARY KEY (PK) 标识该字段为该表的主键,可以... -
mysql 数据类型 约束条件
2021-01-19 02:05:18不同的用户体验数据类型:规定了数据库可以存放哪些数据约束:限制储存数据的规则引擎: 针对于表的前提:引擎是建表时规定,提供给表使用,不是数据库mysql>> show engines ; 展示所有引擎重点:innodb(默认):支持... -
mysql常用的约束条件及执行
2021-03-14 11:51:41约束* 对表中的数据进行限定,保证数据的正确性、有效性和完整性。* 分类:1. 主键约束: primary key2. 非空约束: not null3. 唯一约束: unique4. 外键约束: foreign key* 非空约束:1.创建时添加create table ... -
mysql 设置男女约束
2020-08-21 20:43:17参考 MySQL数据库创建sex字段设置男女约束 这样写好像会因为汉字而报错 Invalid default value for ‘sex’ CREATE TABLE t_user ( id INT(11) NOT NULL AUTO_INCREMENT, sex CHAR(2) default '男' CHECK (sex in('... -
MySQL数据库中数据表的约束条件
2022-03-31 19:19:30MySQL数据库中数据表的约束条件 -
mysql完整性约束实例详解
2020-12-15 01:33:52约束条件作用:用于保证数据的完整性和一致性 主要分为 PRIMARY KEY (PK) #标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) #标识该字段为该表的外键 NOT NULL #标识该字段不能为空 UNIQUE KEY ... -
详解MySQL 外键约束
2020-12-14 08:20:16MySQL通过外键约束来保证表与表之间的数据的完整性和准确性。 2.外键的使用条件 两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持) 外键列必须建立了索引,MySQL ... -
mysql怎么添加约束?
2021-01-30 18:42:06在MYSQL数据库中,建表时就可以进行对表的各项进行一些操作,例如添加主键约束或者非空约束;也可以在建表后进行添加约束和删除约束的操作。下面本篇文章就来带大家具体了解一下,希望对大家有所帮助。什么是约束?...