MySQL之字段类型和SQL约束
目录
一、字段类型
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)!