@[TOC](数据表的基本操作等)
# 一、MySQL数据类型
一般常用的数据类型有
①数值类型 ②日期和时间类型 ③字符类型
## 数值类型
### 数值类型——整形类型
MySQL的整形类型有:tinyint、smallint、mediumint、int、bigint。
类型名称 | 说明 | 储存需求 |
tinyint | 很小的整数 | 1个字节 |
smallint | 小的整数 | 2个字节 |
mediumint | 中等大小的整数 | 3个字节 |
int | 普通大小的整数 | 4个字节 |
bigint | 大整数 | 8个字节 |
create table tmp
(
x tinyint,
y smallint,
z mediumint,
m int,
n bigint
);
### 浮点类型与定点类型
MySQL中浮点型有两种分别是:单精度float 和双精度double
定点类型有decimal。
类型名称 | 说明 | 存储需求 |
float | 单精度浮点型 | 4个字节 |
double | 双精度浮点型 | 8个字节 |
decimal(M,D) | 压缩的“严格定点数” | M+2个字节 |
create table tmp2
(
x float(5,1),
y double(5,1),
z decimal(5,1)
);
此处赋值测试浮点效果
### 数值类型——日期和时间类型
日期和时间类型有:DATATIME、DATA、TIMESTAMP、TIME、YEAR
类型 | 描述 | 储存要求 | 范围 |
DATATIME | 格式为YYYY-MM-DD HH:MM:SS | 8 | 1000-01-01 00:00:00~9999-12-31 23:59:59 |
DATA | 格式为YYYY-MM-DD | 3 | 1000-01-01~9999-12-31 |
TIMESTAMP | 格式为YYYY-MM-DD HH:MM:SS | 4 | 1970-01-01 00:00:01 UTC~2038-01-19 03:14:07 |
TIME | HH:MM:SS | 3 | -838:59:59~838:59:59 |
YEAR | YYYY | 1 | 1901-2155
|
Year类型表示年,可以使用各种格式指定year的值
以4位字符串或者4位数字格式表示year,取值范围’1901’~‘2155’,输入格式为‘YYYY’或者YYYY,例如:输入’2010’或2010
以2位字符串格式表示的year,范围’00‘~’99‘。’00‘~’69‘和’70‘~’99‘范围的值分别被转换成2000-2069和1970-1999范围的year的值。
以2位数字表示的year,范围1~99。1~69和70~99范围的值分别被转换为2001~2069和1970~1999范围的year
### 数值类型——字符类型
类型 | 描述 |
CHAR(M) | 存储固定长度字符串 |
VARCHAR(M) | 存储可变长度字符串 |
ENUM | 枚举类型 |
SET | 集合类型(集合中最多有64个成员) |
BLOB | 存储二进制大对象 |
TEXT | 存储文本大对象 |
- CHAR和VARCHAR类型
CHAR(M)为固定长度字符串,在定义时指定字符串列长。在保存时在右侧填充空格以达到指定的长度。M表示列长度,M的范围是0~255个字符。 VARCHAR(M)是长度可变的字符串,M表示最大列长度。M的范围是0~65535。
## 如何选择数据类型
如果不需要小数部分,使用整数类型,否则使用float,double
如果经常用于计算,精度要求高的用decimal
如果日期存储范围大时使用datatime
通常采用varchar类型,如果要提供处理速度,则采用char类型
# 二、MySQL运算符
## MySQL运算符有:算数运算符,比较运算符,逻辑运算符,位运算符
### 算数运算符
算数运算符分别有+,-,*,/,%
运算符 | 作用 |
+ | 加法运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算,如果除数为0,返回null |
% | 求余运算 |
### 比较运算符
运算符 | 作用 |
---|---|
= | 等于 |
<=> | 安全的等于 |
<>(!=) | 不等于 |
<= | 小于或等于 |
>= | 大于或等于 |
> | 大于 |
< | 小于 |
运算符 | 作用 |
---|---|
IS NULL | 判断一个值是否为NULL |
IS NOT NULL | 判断一个值是否不为NULL |
LEAST | 有2个或多个参数时,返回最小值 |
GREATEST | 有2个或多个参数时,返回最大值 |
BETWEEN AND | 判断一个值是否在两个值之间 |
IN | 判断一个值是IN列中的任意一个值 |
NOT IN | 判断一个值不是IN列中的任意一个值 |
LIKE | 通配符匹配(%、_) |
REGEXP | 正则表达式匹配(^、$、.、[….]、*) |
### 逻辑运算符
运算符 | 作用 |
---|---|
NOT或者! | 逻辑非 |
AND或者&& | 逻辑与 |
OR或者|| | 逻辑或 |
XOR | 逻辑异或 |
### 位运算符
运算符 | 作用 |
---|---|
| | 位或 |
& | 位与 |
^ | 位异或 |
~ | 位取反 |
<< | 位左移 |
>> | 位右移 |