数据类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
- 数值类型:包括整数类型
TINYINT
、SMALLINT
、MEDIUMINT
、INT
、BIGINT
、浮点小数数据类型FLOAT
和DOUBLE
、定点小数类型DECIMAL
。 - 日期/时间类型:
YEAR
、TIME
、DATE
、DATETIME
和TIMESTAMP
。 - 字符串类型:
CHAR
、VARCHAR
、BINARY
、VARBINARY
、BLOB
、TEXT
、ENUM
、SET
。
数值类型:
浮点类型和定点类型都可以用(M,N)来表示,其中M称为精度,表示总共的位数;N称为标度,表示小数的位数。
Float和Double在不指定精度时,默认按照实际的精度(由计算机硬件和操作系统决定),Decimal如不指定精度默认为(10,0)。
浮点数相对于定点数的优点是在长度一定的情况下,浮点数能表示更大的数据范围,但在对精度要求比较高时(如货币,科学数据),使用Decimal比较好。
日期与时间类型:
字符串类型:
char和varchar:
- char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
- char(n) 固定长度,char(n)不管是存入几个字符,都将占用n个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。
- char类型的字符串检索速度要比varchar类型的快。
数据类型选择
算数运算符
mysql中主要有4类运算符:算术运算符、比较运算符、逻辑运算符和位操作运算符。
算术运算符
比较运算符
逻辑运算符
位运算符
运算符优先级