6.1.1 常量
MySQL中的常量主要分为数值型常量、字符串常量、日期时间常量、布尔型常量。
1.数值型常量
MySQL支持整型和浮点型的数值型常量。
整型常量即不带小数点的十进制常量,如10,+35,100,-220等。
浮点型常量由一个阿拉伯数字序列、一个小数点和另一个阿拉伯数字序列组成,两个阿拉伯数字序列可以分别为空,但不能同时为空,如3.14,.14,0.,0.5E2。
MySQL支持十六进制数值,以十六进制形式表示的整数由“0x”后跟一个或多个十六进制数字(由0~9及a~f)组成。如0x0a为十进制的10,而0xffff为十进制的65535。十六进制数据不区分大小写,即0x0a和0x0A都是合法数据,而0X0a和0XA为不合法数据。
【例6.1】执行如下语句,分别输出整型常量3254、浮点型常量3.1415926及十六制常量0xffff。
注意,对于十六进制数据,在数字上下文,表现类似一个64位精度的整数;在字符串上下文,表现为一个二进制字符串,每一对十六进制数字被变换为一个字符。
2.字符串常量
字符串是指用单引号或双引号括起来的字符序列,如‘hello world’、“你好世界”,每个汉字字符使用2个字节存储,而每个ASCII码字符用一个字节存储。
在字符串中不仅可以使用普通的字符,也可以使用特殊字符如换行、单引号、反斜线等,但如果要使用特殊字符,需要使用转义字符,每个特殊字符以一个反斜杠(“\”)开始,指出后面的字符使用转义字符来解释,而不是普通字符,参看“表4-5 MySQL中的转义字符”,示例如下:
【例6.2】输出带引号的字符串。
3.日期时间常量
日期时间常量由单引号将表示日期时间的字符串括起来构成。日期型常量包括年、月、日,数据类型为date,表示为“1900-05-20”这样的值。时间型常量包括小时数、分钟数、秒数及微秒数,数据类型为time,表示为“13:20:42.00012”这样的值。MySQL还支持日期/时间的组合,数据类型为datetime或timestamp,如:“1999-06-18 13:20”。datetime和timestamp的区别在于:datetime的年份在1000~9999之间,而timestamp的年份在1970~2037之间,而且在插入微秒的日期时间时将微秒忽略。timestamp还支持时区,即在不同时区转换为相应的时间。
需要特别注意的是,MySQL是按“年-月-日”的顺序表示日期的,中间的间隔符“-”也可以使用如“\”或“%”等特殊符号。
4.布尔型常量
布尔值只包含两个值:true和false。false的数字值为“0”,true的数字值为“1”。
【例6.3】获取布尔常量true和false的值。