MySQL的基础操作——约束(上)——期末快速复习

文章目录

一、约束的基本概念


1.非空约束

如果在创建表的时候在创建字段的时候在后面加 not null,那就是在插入数据的时候这个字段不能省略,这个myclass中,如果insert into myclass (class_room)values ('一班');会报错
2.default默认值约束

如果后面带了default ,插入数据不带上这个字段名的话就会默认是你给的那个值。
注意:如果非空约束和default一般不一起写,因为你不写default,mysqld会自动在你的表结构加上,一般是default NULL,但不是真正意义的default,就是用来站位的,因为你加了not nulll约束的话,不显示写字段名的话也会报错,错误详细是没有默认值default,所以最终的结论是如果不能为空的字段就应该在插入的时候显式地写出来,而且我们一般都会默认全表插入。
3.zerofill

就是你是int类型的字段,你如果显示在创表时的命令如上图,就会显示在创表时mysqld做优化后实际的SQL语句,你会发现是int(10),如果在字段创建时加了zerofill时你插入的数据比如a插入1,它显示就会是0000000001,表示的意思就是1,只是他显示的长度为int后面的长度,当然你也可以显示给值,int(4)等多少就行,如果大于你给的长度那就正常显示数据,如果小于,就会在前面补零。
4.主键约束

简单来讲就是在字段后面加了这个的话,插入多个数据时,这个字段的数据就不能重复,重复会报错,一个表只有能有一个主键但可以是多个字段有主键约束,在后面创建表时最后这样写 primary key('字段名','字段名');

建议去自己去敲一下SQL命令,实践能更好记住

相关推荐
云飞云共享云桌面4 小时前
医疗器械设备研发:多人同时操作 SolidWorks,怎样依靠单台服务器替代多工作站
运维·服务器·网络·数据库·制造
知行合一。。。10 小时前
RAG--03--Milvus基本用法
数据库·oracle·milvus
TDengine (老段)10 小时前
TDengine 线程模型 — 网络、调度、执行
大数据·数据库·物联网·制造·时序数据库·tdengine·涛思数据
上学的小垃圾11 小时前
01-数据库系统概述
数据库
二进制漫游记12 小时前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding
2501_9289962212 小时前
GPT-4o换DeepSeek迁移成本多少?中科热备解析API聚合平台技术账本
前端·数据库·人工智能
泡干脆面就番茄14 小时前
MySQL_子查询_分页查询与联合查询详解
数据库·mysql
devpotato15 小时前
缓存与数据库更新顺序不一致问题
java·数据库·redis
天若有情67315 小时前
Node+MySQL小型全栈笔记项目实战课程分享
数据库·笔记·mysql
wxwx_bscxy32215 小时前
基于springboot宠物领养系统的设计与实现
数据库·spring boot·后端·spring·宠物