MySQL基础学习_第007节课_MySQL数据类型

在说MySQL数据类型之前,先说明一个重要的点:

MySQL中的SQL语句是不区分大小写的,比如查询关键字:SELECT和select都是可以的;

但是表名和数据库名是严格区分大小写的,变量名也是严格区分大小写的

1、命名规范

(1)库名、表名、字段名必须使用小写字母,并采用下划线分割

a)MySQL有配置参数lower_case_table_names,不可动态更改,Linux系统默认为0,即库表名以实际情况存储,大小写敏感;

          如果是1,以小写存储,大小写不敏感;

          如果是2,以实际情况存储,但以小写比较。

b)如果大小写混合使用,可能存在abc、Abc、ABC等多个表共存,容易导致混乱;

c)字段名显示区分大小写,但实际使⽤用不区分,即不可以建立两个名字一样但大小写不一样的字段;

d)为了统一规范, 库名、表名、字段名使用小写字母。

(2)库名、表名、字段名禁止超过32个字符

库名、表名、字段名支持最多64个字符,但为了统一规范、易于辨识以及减少传输量,禁止超过32个字符

(3)库名、表名、字段名禁止使用MySQL保留字

当库名、表名、字段名等属性含有保留字时,SQL语句必须用反引号引用属性名称,这将使得SQL语句书写、SHELL脚本中变量的转义等变得⾮非常复杂

2、数值类型

(1)MySQL支持所有标准的SQL数值数据类型,这些类型包括严格数值数据类型(integer、smallint、decimal和numeric),以及近似数值数据类型(float、real、double precision);

(2)关键字int是integer的同义词,关键字dec是decimal的同义词;

(3)bit数据类型保存字段值,并且支持MyISAM、MEMORY、InnoDB、BDB表;

(4)作为SQL标准的扩展,MySQL也支持证书类型tinyint、mediumint、bigint。

类型

大小

范围(有符号)

范围(无符号)

用途

tinyint

1byte

(-128,127)

(0,255)

小整数值

smallint

2bytes

(-32768,32767)

(0,65535)

大整数值

mediumint

3bytes

(-8388 608,8388 607)

(0,16777215)

大整数值

int或integer

4bytes

(-2147483648,2147483 647)

(0,4294967295)

大整数值

bigint

8bytes

(-9223372036854775808,9 223372036854775807)

(0,18446744073

709551615)

极大整数值

float

4bytes

(-3.402823466E+38,-1.175494 351E-38),0,(1.175494351 E-38,3.402823466351E+38)

0,(1.175494351 E-38,3.402823

466 E+38)

浮点数值

double

8bytes

(-1.7976931348623157E+308,

-2.2250738585072014 E-308),0,(2.2250738585072014

E-308,1.7976931348623157 E+308)

0,(2.225073858 5072014E-308,

1.797693134862

3157 E+308)

浮点数值

decimal

decimal(M,D),如果M>D,为M+2;

否则为D+2

依赖于M和D的值

依赖于M

和D的值

小数值

 

3、日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR;

每个时间类型又一个有效值范围和一个“零”值,当指定不合法的MySQL不能表示的值时,则使用“零”值。

类型      大小(bytes) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8

1000-01-01 00:00:00/

9999-12-31 23:59:59

YYYY-MM-DD
HH:MM:SS
混合日期和时间值
TIMESTAMP 4

1970-01-01 00:00:00/2038

结束时间是第2147483647秒,北京时间2038-1-19 11:14:07,格林尼治时间2038年1月19日凌晨03:14:07

YYYYMMDD
HHMMSS
混合日期和时间值

3、字符串类型

字符串类型主要指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、SE

类型 大小 用途
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据

猜你喜欢

转载自blog.csdn.net/weixin_43184774/article/details/115076462