MySQL 列类型 和 列约束

2021/7/26 2:14:50

本文主要是介绍MySQL 列类型 和 列约束,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

mysql数据库----- 列类型

用于限定指定列上可以保存的数据格式:

1. 数字类型;(存储单位由大到小TB → GB → MB → KB → BYTE → BIT,每一级换算单位1024,1BYTE = 8BIT )

  1-1.TINYINT  占用1个字节存储空间,表示范围 -128~127

  1-2.SMALLINT  占用2个字节存储空间,表示范围 -32768~32767

  1-3.INT  占用4个字节,表示范围 -2147483648~2147483647

  1-4.BIGINT  占用8个字节,表示范围 -9223372036854775808~9223372036854775807

  1-5.FLOAT[(M,D)]  单精度浮点数,占用4个字节存储空间(M表示总的有效位数;D表示小数点后面允许的有效位数)

  1-6.DOUBLE[(M,D)]  双精度浮点数,占用8个字节存储空间

  1-7.DECIMAL[(M,D)]  严格定点数,用于保存精确小数

2. 布尔类型;(表示‘真/假’、‘是/否’的类型,)

  2-1.BOOL/BOOLEAN  取值只能为TRUE或者FALSE

    注意:true和false是关键字,不能用引号括起来

       mysql中的布尔类型在底层等价于tinyint(1),即长度为1的整形数字,所以0为false,非0为true

3. 字符串类型;(必须用英文单引号或者双引括起来)

  3-1.CHAR(M)  固定长度字符串,长度最大为255个字符

  3-2.VARCHAR(M)  长度可变的字符串,长度最大为65535个字符

  3-3.TEXT(M)  长度可变的字符串,长度最大可以到232,即4G个字符

固定长度是,输入字符不满足长度时,自动占位补全(存在空间浪费,操作速度快);

长度可变是,输入字符不满足长度是不占位补全(操作速度相对固定长度慢)

4. 日期时间类型;(必须用英文单引号或者双引号括起来)

  4-1.DATE  日期类型,支持的范围“1000-01-01”到“9999-12-31”

  4-2.TIME  事件类型,支持的范围是“00:00:00”到“23:59:59”

  4-3.DATETIME  日期时间类型,支持范围“1000-01-01 00:00:00”到“9999-12-31 23:59:59”

由于不同系统中日期时间类型的表示范围不完全一样,且不同语言区域中的默认日期格式不一样,推荐使用BIGINT来存储日期时间。距离计算机元年毫秒数1970-1-1 0:0:0

 

mysql数据库----- 列约束

 约束指表中特定列上出现的所有数据必须满足特定内容要求,如插入的新数据行中的数据不满足该要求,该记录就无法成功插入。

1. 主键约束  PRIMARY KEY  声明为主键的列,值不能为空,且必须唯一。(如果是编号列可以自动排列数据)

 

NULL 在mysql中表示空,在插入数据时,表示无法确定的数据,例如商品上架时间....

在插入数据时,建议每次插入一条数据,否则列约束可能无法生效

 2. 非空约束  NOT NULL  限定指定列上的值不能为NULL

不等价!

 

 3. 唯一约束  UNIQUE  限定指定列上的值不能出现重复值

 

 4. 检查约束  CHECK  限定指定列上的值不能为NULL(mysql暂不支持此功能)

 

 5. 外键约束  FOREIGN KEY  外键列上出现的值必须在其他参考的表的主键列上出现过

 

 6. 默认值约束  DEFAULT  指定当列上未明确指定值时所使用的默认值

 

 最后一个插入表示只给oid设置指定值,其他使用默认值

 7. 自增列  AUTO_INCREMENT  若主键列是整数类型,则同时可以声明此列上的值为“自动增长”

若插入数据时未指定值或者指定为NULL值,则默认就会生成一个在当前最大值基础上+1的下一个整数值。若曾经存在的最大值删除,再次添加不会被占用,还是继续+1增长

 



这篇关于MySQL 列类型 和 列约束的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程