数据库中数据类型和约束(整数类型、字符串、时间类型)

news/2024/8/22 21:46:22

        数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,比如:数据类型和约束。

        数据类型和约束保证了表中数据的准确性和完整性

1. 数据类型

        数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来,使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。

常用数据类型如下:

  • 整数:int,bit   【bit字节,只能是0和1】
  • 小数:decimal
  • 字符串:varchar,char
  • 日期时间: date, time, datetime
  • 枚举类型(enum)    【比如性别:只能选男或女】

数据类型说明:

  • decimal表示浮点数,如 decimal(5, 2) 表示共存5位数,小数占 2 位.
  • char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab ',3表示字符数
  • varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab',3表示字符数
  • 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径.
  • 字符串 text 表示存储大文本,当字符大于 4000 时推荐使用, 比如技术博客.

2. 数据约束

        约束是指数据在数据类型限定的基础上额外增加的要求.

常见的约束如下:

  • 主键 primary key: 物理上存储的顺序. MySQL 建议所有表的主键字段都叫 id, 类型为 int unsigned.
  • 非空 not null: 此字段不允许填写空值.
  • 惟一 unique: 此字段的值不允许重复.
  • 默认 default: 当不填写字段对应的值会使用默认值,如果填写时以填写为准.
  • 外键 foreign key: 对关系字段进行约束, 当为关系字段填写值时, 会到关联的表中查询此值是否存在, 如果存在则填写成功, 如果不存在则填写失败并抛出异常.

【id一般是主键,主键是标识数据记录,  通过id可以区分不同记录数据   , id是主键,是唯一的, 不能重复,   外键就是使用某个表中的主键数据,可以根据外键进行连表查询】

3. 数据类型附录表

3.1 整数类型

类型字节大小有符号范围(Signed)无符号范围(Unsigned)
TINYINT1-128 ~ 1270 ~ 255
SMALLINT2-32768 ~ 327670 ~ 65535
MEDIUMINT3-8388608 ~ 83886070 ~ 16777215
INT/INTEGER4-2147483648 ~21474836470 ~ 4294967295
BIGINT8-9223372036854775808 ~ 92233720368547758070 ~ 18446744073709551615

3.2 字符串

类型说明使用场景
CHAR固定长度,小型数据身份证号、手机号、电话、密码
VARCHAR可变长度,小型数据姓名、地址、品牌、型号
TEXT可变长度,字符个数大于 4000存储小型文章或者新闻
LONGTEXT可变长度, 极大型文本数据存储极大型文本数据

3.3 时间类型

类型字节大小示例
DATE4'2020-01-01'
TIME3'12:29:59'
DATETIME8'2020-01-01 12:29:59'
YEAR1'2017'
TIMESTAMP4'1970-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC

http://lihuaxi.xjx100.cn/news/269249.html

相关文章

总线控制内部eep_【上周回顾】小白如何自学单片机;电子专业的十个神总结;摩尔定律54年;电子工程师常弄混的总线分类汇总;他做成了半导体害怕他做的事...

往期动态:1.他60岁回国,做成了半导体行业都害怕他做成的事...2.教你4招,小白如何自学单片机,绝对管用!3.电子工程师常弄混的总线分类汇总,你中招了吗?4.摩尔定律54年:他是如何在实验…

现实迷途 第七章 特殊客户

第七章 特殊客户 注:原创作品,请尊重原作者,未经同意,请勿转载,否则追究责任。 江北一般都是上午待在办公室里,搜集信息或整理以前做过的系统,下午才出去站街招客。 站街站了一段时间后&#xf…

用Transformer进行图像语义分割,性能超最先进的卷积方法!

点击上方“视学算法”,选择加"星标"或“置顶”重磅干货,第一时间送达丰色 发自 凹非寺量子位 报道 | 公众号 QbitAI正如大家所知,在进行图像语义分割时,图像被编码成一系列补丁后往往很模糊,需要借助上下文信…

红外线可程序化?遥控器Motedem控制自家居住环境

2019独角兽企业重金招聘Python工程师标准>>> Motedem是台可程序化遥控器,用户可以透过蓝牙连接至Raspberry Pi ,并以远程遥控或程序自动控制的方式送出红外线指令,如此一来就能让旧型电视、电扇、冷气等家电加装自动化功能&#x…

mysql帐号,权限管理

-> use mysql; //选择数据库 -> select host,user,password from user; //查询已有用户 -> insert into user (host,user,password) values(localhost,kiscms,password(kiscms)); //插入一个用户 -> select host,user,password from user; //再次查询用户 -> fl…

重磅!CSDN 发布「AI开源贡献奖Top5」「AI新锐公司奖Top10」「AI优秀案例奖Top30」三大榜单...

2020 年无疑是特殊的一年,AI 在开年的这场“战疫”中表现出惊人的力量。站在“新十年”的起点上,CSDN发起【百万人学AI】评选活动。我们继续聚焦AI的技术落地,关注开源和新生的力量。作为CSDN第三届AI评选活动,本次活动受到数百家…

学术前沿 | 图像质量量化评估标准综述

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达转载于 :知乎:MrZH,已获授权来源:https://zhuanlan.zhihu.com/p/1202548921.为什么需要图像质量评估标准2.评估标准分类&am…

图形化客户端Navicat介绍和使用

1. Navicat的介绍 Navicat 是一套快速、可靠并价格适宜的数据库管理工具, 适用于三种平台: Windows、mac OS 及 Linux。 可以用来对本机或远程的 MySQL、SQL Server、SQLite、Oracle 等数据库进行管理及开发。 专门为简化数据库的操作而设计。 它的设计符合数据库管理员、开发人…