当前位置:网站首页>MySQL表的约束
MySQL表的约束
2022-08-02 17:10:00 【江南无故人】
数据类型是一种约束,但是保证数据的合法性还不够,需要有一些额外的约束,从 逻辑角度保证数据的正确性,比如某表中有身份证号码字段,该字段要求是唯一的。表的约束有很多,这里介绍常用的几种。
空属性
默认字段基本都为空,因为空不能参与运算,所以尽量不要为空。
例子:
假设有一个班级表,如果班级存在,那么从逻辑角度看,班级名就不为空,这也是一种约束。
默认值
某一字段设置默认值后,插入记录时,没有给该字段赋值,就使用默认值
使用方法:
效果验证:
列描述
是某列的一个描述(注释)
使用方法:
查看列描述使用的是show
zerofill
是一种格式化输出,添加该约束后,若数据长度未达到设定的长度,输出时候用0填充
使用方法:
实际存储时候没有这些0
主键
一张表只能有一个主键,不能重复,不能为空,主键列的类型通常为整型
指定主键的方法:
- 创建表时指定
- 创建表后追加
删除主键:
alter table 表名 drop primary key;
复合主键:
在创建表各字段最后加一个
primary key(多个字段,用逗号隔开)
例子:
唯一键
一张表可能有多个字段需要数据是唯一的,但一个表只能有一个主键,其他需要唯一性约束的字段可以设置成唯一键
唯一键允许为空,而且允许多个为空
使用方法:
唯一键不允许重复:
唯一键可以为NULL,且可以有多个
外键
主表和从表通过外键关联起来
外键顾名思义,定义在别的表上,即从表
主表必须有主键约束或唯一键约束
要求外键列数据必须在主表的主键列(唯一键列)存在或为空
外键可以是另一个表的主键或者唯一键
所以可以说外键是一种对从表的约束
使用方法:
自增
某一字段设置为自增后,插入时如果不给值,会自动赋值当前最大值+1
在这里插入代码片
设置自增的字段需要满足:
- 自增的字段必须本身是索引(key有值)
- 必须是整数
- 一张表只能设置一个自增
使用方法:
字段属性加上 auto_increment
如上,如果开始没有数据,第一次插入的值为1
获取上次插入的值
如果是一次插入多项记录,显示的是批量中的第一个值:
边栏推荐
猜你喜欢
「全球数字经济大会」登陆 N 世界,融云提供通信云服务支持
用函数递归的方法解决汉诺塔问题
Pytest学习笔记
ECCV 2022 | 清华&腾讯AI Lab提出REALY:重新思考3D人脸重建的评估方法
小程序毕设作品之微信体育馆预约小程序毕业设计成品(6)开题答辩PPT
Nacos环境隔离
MySQL常见面试题汇总(建议收藏!!!)
Google Earth Engine APP—— 一个不用写代码可以直接下载相应区域的1984-2021年的GIF遥感影像动态图
Gartner发布,年度Challenger!
Mini Program Graduation Works WeChat Gymnasium Reservation Mini Program Graduation Design Finished Product (8) Graduation Design Thesis Template
随机推荐
谁抢走了华大基因的生意?
Navicat premium download and install 15 detailed tutorial
golang源码分析(8):m、p、g、shedt、sudog
SQL Statement Basics
golang 计算器实现
[300+ selected big factory interview questions continue to share] Big data operation and maintenance sharp knife interview questions column (10)
npm install 时,卡住不动,五种解决方法
Mysql应用安装后找不到my.ini文件
NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术
golang源码分析(6):sync.Mutex sync.RWMutex
默认参数的代码实现及日期的注入与显示
金仓数据库KingbaseES安全指南--6.11. PAM身份验证
常用软件静默安装参数
The days of patching are more difficult than the days of writing code
【无标题】
罗敏背后是抖音
MYSQL下载及安装完整教程
RAID存储级别分类
图解LeetCode——622. 设计循环队列(难度:中等)
DeepMind 首席科学家 Oriol Vinyals 最新访谈:通用 AI 的未来是强交互式元学习