1、语言结构
文字值
1.1 字符串、数值型、日期、16进制、布尔值、位域、NULL值
字符串:
字符串指用单引号(‘'’)或双引号(‘"’)引用起来的字符序列。
转义字符
数值型:
整数用一系列阿拉伯数字表示,浮点数使用.作为十进制间隔符,以上两种类型的数值均可以在前面加一个-来表示负值。
日期类型:
- 作为字母
'YYYY-MM-DD'
或'YY-MM-DD'
格式的字符串。 - 作为字母
'YYYY-MM-DD HH:MM:SS'
或'YY-MM-DD HH:MM:SS'
格式的字符串。 - 作为字符串中没有分隔符
'YYYYMMDD'
或'YYMMDD'
格式的字符串,前提是该字符串作为日期有意义。 - 作为字符串中没有分隔符
'YYYYMMDDHHMMSS'
或'YYMMDDHHMMSS'
格式的字符串,前提是该字符串作为日期有意义。 - 作为数字
YYYYMMDD
或YYMMDD
格式的数字,只要该数字作为日期有意义。 - 作为数字
YYYYMMDDHHMMSS
或YYMMDDHHMMSS
格式的数字,只要该数字作为日期有意义。
16进制:
- 十六进制值的默认类型是字符串。如果想要确保该值能作为数字处理,可以使用CAST(...AS UNSIGNED)
- 用HEX()函数将一个字符串或数字转换为十六进制格式的字符串
SELECT 0x41,CAST(0x41 AS UNSIGNED);
'A',65
-------------------------------------------
SELECT HEX('cat');
'636174'
SELECT 0x636174;
'cat'
布尔值:常量TRUE等于1,常量FALSE等于0。
位域:可以使用b'value'符号表达位域型。
NULL值:NULL值表示“没有数据”。
# 位域
CREATE TABLE t (b BIT(8));
INSERT INTO t SET b = b'11111111';
INSERT INTO t SET b = b'1010';
1.2 标识符
数据库、表、索引、列和别名是识别符。
- 数据库,表,列不允许包括/