MySQL:约束主键唯一键

表的约束:表中一定有约束,通过约束让插入表中的数据是符号预期的
约束的本质是通过技术手段,倒逼程序员插入正确的数据

Null约束

在这里插入图片描述
这里的Null表示在插入的时候,该属性能否为空,如果是NO,则插入时候必须有数据

create table t1(
id int not null
);

  • 该语句显示出来就是NO

default约束

create table t1(
id int not null
age tinyint default 18,
);
insert into t1 (id) values (‘张三’);

id不能插null,age可以插null,如果插入时候省略age,默认age是18
not null default,default不为空就行

列描述

create table t1(
id int not null comment ‘用户id号’
age tinyint default 18,
);
这就是一个单纯的注释

zerofill

上图中,int括号中的数字是11,并且有zerofill修饰时,存储某个数的长度不够11位就用0填充
int最大取值范围是21亿多,共10位,另一位是符号位

主键

一张表有一列信息标定数据的唯一性
主键只有一个,要么没有
一个主键可以被添加到一列,或者多列上
primary key修饰
在这里插入图片描述
alter table 表名 add primary key (字段)
alter table 表名 drop primary key

create table t2(
id int,
name varchar(20) not null,
primary key(id, name)
);

  • id和name合起来是一个主键
    也就是插入的时候,id和name不能同时一样

自增长

create table t2(
id int primary key auto_increment,
name varchar(20) not null
);
在这里插入图片描述

默认从1开始插入

唯一键

与主键功能类似,插入时值可以为NULL
主键用来标记某个属性在整张表中的唯一性
唯一键用来保证同一列的值之间不会重复,也是一种唯一性

create table t4(
id int unique,
name varchar(20) not null
);
在这里插入图片描述

主键和唯一键两者都有唯一性

一个列设置成主键,但是其他列也需要有唯一性
例如:每个人身份证号是主键,但是每个人的电话号码也需要唯一性保证

外键

用于主表和从表的关系
外键一般都在从表中,用于和依附主表中的某一列(该列是被主键和唯一键修饰的)

create table student(
id int primary key,
name varchar(20),
tel char(11) unique,
class_id int,
foreign key(列名) references 主表名(主表中的某一列)
);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/322044.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙应用中图片的显示(Image组件)

目录 1、加载图片资源 1.1、存档图类型数据源 a.本地资源 b.网络资源 c.Resource资源 d.媒体库file://data/storage e.base64 1.2、多媒体像素图片 2、显示矢量图 3、添加属性 3.1、设置图片缩放类型 3.2、设置图片重复样式 3.3、设置图片渲染模式 3.4、设置图…

基于SSM的班级事务管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

初识对抗生成网络(GAN)

在研究语义通信的时候,发现解码端很多都是用GAN或基于GAN来完成的。带着对GAN的好奇,对GAN进行了一个初步学习。这篇文章介绍一下和GAN相关的一些常识吧~   本文围绕以下几个内容展开:     1.什么是GAN?     2.为什么要…

HTML5是什么?与HTML有什么区别?

HTML5 简介 HTML5(Hypertext Markup Language, version 5)是用于构建和呈现Web内容的最新版本的HTML标准。HTML是一种标记语言,用于描述和定义Web页面的结构和内容。HTML5引入了一系列新的语法、API和特性,旨在增强Web应用的功能…

opencv期末练习题(8)附带解析

图像切片 %matplotlib inline import cv2 import matplotlib.pyplot as plt def imshow(img,grayFalse,bgr_modeFalse):if gray:img cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)plt.imshow(img,cmap"gray")else:if not bgr_mode:img cv2.cvtColor(img,cv2.COLOR_BGR2RG…

阿里云PolarDB数据库不同配置租用价格表

阿里云数据库PolarDB租用价格表,云数据库PolarDB MySQL版2核4GB(通用)、2个节点、60 GB存储空间55元5天,云数据库 PolarDB 分布式版标准版2核16G(通用)57.6元3天,阿里云百科aliyunbaike.com分享…

【机器学习】卷积神经网络(五)-计算机视觉应用

七、应用-计算机视觉 7.1 人脸检测 DenseBox\Femaleness-Net\MT-CNN\Cascade CNN 介绍 VJ框架的分类器级联用于卷积网络 用于人脸检测的紧凑卷积神经网络级联 问题:作者希望实时检测高分辨率视频流中的正面,由于人脸图像和背景的多样性和复杂性&#xff…

5.云原生之DevOps和CICD

文章目录 怎么理解DevOps?所需环境介绍创建devops java项目DockerFile文件Jenkinsfiledevops.yaml文件 搭建 DevOps 项目创建凭证创建devops项目创建流水线编写流线文件运行流线 为流水线设置电子邮箱服务器设置QQ邮箱 SMTP服务器配置jenkins邮箱服务器 使用Webhook…

【KingbaseES】实现MySql函数WEERDAY

CREATE OR REPLACE FUNCTION weekday(date_val date) RETURNS integer AS $$ BEGIN RETURN EXTRACT(ISODOW FROM date_val); END; $$ LANGUAGE plpgsql IMMUTABLE;

自制数据库空洞率清理工具-C版-02-EasyClean-V1.1(支持南大通用数据库Gbase8a)

一、环境信息 名称值CPUIntel(R) Core(TM) i5-1035G1 CPU 1.00GHz操作系统CentOS Linux release 7.9.2009 (Core)内存3G逻辑核数2Gbase8a版本8.6.2-R43.34.27468a27EasyClean版本V1.1 二、简述 工作和兴趣相结合的产物,既能更好的完成工作,也能看看自…

分布式【zookeeper面试题23连问】

1. ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终&#x…

windows机器上安装mysql

0、mysql下载地址 1、参考文章 2、把Data数据目录迁移到其他盘 2.0 首先停止mysql(任务管理器-详细信息-随便找个进程右击进入转入服务,找到MySQL服务,点击停止) 2.1 windows的 mysql默认的data目录在C:\ProgramData\MySQL\MySQ…