数据类型 2019/2/7

1.常量

1.1十六进制值:-默认字符串:

mysql> SELECT x'4D7953514C';#'MySQL'
mysql> SELECT 0xa+0;       #10 作为数字用CAST(...AS UNSIGNED):mysql> SELECT 0x41,CAST(0x41 AS UNSIGNED);#65#A HEX()函数将字符串或数字转换为十六进制格式字符串:mysql> SELECT HEX('cat');#'636174'mysql> SELECT 0x636174;#'cat' 
1.2. 布尔值:常量TRUE等于1,常量FALSE等于0。常量名可以写成大写或小写

mysql> SELECT TRUE,true,FALSE,false;
       -> 1,1,0,0 
1.3. 位字段值:b'value'符号写位字段值:

mysql> CREATE TABLE t (b BIT(8));

mysql> INSERT INTO t SET b = b'11101101';


1.4. NULL值:


NULL值表示“没有数据”大小写。null用序列\n表示
1.5字符串:

字符串指用单引号或双引号引起来的字符序列。SQL服务器模式启用NSI_QUOTES用单引号引用字符串。
用双引号引用识别符。字符串可以有一个可选字符集引介词和COLLATE子句:

[_charset_name]'string' [COLLATE collation_name]SELECT _latin1'string'; 
SELECT _latin1'string' COLLATE latin1_danish_ci; 

转义字符:

\0 ASCII 0(NUL)字符;\'单引号(‘'’);\"双引号(‘"’);\b    退格符;\n换行符;\r回车符;
\t tab字符;\\ 反斜线(‘\’)字符;\% ‘%’字符;\_    ‘_’字符;\Z    ASCII 26(控制(Ctrl)-Z),该字符可以编码为‘\Z’ 

字符串列内插入二进制数据(如BLOB),必须通过转义序列表示下面的字符:

NUL ,反斜线,单引号,双引号 

实例:字符串中包括引号

mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello';
             | hello | "hello" | ""hello"" | hel'lo | 'hello |

mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello";
             | hello | 'hello' | ''hello'' | hel"lo | "hello |  


2.数据类型:

分类

类型

字节

说明

备注

用途

整数

TINYINT

1

(-128,127)

 

最小整数

整数

BIT

1

(-128,127)

 

最小整数

整数

BOOL

1

(-128,127)

值0视为false非0值为真

最小整数

整数

SMALLINT

2

(-32 768,32 767)

 

小整数值

整数

MEDIUMINT

3

(-8 388 608,8 388 607)

 

中整数值

整数

INT

4

(-2 147 483 648,2 147 483 647)

 

标准整数

整数

BIGINT

8

(+-9,223,372,036,854,775,807)

 

大整数值

整数

FLOAT

4

 +-3.402 823 466e+38

 

单精度

整数

DOUBLE

8

(+-1.797 693 134 862 315 7 E+308,

 

双精度

整数

 

 

+-2.225 073 858 507 201 4 E-308)

 

 

整数

DECIMAL

可变

对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2

精确值

一般整数

日期

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/1/1  0:00:00-2038-1-19 03:14:07

YYYYMMDD HHMMSS

时间戳

字符

CHAR

255

char(m)[binary|ascii|unicode]

 

定长字符串

字符

VARCHAR

255

char,varchar在存储或检索过程中不进行大小写转换

 

变长字符串

字符

TINYBLOB

255

utf8一个汉字3字节GBK2字节

变长

二进制字符串

字符

TINYTEXT

255

 

变长

短文本字符串

字符

BLOB

65535

 

变长

二进制文本

字符

TEXT

65535

 

变长

文本数据

字符

MEDIUMBLOB

2^24-1

 

变长

二进制中文本

字符

MEDIUMTEXT

2^24-1

 

变长

中文本

字符

LONGBLOB

2^32-1

 

变长

二进制大文本

字符

LONGTEXT

2^32-1

 

变长

大文本

 

 

 

 

 

 

说明:char(n) 若字符数小于n以空格补其后,查询时再去掉。char字符串末尾不能有空格,varchar 不限于此。