MySQL(表操作之数据类型和完整约束)
Posted Worth Waiting For
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL(表操作之数据类型和完整约束)相关的知识,希望对你有一定的参考价值。
在之前的mysql初接触文章中介绍了关于表的一些基本操作 今天我们来深入的研究一些关于表的操作:
常用数据类 完整约束
常用数据类型
存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的
MySQL数据类型概览
#1. 数字: 整型:tinyinit int bigint 小数: float :在位数比较短的情况下不精准 double :在位数比较长的情况下不精准 0.000001230123123123 存成:0.000001230000 decimal:(如果用小数,则用推荐使用decimal) 精准 内部原理是以字符串形式去存 #2. 字符串: char(10):简单粗暴,浪费空间,存取速度快 root存成root000000 varchar:精准,节省空间,存取速度慢 sql优化:创建表时,定长的类型往前放,变长的往后放 比如性别 比如地址或描述信息 >255个字符,超了就把文件路径存放到数据库中。 比如图片,视频等找一个文件服务器,数据库中只存路径或url。 #3. 时间类型: 最常用:datetime #4. 枚举类型与集合类型
整数类型
日期类型
字符串类型
枚举与集合类型
完整约束
约束条件与数据类型的宽度一样,都是可选参数
作用:用于保证数据的完整性和一致性
分类及详解
PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键) DEFAULT 为该字段设置默认值 UNSIGNED 无符号 ZEROFILL 使用0填充 1. 是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值 2. 字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值 sex enum(‘male‘,‘female‘) not null default ‘male‘ age int unsigned NOT NULL default 20 必须为正值(无符号) 不允许为空 默认是20 3. 是否是key 主键 primary key 外键 foreign key 索引 (index,unique...)
类型一 not null和default
类型二 unique
类型三 primary key
类型四 auto_increment
类型五 foreign key
待续。。。。
以上是关于MySQL(表操作之数据类型和完整约束)的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 之 第二章: 库与表的基本操作; 数据类型; 完整性约束; 外键;