Mysql 完整性约束

定义:

  完整性约束是对字段进行限制,从而符合该字段达到我们期望的效果比如字段含有默认值,不能是NULL等, 主要有唯一、自增、主键、外键约束

唯一约束:

  唯一约束可以有多个但索引列的值必须唯一,索引列的值允许有空值。

  如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE。

  示例:

CREATE TABLE t5(
  id   INT AUTO_INCREMENT,
  name VARCHAR(20) DEFAULT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY UK_t5_name (name)
);
-- 建表后添加约束:

alter table t5 add constraint UK_t5_name unique (name);

-- 如果不需要唯一约束,则可以这样删除

ALTER TABLE t5 DROP INDEX UK_t5_name;

语法:

-- 创建唯一约束:
create unique index UK_t5_name on t5 (name);

-- 建表后添加约束:

alter table t5 add constraint UK_t5_name unique (name);

-- 如果不需要唯一约束,则可以这样删除

ALTER TABLE t5 DROP INDEX UK_t5_name;

自增约束:

MySQL 每张表只能有1个自动增长字段,这个自动增长字段通常作为主键,也可以用作非主键使用,但是请注意将自动增长字段当做非主键使用时必须必须为其添加唯一索引,否则系统将会报错。

mysql> CREATE TABLE t4(
    ->   id INT NOT NULL,
    ->   name VARCHAR(20),
    ->   age INT UNIQUE AUTO_INCREMENT
    -> );
Query OK, 0 rows affected (0.13 sec)

主键约束:

主键是用于唯一标识一条记录的约束,如同身份证。

主键有两个约束:非空且唯一!

创建主键约束两种方式:

-- 方式1

CREATE TABLE t1(
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(20)
);

-- 方式2

CREATE TABLE t2(
  id INT NOT NULL,
  name VARCHAR(20)
);

主键约束的增加和删除:

添加主键 alter table tab_name add primary key(字段名称,...)
删除主键 alter table users drop primary key;

CREATE TABLE test(num INT PRIMARY KEY AUTO_INCREMENT);<br>
 -- 思考,如何删除主键?
    ALTER TABLE test modify id int;   -- auto_increment没了,但这样写主键依然存在,所以还要加上下面这句
    ALTER TABLE test drop primary key;-- 仅仅用这句也无法直接删除主键

主键注意事项:

注意:

1、一张表中最多只能有一个主键

2、表中如果没有设置主键,默认设置NOT NULL的字段为主键;此外,表中如果有多个NOT NULL的字段,则按顺序将第一个设置NOT NULL的字段设为主键。

结论:主键一定是非空且唯一,但非空且唯一的字段不一定是主键。

3、主键类型不一定必须是整型

复合主键约束:

所谓的复合主键 就是指你表的主键含有一个以上的字段。

如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式

①创建:

create table sc (
    studentid int,
    courseid int,
    score int,
primary key (studentno,courseid)
);
②修改:

alter table tb_name add primary key (字段1,字段2,字段3);

外键约束:

外键的定义语法:

[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)

                    REFERENCES tbl_name (index_col_name, ...)

    [ON DELETE {RESTRICT CASCADE SET NULL NO ACTION SET DEFAULT}]

    [ON UPDATE {RESTRICT CASCADE SET NULL NO ACTION SET DEFAULT}]

时间: 2024-12-18 08:07:57

Mysql 完整性约束的相关文章

MySQL完整性约束

一.介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键) DEFAULT 为该字段设置默认值 UNSIGNED 无符号 ZEROFILL 使用0填充

百万年薪python之路 -- MySQL数据库之 完整性约束

MySQL完整性约束 一. 介绍 为了防止不符合规范的数据进入数据库,在用户对数据进行插入.修改.删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确.有效.相容. 约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种: 约束条件: primary key (PK) 标识该字段为该表的主键,可以唯一的标识记录 foreign key (FK) 标识该字段为该表的外键 not null 标识该字段不能为空 unique

Mysql数据库系列

详情点击 为什么用Mysql Mysql数据库概述 Mysql的基本安装和配置 Mysql创建用户和授权 基本的Mysql语句 Mysql库的操作 Mysql表的操作 Mysql数据类型(一) Mysql数据类型(二) Mysql完整性约束 Mysql外键的变种 三种关系 Mysql数据的增删改 Mysql单表查询 Mysql多表查询 索引 Mysql视图,触发器,事务,存储过程,函数 pymysql模块的使用 mysql+centos7+主从复制 关系型和非关系型数据库的区别 后续待更新!!!

python--MySQL 库,表的详细操作

一 库操作 数据库命名规则 可以由数字,字母,下划线,@, #, $ 区分大小写 唯一性 不能使用关键字如 create  select 不能单独使用数字 最长128位 # 这些是对上次的补充. 二 表操作 1. MySQL的基础数据类型 简单介绍一下: #1. 数字: 整型:tinyinit int bigint 小数: float :在位数比较短的情况下不精准 double :在位数比较长的情况下不精准 0.000001230123123123 存成:0.000001230000 decim

MySQL中的完整性约束

对于已经创建好的表,虽然字段的数据类型决定所能存储的数据类型,但是表中所存储的数据是否合法并没有检查. MySQL支持的完整性约束: NOT NULL                 约束字段的值不能为空 DEFAULT                        设置字段的默认值 UNIQUE KEY(UK)             约束字段的值是唯一 PRIMARY KEY(PK)            约束字段为表的主键,可以作为该表记录的唯一标识 AUTO_INCREMENT    

五种完整性约束分别是什么——基于MySQL数据库的数据约束实例

为了防止不符合规范的数据进入数据库,在用户对数据进行插入.修改.删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确.有效.相容. #数据约束 #五种完整性约束: #NOT NULL :非空约束,指定某列不能为空: #UNIQUE : 唯一约束,指定某列或者几列组合不能重复 #PRIMARY KEY :主键,指定该列的值可以唯一地标识该列记录 #FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完

MySQL:表的操作 知识点难点总结:表完整性约束及其他常用知识点二次总结&#128580;

表操作 一 : 修改表表表表表表表表表: ALTER TABLE 语法 1. 改表名rename alter table 表名 rename 新表名 2. 增加字段add alter table 表名 add 字段名 数据类型 (完整性约束条件) add 字段名 数据类型(完整性约束条件) 3. 删除字段 drop alter table 表名 drop 字段名; 4. 修改字段 modify 字段名 数据类型 (完整约束条件); change 旧字段名 新字段名 旧数据类型 (完整性约束条件)

MySQL数据库篇之完整性约束和表关系

主要内容: 一.完整性约束 二.表关系 1?? 完整性约束 (1)何为完整性约束? 约束条件与数据类型的宽度一样,都是可选参数. 作用:用于保证数据的完整性和一致性 (2)分类主要有以下五类: 1.not null 与 default 2.unique 3.primary key 4.auto_increment 5.foreign key PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标

MySQL 之 第二章: 库与表的基本操作; 数据类型; 完整性约束; 外键;

库与表的基本操作 数据类型 完整性约束 外键 库与表的基本操作 库的增删改查: 查看系统库语句: show databases; information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件.锁等现象mysql: 授权库,主要存储系统用户的权限信息 sys: 创建数据库语法: