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 - 列的完整性约束

列的完整性约束

完整性约束条件是对字段进行限制,要求用户对该属性进行的操作符合特定的要求。如果不满足完整性约束条件,数据库系统将不再执行用户的操作。MySQL中基本的完整性约束条件如表3-11所示。下表是完整性约束条件:
在这里插入图片描述

1. 主键约束(PRIMARY KEY, 简称PK)

主键是表的一个特殊字段,能唯一标识该表中的每条信息。主键和记录的关系,如同身份证和人的关系。主键用来标识每个记录,每个记录的主键值都不同。身份证用来表明人的身份,每个人都具有唯一的身份证号。设置表的主键是指在创建表时设置表的某个字段为该表的主键。

主键的主要目的是帮助数据库管理系统以最快的速度查找到表的某一条信息。主键必须满足的条件就是主键必须是唯一的,表中任意两条记录的主键字段的值不能相同,并且是非空值。主键可以是单一的字段,也可以是多个字段的组合。

?
?
1.单字段主键
单字段主键的语法规则如下:

create table class1(propName propType PRIMARY KEY, ......);
或
create table class(propName propType , ...... PRIMARY KEY(propName));

创建表时在尾部
在这里插入图片描述
ID这一行已经被设置为主键
在这里插入图片描述
创建表school,设置id字段为PK约束,再查看class表信息,SQL语句如下

mysql> create database school;  					#创建数据库school
mysql> use school;   								#选择数据库school 
mysql> create table class(id int PRIMARY KEY, name varchar(128), teacher varchar(64));         								#创建表class
mysql> desc class ; 								#查询表class 的定义, describe class 效果等同
mysql> show create table class ;  					#同样可以实现查询表class 的定义
mysql> insert into class VALUES(1,'一班','martin');  #插入成功
mysql> insert into class VALUES(1,'二班','rock');    #因主键约束,插入失败

创建 class1 表
在这里插入图片描述
查询表定义
在这里插入图片描述
同样可以查询表的定义
在这里插入图片描述
主键约束,插入失败
在这里插入图片描述

Mysql 支持给主键设置名字:

create table tablename(propName propType , ......CONSTRAINT pk_name PRIMARY KEY(propName));

给id字段的PK约束设置一个名字,可以执行SQL语句CONSTRAINT。创建表class:

mysql> create database school;   			#创建数据库school
mysql> use school;   						#选择数据库school 
mysql> create table class(id int , name varchar(128), teacher varchar(64), CONSTRAINT id_pk PRIMARY KEY (id));         #创建表class
mysql> desc class ; 						#查询表class 的定义, describe class 效果等同
mysql> show create table class ;  			#同样可以实现查询表class 的定义
mysql> insert into class VALUES(1,'一班','martin');  #插入成功
mysql> insert into class VALUES(1,'二班','rock');    #因主键约束,插入失败

?
?
2.多字段主键
主键是由多个属性组合而成时,在属性定义完之后统一设置主键。语法规则如下:

CREATE TABLE tablename(
	propName1 propType,	#班级1
 	propName2 propType, #班级2
 	......
 	[CONSTRAINT pk_name]PRIMARY KEY(propName1, propName2)
 );

多字段主键的设置。

mysql> create database school;   #创建数据库school
mysql> use school;   			 #选择数据库school 
mysql> create table class2(id int, name varchar(128), teacher varchar(64), PRIMARY KEY(id,name));         #创建表class2,设置联合主键
mysql> desc class3 ;  			 #查询表class2 的定义, describe class2 效果等同
mysql> insert into class2 VALUES(1,'一班','martin');  #插入成功
mysql> insert into class2 VALUES(1,'一班','rock');    #因联合主键约束,插入失败

把ID, name 设置为联合的主键
在这里插入图片描述

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-29 16:23:14  更:2021-11-29 16:23:42 
 
开发: 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年11日历 -2024/11/24 7:17:03-

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