搜索
 找回密码
 立即注册
发新帖

mariadb教程[78] mariadb数据类型

时间:2020-3-25 16:54 0 608 | 复制链接 |

610

主题

610

帖子

0

积分

网站编辑

Rank: 8Rank: 8

积分
0
本帖最后由 O'Reilly 于 2020-3-25 17:01 编辑

数据类型是定义列中可以存储什么数据以及该数据实际怎样存储的基本规则。
数据类型用于以下目的:
1.数据类型允许限制可存储在列中的数据。例如,数值数据类型列只能接收数值。
2.数据类型允许在内部更有效地存储数据。可以用一种比文本串更简洁的格式存储数值和日期时间值。
3.数据类型允许变换排序顺序。如果所有数据都作为串处理,则1位于10之前,而10又位于2之前(串以字典顺序排序,从左边开始比较,一次一个字符)。作为数值数据类型,数值才能正确排序。
在设计表时,应该特别重视所用的数据类型。使用错误的数据类型可能会严重地影响应用程序的功能和性能。更改包含数据的列不是一件小事(而且这样做可能会导致数据丢失)。

【1】串数据类型
最常用的数据类型是串数据类型。它们存储串,如名字、地址、电话号码、邮政编码等。有两种基本的串类型, 分别为定长串和变长串。
定长串接收长度固定的字符串,其长度是在创建表时指定的。定长列不允许多于指定的字符数目。它们分配的存储空间与指定的一样多。因此,如果串存储到30个字符的名字字段,则存储的是30个字符,CHAR属于定长串类型。
变长串存储可变长度的文本。有些变长数据类型具有最大的定长,而有些则是完全变长的。不管是哪种,只有指定的数据得到保存(额外的数据不保存)TEXT属于变长串类型。
既然变长数据类型这样灵活,为什么还要使用定长数据类型?回答是因为性能。mariadb处理定长列远比处理变长列快得多。此外,mariadb不允许对变长列(或一个列的可变部分)进行索引。这也会极大地影响性能。
串数据类型
捕获.PNG
使用引号。不管使用何种形式的串数据类型,串值都必须括在引号内(通常单引号更好)。
你可能会认为电话号码和邮政编码应该存储在数值字段中(数值字段只存储数值数据),但是,这样做却是不可取的。如果在数值字段中存储邮政编码01234,则保存的将是数值1234,实际上缺失了一位数字。需要遵守的基本规则是,如果数值是计算(求和、平均等)中使用的数值,则应该存储在数值数据类型列中。如果作为字符串(可能只包含数字)使用,则应该保存在串数据类型列中。

【2】数值数据类型
数值数据类型存储数值。mariadb支持多种数值数据类型,每种存储的数值具有不同的取值范围。显然,支持的数值范围越大,所需存储空间越多。此外,有的数值数据类型支持使用十进制小数点(和小数),而有的则只支持整数。
所有数值数据类型(除BIT和BOOLEAN外)都可以有符号或无符号。有符号数值列可以存储正或负的数值,无符号数值列只能存储正数。默认情况为有符号,但如果你知道自己不需要存储负值,可以使用UNSIGNED关键字,这样做将允许你存储两倍大小的值。
捕获.PNG
与串不一样,数值不应该括在引号内。
mariadb中没有专门存储货币的数据类型,一般情况下使用DECIMAL(8,2)

【3】日期和时间数据类型
mariadb使用专门的数据类型来存储日期和时间值
捕获.PNG

【4】二进制数据类型
二进制数据类型可存储任何数据,甚至包括二进制信息,如图像、多媒体、字处理文档。
捕获.PNG
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回顶部