IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL之知识点(十一) -> 正文阅读

[大数据]MySQL之知识点(十一)

一、约束的概述

1,为什么需要约束:
数据完整性是指数据的精确性和可靠性,它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的,而为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制,可以从四个方面考虑:

  • 实体完整性:例如,同一个表中,不能存在两条完全相同无法区分的记录
  • 域完整性:例如,年龄范围,性别
  • 引用完整性:例如:员工所在部门,在部门表中要能找到这个部门
  • 用户自定义完整性:例如:用户名唯一、密码不能为空等

2,什么是约束

约束:对表中字段的限制

3,约束的分类

角度1:约束的字段的个数

单列约束 VS多列约束

角度2:约束的作用范围

列级约束 VS 表级约束

列级约束:将此约束声明在对应的字段后面

表级约束:在表中所有字段都声明完,在所有字段的后面声明的约束

角度3:约束的功能

1)not null(非空约束)

2)unique(唯一性约束)

3)primary key(主键约束)

4)foreign key(外键约束)

5)check(检查约束)

6)default(默认值约束)

4,如何添加/删除约束

CREATE TABLE时添加约束,ALTER TABLE时添加约束、删除约束

5,如何查看表中的约束

mysql> select * from information_schema.table_constraints where table_name='表名称';

二、?not null(非空约束)

mysql> create table test1(id int not null,last_name varchar(15) not null,email varchar(25),salary decimal(10,2));

#正确

mysql> insert into test1(id,last_name,email,salary) values(1,'TOM','tom@126.com',3400);

#错误

mysql> ?insert into test1(id,last_name,email,salary) values(1,null,'tom@126.com',3400);

?2,在ALTER TABLE时添加约束

mysql> alter table test1 modify email varchar(25) not null;

?3,在ALTER TABLE时删除约束

mysql> ?alter table test1 modify email varchar(25) ?null;

?三、唯一性约束

1,特点

  • 同一个表可以有多个唯一约束
  • 唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一
  • 唯一性约束允许列值为空
  • 在创建唯一约束的时候,如果不给唯一约束命名,就默认和列名相同
  • MySQL会给唯一约束的列上默认创建一个唯一索引

2,添加约束

mysql> ?create table test3(id int unique,last_name varchar(15),email varchar(25) unique,salary decimal(10,2));

在ALTER TABLE时添加约束?

1)alter table test3 add constraint uk_test3_sal unique(email);

2)alter table test3 modify last_name varchar(15) unique;

3,删除唯一性约束

  • 添加唯一性约束的列上也会自动创建唯一索引
  • 删除唯一约束只能通过删除唯一索引的方式删除
  • 删除时需要指定唯一索引名,唯一索引名就和唯一约束名一样
  • 如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同,如果是组合列,那么默认和()中排在第一个的列名相同,也可以自定义唯一性约束名

如何删除唯一性约束?

alter table test2 drop index last_time;

四、主键约束

?主键约束相当于唯一性约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值。

1,在create table 时添加约束

#? 一个表中最多只能有一个主键约束

# 错误:Multiple primary key defined

create table test3(
id int primary key, #列级约束
last_name varchar(15),
salary decimal(10,2),
email varchar(20)

#表级约束
#constraint pk_test3_id primary key(id)
);

2,在ALTER TABLE时添加主键约束

create table test4(
id int ,
last_name varchar(15),
salary decimal(10,2),
email varchar(25)

);
desc test4;

alter table test4 add primary key(id);
desc test4;

3,如何删除主键约束

alter table test4 drop primary key;

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 18:56:33  更:2022-07-20 18:59:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 5:27:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码