自学内容网 自学内容网

MySQL之字段类型和SQL约束

目录

一、字段类型

1、整数类型

2、浮点类型

3、日期类型

4、文本

二、SQL约束

1、主键约束

2、非空约束

3、唯一约束

4、默认值约束

5、外键约束


一、字段类型

1、整数类型

分类

类型名称

说明

TINYINT

非常小的整数

范围是-128到127(有符号),0到255(无符号)

SMALLINT

小整数

范围是-32768到32767(有符号),0到65535(无符号)

MEDIUMINT

中等大小的整数

范围是-8388608到8388607(有符号),0到16777215(无符号)

INT

普通大小的整数

范围是-2147483648到2147483647(有符号),0到4294967295(无符号)

BIGINT

大整数

范围是-9223372036854775808到9223372036854775807(有符号),0到18446744073709551615(无符号)

2、浮点类型

分类

类型名称

说明

FLOAT

单精度浮点数

范围大约是-3.402823466E+38到-1.175494351E-38

DOUBLE

双精度浮点数

范围大约是-1.7976931348623157E+308到-2.2250738585072014E-308,0,2.2250738585072014E-308到1.7976931348623157E+308

DECIMAL

定点数

用于存储精确的小数。DECIMAL(M,D)表示最多有M位数字,其中有D位在小数点右边

注意:定义数据类型时推荐使用定点数(DECIMAL)而不是浮点数(如FLOAT或DOUBLE),主要原因是由于浮点数类型用于存储近似的小数,它们在存储和计算时可能会出现舍入误差,而定点数类型用于存储精确的小数。它们可以精确地表示和存储小数,不会出现舍入误差。

3、日期类型

分类

类型名称

说明

DATE

日期类型

格式为YYYY-MM-DD

TIME

时间类型

格式为HH:MM:SS

DATETIME

日期和时间类型

格式为YYYY-MM-DD HH:MM:SS

TIMESTAMP

时间戳类型

范围是1970-01-01 00:00:01到2038-01-19 03:14:07

YEAR

年份类型

范围是1901到2155

4、文本

分类

说明

CHAR(m)

定长字符串,m为0~255之间的整数定长

VARCHAR(m)

变长字符串,m为0~255之间的整数变长

TEXT

用于存储较大的文本数据,最大长度为65535个字符

MEDIUMTEXT

用于存储更大的文本数据,最大长度为16777215个字符

LONGTEXT

用于存储非常大的文本数据,最大长度为4294967295个字符

二、SQL约束

1、主键约束

定义:主键约束用于唯一标识表中的每一行记录。一个表中只能有一个主键,主键列的值必须唯一且不能为空。

关键字:PRIMARY KEY

补充:AUTO_INCREMENT:通常用于主键列,列类型必须是整型,以确保每个新插入的记录都有一个唯一的标识符。当一个表中的列被定义为AUTO_INCREMENT时,MySQL会自动为该列生成一个唯一的值,每当插入一条新记录时,该值会自动递增。

2、非空约束

定义:非空约束用于确保列中的值不能为NULL。这意味着在插入或更新记录时,该列必须有值。

关键字:NOT NULL

3、唯一约束

定义:唯一约束用于确保列中的所有值都是唯一的,但可以包含NULL值。一个表中可以有多个唯一约束。

关键字:UNIQUE

注意:虽然唯一约束与主键约束在描述上功能类似,但是其实还是很多区别的。主键一定满足唯一约束,但是唯一约束不一定是主键。

相同点:主键约束和唯一约束在SQL中都用于确保数据的唯一性

不同点:

① 主键约束:用于唯一标识表中的每一行记录,值必须唯一且不能为空,一个表中只能有一个主键。

② 唯一约束:用于确保列中的所有值都是唯一的,但可以包含NULL值,一个表中可以有多个唯一约束。

4、默认值约束

定义:默认值约束用于为列指定一个默认值。当插入记录时,如果没有指定该列的值,则自动使用默认值。

关键字:DEFAULT

5、外键约束

定义:外键约束用于建立两个表之间的关联关系。外键列的值必须在被引用表的主键列中存在,或者为NULL。

语法:FOREIGN KEY (column1, column2, ...) REFERENCES referenced_table (ref_column1, ref_column2, ...)


原文地址:https://blog.csdn.net/qq_58114907/article/details/145123901

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!