数据类型与表的约束前言一、数据类型(1) 数值类型1、tinyint类型2、bit类型(2) 小数类型1、float2、decimal(3) 字符串类型1、char2、varchar3、char与varchar区别(4) 日期类型(5) enum和set二、表的约束(1) 空属性(2) 默认值 default(3) 列描述 comment(4) zerofill(5) 主键primary key(6) 自增长 auto_increment(7) 唯一键 unique(8) 外键 foreign key结语前言在了解了MySQL关于数据库与表的操作后我们来继续MySQL关于数据类型与表的约束等相关内容。一、数据类型(1) 数值类型下面我们展示包含数值类型的表然后拿其中个别进行案例介绍其他的都能触类旁通。1、tinyint类型# 有符号create table t1(num tinyint);#无符号create table tt2(num tinyint unsigned);2、bit类型bit[(M)] : 位字段类型。M表示每个值的位数范围从1到64。如果M被忽略默认为1。如果我们有这样的值只存放0或1这时可以定义bit(1)这样就可以节省空间。值得注意的是bit字段在显示时是按照ASCII码对应的值显示。(2) 小数类型1、floatfloat[(m, d)] [unsigned] : M指定显示长度d指定小数位数占用空间4个字节2、decimaldecimal(m, d) [unsigned] : 定点数m指定长度d表示小数点的位数decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略默认为0。如果m被省略默认是10。且decimal的精度要比float高。(3) 字符串类型1、charchar(L): 固定长度字符串L是可以存储的长度单位为字符最大长度值可以为255而在MySQL中无论汉字、字母还是数字都视为一个字符在表中存储。2、varcharvarchar(L): 可变长度字符串L表示字符长度最大长度65535个字节当编码是utf8时varchar(n)的参数n最大值是65532/321844[因为utf中一个字符占用3个字节]如果编码是gbkvarchar(n)的参数n最大是65532/232766因为gbk中一个字符占用2字节。3、char与varchar区别char 与 varchar 在输入参数就确定其最大大小。char是定长的而varchar是变长的能在于其能够根据实际填入的内容来在最大大小内使用相应大小。定长的磁盘空间比较浪费但是效率高。变长的磁盘空间比较节省但是效率低。(4) 日期类型date : 日期 ‘yyyy-mm-dd’ 占用三字节datetime : 时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从 1000 到 9999 。其时区无关存储的是字面量日期时间值timestamp : 时间戳从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致但存储时将当前会话时区转换为UTC查询时再从UTC转换回当前会话时区在MySQL的5.6.4版本之前datetime 占用八字节而timestamp 占用四字节。从5.6.4版本后其都支持小数秒精度存储空间随之变化。(5) enum和setenum枚举“单选”类型enum(‘选项1’,‘选项2’,‘选项3’,…);该设定只是提供了若干个选项的值最终一个单元格中实际只存储了其中一个值而且出于效率考虑这些值实际存储的是“数字”因为这些选项的每个选项值依次对应如下数字1,2,3,…最多65535个当我们添加枚举值时也可以添加对应的数字编号。set集合“多选”类型set(‘选项值1’,‘选项值2’,‘选项值3’, …);该设定只是提供了若干个选项的值最终一个单元格中设计可存储了其中任意多个值而且出于效率考虑这些值实际存储的是“数字”因为这些选项的每个选项值依次对应如下数字1,2,4,8,16,32… 最多64个。二、表的约束真正约束字段的是数据类型但是数据类型约束很单一需要有一些额外的约束更好的保证数据的合法性从业务逻辑角度保证数据的正确性。(1) 空属性null默认的和 not null(不为空)可见在not null约束下插入数据时,没有给教室数据插入会失败。(2) 默认值 default数据在插入的时候不给该字段赋值就使用该默认值。值得注意的是not null和defalut一般不需要同时出现因为default本身有默认值不会为空。(3) 列描述 commentcomment没有实际含义专门用来描述字段会根据表创建语句保存用来给程序员或DBA来进行了解。mysql create table person(- name varchar(20) not null comment ‘姓名’,- age tinyint unsigned default 0 comment ‘年龄’,- sex char(2) default ‘男’ comment ‘性别’);通过desc查看不到注释信息通过show可以看到。(4) zerofillmysql create table t1(- a int(10) unsigned,- b int(10) unsigned- );其实没有zerofill这个属性int(10) 括号内的数字是毫无意义的。在填加了zerofill属性后可见下面效果如果有zerofill属性的数据宽度小于设定的宽度这里设置的是5就会自动填充0。(5) 主键primary keyprimary key用来唯一的约束该字段里面的数据不能重复不能为空一张表中最多只能有一个主键主键所在的列通常是整数类型。一张表中最多只能有一个主键但主键可添加多个字段为复合主键。(6) 自增长 auto_increment其当对应的字段不给值会自动的被系统触发系统会从当前字段中已经有的最大值进行1操作得到一个新的不同的值。通常和主键搭配使用作为逻辑主键。然后自增长字段必须是整数且整张表最多只能有一个自增长。(7) 唯一键 unique一张表中有往往有很多字段需要唯一性数据不能重复而unique就可以解决这个问题。唯一键的本质和主键差不多但唯一键允许为空而且可以多个为空而空字段不做唯一性比较。(8) 外键 foreign key外键是用于定义主表和从表之间的关系。外键约束主要定义在从表上主表则必须是有主键约束或unique约束。当定义外键后要求外键列数据必须在主表的主键列存在或为null。foreign key (字段名) references 主表(列)结语以上就是MySQL数据类型与表的约束的基本内容了。如果喜欢我的内容请点赞、收藏加关注多多支持我这个编程小白啊以及欢迎各位在评论区讨论交流并指出我的不足谢谢大家。
企业数字化 ERP 产品动态
相关推荐
4 步把 Folia 装进手机:PWA 手机安装完整指南 4 步把 Folia 装进手机:PWA 手机安装完整指南 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major
Folia 是一款把整块屏幕交给歌词动画… · 2026/11/6 11:33:51
dsh-purge|提示词注入、一键还原与本地靶场演练,一篇讲透 dsh-purge|提示词注入、一键还原与本地靶场演练,一篇讲透 【免费下载链接】dsh-purge DeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model —… · 2026/11/10 12:49:56
微信聊天记录导出:4 种格式加年度聊天报告,本地免费 5 分钟跑通 微信聊天记录导出:4 种格式加年度聊天报告,本地免费 5 分钟跑通 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitH… · 2026/11/4 15:54:42
开封中小施工企业负责人必看!特种作业证考试口诀保姆级教程 开封中小施工企业负责人必看!特种作业证考试口诀保姆级教程 你是不是也遇到过这种情况:项目开工前,特种作业人员证还没办齐,领导催得紧,你却不知道到底去哪里报?更怕一不留神被黑中介骗了钱还拿不到证?作为开封中小施工企业的负责人,这些问题真的不是… · 2026/11/11 4:29:28
井下电工证考试视频千万别踩坑,实操考试心里没底怕挂科 井下电工证考试视频千万别踩坑,实操考试心里没底怕挂科 实操考试心里没底怕挂科?你不是一个人。特别是在井下作业这种高风险环境中,井下电工证的考核要求严格,很多人担心自己考不过、挂科,白白浪费时间精力。别再踩坑,跟着这份 井下电工证考试视频… · 2026/11/11 4:29:28
电工作业费收费标准多少钱 之前考的证在外省能不能转过来 电工作业费收费标准多少钱 之前考的证在外省能不能转过来 之前考的证在外省能不能转过来?这几乎是每个准备考电工证或者正在考虑转岗的从业者都会问的问题。尤其是像你在驻马店这样的地方,工作流动性大,不少人都在问: 电工作业费收费标准多少钱… · 2026/11/11 4:29:28
井下电工证考试视频多少钱?实操考试心里没底怕挂科?这篇全讲透 井下电工证考试视频多少钱?实操考试心里没底怕挂科?这篇全讲透 实操考试心里没底怕挂科?别急,你不是一个人。眼下越来越多的工人开始关注井下电工证考试视频,尤其是那些在煤矿、矿井、隧道等作业环境里从事电工相关工作的人员,他们深知这个证书对职业生… · 2026/11/11 4:29:28
鄱阳县电工证报名机构怎么选?全国通用证能让你多接项目 鄱阳县电工证报名机构怎么选?全国通用证能让你多接项目 工地太忙根本没时间复习考试,电工证又快到期了,到底该怎么办?这几乎是每个在鄱阳县从事建筑、安装、维修的电工师傅心里最烦心的事。尤其是现在工程进度紧、任务重,谁还有空天天看书刷题?别急,【… · 2026/11/11 4:29:28
低压电工证河南怎么转?全国通用吗?看完这篇就懂了 低压电工证河南怎么转?全国通用吗?看完这篇就懂了 之前考的证在外省能不能转过来?这是很多河南小伙伴在报考低压电工证前最关心的问题。特别是在商丘、郑州等地,越来越多的打工者和创业者想从事低压电气相关工作,但对证书的通用性、考试流程、岗位风险等… · 2026/11/11 4:28:27
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/10 2:16:10
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/10 17:46:39
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/10 17:11:43
_中职电工证最新政策解读 中职电工证在哪考?工地太忙根本没时间复习考试的救星来了 工地太忙根本没时间复习考试,这是很多正在备考 中职电工证 的建筑工友的真实写照。你不是不想考,而是真的没时间。但别担心,这期内容是 新乡初次报考人员… · 2026/11/11 0:00:52
昆明电工证培训价格值不值得考?老电工告诉你真相 昆明电工证培训价格值不值得考?老电工告诉你真相 之前考的证在外省能不能转过来?这个问题是很多在外地打工、换城市生活、或者是想在昆明发展的朋友最关心的。尤其是现在云南发展快,很多企业都在招持证上岗的电工,如果你手头有证但不在本地,那这个证是不… · 2026/11/11 0:00:52
特种电缆张工网上查询全攻略:外省证如何转过来 特种电缆张工网上查询全攻略:外省证如何转过来 之前考的证在外省能不能转过来?这是很多特种作业从业者最关心的问题,尤其是像特种电缆张工这类证书,直接关系到日常工作是否合规、能否顺利晋升。很多小伙伴因为证书归属地的问题,陷入职业发展的瓶颈,甚至… · 2026/11/11 0:00:52
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 20:19:29
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 19:22:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 17:00:47