数据类型 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 不限于此。 |
|