暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库系列教程二:数据类型,主外键

小白懂编程 2015-04-27
218

数据库字段类型
数据表中的字段也需要类型限制,相应类型的字段只能存储对应类型的值,mysql也提供了一系列的数据类型。

INT 类型
在 MySQL 中支持的 5 个主要整数类型是 TINYINT,SMALLINT,MEDIUMINT,INT 和 BIGINT。这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。

FLOAT、DOUBLE 和 DECIMAL 类型
MySQL 支持的三个浮点类型是 FLOAT、DOUBLE 和 DECIMAL 类型。FLOAT 数值类型用于表示单精度浮点数值,而 DOUBLE 数值类型用于表示双精度浮点数值。

DECIMAL 数据类型用于精度要求非常高的计算中,这种类型允许指定数值的精度和计数方法作为选择参数。精度在这里指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的位数。比如语句 DECIMAL(7,3) 规定了存储的值不会超过 7 位数字,并且小数点后不超过 3 位。

常用字符串类型

类型 大小 用途
CHAR 固定定度长字符串
VARCHAR 变长字符串
BLOB 二进制形式的长文本数据
TEXT 长文本数据


CHAR 和 VARCHAR 类型
CHAR 类型用于定长字符串,并且必须在圆括号内用一个大小修饰符来定义。这个大小修饰符的范围从 0-255。比指定长度大的值将被截短,而比指定长度小的值将会用空格作填补。

CHAR 类型的一个变体是 VARCHAR 类型。它是一种可变长度的字符串类型,并且也必须带有一个表示最大长度的数字。
因为 VARCHAR 类型可以根据实际内容动态改变存储值的长度,所以在不能确定字段需要多少字符时使用 VARCHAR 类型可以大大地节约磁盘空间、提高存储效率。


TEXT 和 BLOB 类型
对于字段长度要求很大的情况下,MySQL 提供了 TEXT 和 BLOB 两种类型。这些大型的数据用于存储文本块或图像、声音文件等二进制数据类型。

TEXT 和 BLOB 类型在分类和比较上存在区别。BLOB 类型区分大小写,而 TEXT 不区分大小写。大小修饰符不用于各种 BLOB 和 TEXT 类型。比指定类型支持的最大范围大的值将被自动截短。

日期和时间类型
在处理日期和时间类型的值时,MySQL 带有 5 个不同的数据类型可供选择。它们可以被分成简单的日期、时间类型,和混合日期、时间类型。根据要求的精度,子类型在每个分类型中都可以使用,并且 MySQL 带有内置功能可以把多样化的输入格式变为一个标准格式。

DATE YYYY-MM-DD
TIME HH:MM:SS
YEAR YYYY 年份值
DATETIME YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP YYYYMMDDHHMMSS 混合日期和时间值,时间戳

主键
一个数据表通常存储很多行记录,有时为了保证数据的正确性,我们希望数据表中的每条记录是唯一的,不能有重复记录,比如用户注册信息表中,我们希望用户名不能重复,人口信息中身份证不能重复等,这时我们为了保证不能重复的字段在数据表中唯一,可以通过将字段设置为主键来达到目的。主键就是用来约束字段在数据表中的唯一作用。主键通常只有一个字段,但也可以在多个字段上设置成主键构成复合主键。


外键
数据库中的数据表通常是有关联的。比如有班级表A,学生表B,学生表中有一个字段class,表示这个学生所在的班级,这个值一定只能是班级表中的,否则会造成学生对不上班级的情况。这是我们可以在学生表中的class字段上设置外键,让这个外键指向班级表中的班级字段,这样,在学生表中添加记录时,班级字段只能是班级表中的值,否则不能添加数据,这样就保证了数据的正确性。

在Foreign Keys选项卡中添加外键。name表示外键名,Fields表示要添加外键的字段(学生标准的班级字段),Referenced DataBase表示所在数据库,Reference Tables表示外键引用所在的表(班级表),Referenced Fields表示引用的表中的字段(班级表中的班级字段)





关注微信公众号 javajidi_com,可以实时获取有价值的技术文章推送。
"Java基地"交流群:245130488


文章转载自小白懂编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论