数值型的数据

数值型数据关注的

  • 数据的范围
  • 数据的存储空间
  • 数据展示的位数
  • 数据的精度和浮点数

5.2.1 整形数据类型

  1. Tinyint,smallint,mediumint,int,bigint
  2. 定义整形数据类型的展示宽度:如century INT(4),被展示4个数字的宽度,展示的宽度和范围无关

浮点数数据类型

  1. 包含float和double类型,有整数部分和小数部分。可以明确的指定precision和scale,数据长度和小数长度Float(10,3)

固定点的数据类型

float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)

double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)

decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)

float f = 345.98756f;//结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入。

double d=345.975423578631442d;//结果显示为345.975423578631,只显示15个有效位,对最后一位四舍五入。

注:float和double的相乘操作,数字溢出不会报错,会有精度的损失。

decimal dd=345.545454879…..//可以支持28位,对最后一位四舍五入。

注:当对decimal类型进行操作时,数值会因溢出而报错。

BIT数据类型

如下bit_col1 BIT(4)
bit_col2 BIT(20),代表的值为0 to 2的n次方-1
存储需要是INT((n+7)/8)
# String 数据类型







































Type

Description

Char

Fixed-leght non-binary string

varchar

variable-length non-binary string

TEXT

Variable-length non-binary string

BINARY

FIXED-leght binary string

VARBINARY

variable-length binary string

BLOB

Variable-length binary string

ENUM

Enumeration consisting of a fixed set of legal values

SeT

set consisting of a fixed set of legal values

   1. 如何决定选择二进制或非二进制的字符串
   2. 你需要存储的最大长度
   3. 是否需要使用固定或变换的存储
   4. 如何处理末尾的空格
   5. 独立的值需要Enum或set是有用的

# 支持的字符集
非二进制的字符串有字符集组成,二进制字符串有二进制组成仅仅由他们数值区别
#非二进制字符串有如下的特征:
1. 一个非二进制字符串是字符序列
2. 非二进制的字符串,一个给定字符集可能,多个排序规则,但是一个给定的字符串仅仅只有一个排序规则
3. 多字节的字符串的比较是以字符为单位的,不是字节为单位的
4. 如果大小写不明显,‘ABC’和‘ABc’是相同的,排序的规则也决定了不同音调标记的字符是否相等。结果是非二进制的字符不是音调区别的。例如,‘a’没有音调可等被当做有音调的字符
5. 一个排序规则也可能是二进制的,在这中条件下,排序是基于数值性字符值。大小写注意和音调区别,一个二进制排序规则是每个字符和值可能有多个字节组成。二进制字符串总是基于字节的。
6. mysql> show collation like ‘latin1%’
-> ;
+——————-+———+—-+———+———-+———+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+——————-+———+—-+———+———-+———+
| latin1_german1_ci | latin1 | 5 | | Yes | 1 |
| latin1_swedish_ci | latin1 | 8 | Yes | Yes | 1 |
| latin1_danish_ci | latin1 | 15 | | Yes | 1 |
| latin1_german2_ci | latin1 | 31 | | Yes | 2 |
| latin1_bin | latin1 | 47 | | Yes | 1 |
| latin1_general_ci | latin1 | 48 | | Yes | 1 |
| latin1_general_cs | latin1 | 49 | | Yes | 1 |
| latin1_spanish_ci | latin1 | 94 | | Yes | 1 |
+——————-+———+—-+———+———-+—–
—ci _cs or _bin,指定排序规则是大小写不注意,大小写注意或者二进制

二进制的字符串

  1. 被当做字节值的序列
  2. 二进制字符串包含字节,不是字符,二进制是大小写注意的因为大小写有不同的数值字节值的。不同的音调有不同的字节值。
  3. mysql> select upper(‘AaBb’), upper(binary ‘AaBb’);
    +—————+———————-+
    | upper(‘AaBb’) | upper(binary ‘AaBb’) |
    +—————+———————-+
    | AABB | AaBb |
    +—————+———————-+
    非二进制的字符串表示文本,二进制的表示图片和压缩数据
    非二进制的char,varchar和text。二进制是binary,varbinary和blob
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值