数据类型
数据表由多列字段组成,每一个字段指定了不同的数据类型,指定了数据类型之后,也就确定了插入的数据内容
数据类型分为数值数据类型,日期/时间类型和字符串类型
数值数据类型分为整数型,浮点型,定点类型
整数型:
插入方式;
无符号,5个宽度(5) unsigned;(unsigned为整数)
alter table 表名 modify 列名 tinyint(5) unsigned;
alter table 表名 modify 列名 smallint(5) unsigned;
alter table 表名 modify 列名 mediumint(5) unsigned;
alter table 表名 modify 列名 int(5) unsigned;
alter table 表名 modify 列名 bigint(5) unsigned;
浮点类型:
插入方式:
alter table 表名 modify 列名 float(5) unsigned;
alter table 表名 modify 列名 double(5) unsigned;
定点类型:
插入方式:
alter table 表名 modify 列名 decimal(5,2) unsigned
日期/时间类型:
MySQL有多种表示日期的数据类型,每一个类型都有合法的取值范围,当指定确实不合法的值时系统将“零”值插入到数据库中
插入方式
年:alter table 表名 modify 列名 year ;
时间:alter table 表名 modify 列名 time ;
日期:alter table 表名 modify 列名 date ;
日期时间:alter table 表名 modify 列名 datetime ;
时间戳:alter table 表名 modify 列名 timestamp ;
字符窜类型:
字符串类型是用来存储字符串数据,还可存储如图片声音的二进制数据。MySQL支持两种字符串:文本字符串和二进制字符串
文本字符串:
插入方式:
字符串:alter table 表名 modify 列名 char;
可变长字符串:alter table 表名 modify 列名 varchar(5);
枚举:alter table 表名 modify 列名 enum(男,女);
集合:alter table 表名 modify 列名 set(1,2,3,4,5);
二进制字符串类型:
MySQL算数运算符:
运算符分为算数运算符,位运算符,逻辑运算符
算数运算符:
+:加法运算
-:减法运算
*:乘法运算
/:除法运算,返回商
%:求余运算,返回余数
1、等于运算符 ( = )
等于运算符用来判断数字、字符串和表达式是否相等,如果相等,则返回值为 1 ,否则返回值为 0 ,如果有一 个值是 NULL ,则比较结果为 NULL
2、安全等于运算符 ( <=> )
这个操作符和等于运算符(=)的作用一致,只不过多了一个功能,就是可以判断 NULL 值
3、不等于运算符 ( <> 或 != )
不等于运算符用于判断数字、字符串、表达式是否不相等,如果不相等则返回 1,否则返回 0 ,但是不能判断 NULL 值
4、IS NULL 、ISNULL 、IS NOT NULL
- IS NULL 和 ISNULL 检验一个值是否为 NULL ,如果为 NULL ,返回值为 1,否则返回值为 0
- IS NOT NULL 检验一个值是否不为 NULL ,如果不为 NULL ,返回值为 1,否则返回值为 0
5、BETWEEN AND 用于判断一个值是否落在两个值之间
6、LEAST 、GREATEST - LEAST :当有两个或多个参数时,返回最小值,如果有一个值是 NULL ,则返回结果为 NULL
- GREATEST :当有两个或多个参数时,返回最大值,如果有一个值是 NULL ,则返回结果为 NULL
7、IN 、NOT IN - IN :判断一个值是否是 IN 列表中的任意一个值
- NOT IN :判断一个值是否不是 IN 列表中的任意一个值
8、LIKE 1. LIKE 运算符用来匹配字符串,如果匹配则返回
1,如果不匹配则返回 0 - LIKE 使用两种通配符:’%’ 用于匹配任何数目的字符,包括零字符 ; ‘_’ 只能匹配一个字
9、REGEXP - REGEXP 运算符用来匹配字符串,如果匹配则返回 1,如果不匹配则返回 0
- REGEXP 使用几种通配符:
‘^’ 用于匹配以什么开头的字符串
‘$’ 用于匹配以什么结尾的字符串
‘.’ 用于匹配任何一个单字符串
‘[…]’ 用于匹配在方括号内的任何字符
‘*’ 用于匹配零个或多个在它前面的字符
逻辑运算符
1、逻辑非 ( NOT 或 !)
- 当操作数为 0 时,所得值为 1
- 当操作数为非 0 时,所得值为 0
- 当操作数为 NULL 时,所得值为 NULL
2、逻辑与 ( AND 或 && ) - 当所有操作数均为非零值、并且不为 NULL 时,所得值为 1
- 当一个或多个操作数为 0 时,所得值为 0
- 其余情况所得值为 NULL
3、逻辑或 ( OR 或 || ) - 当两个操作数均为非 NULL 值,且任意一个操作数为非零值时,结果为 1 ,否则为 0
- 当有一个操作数为 NULL ,且另一个操作数为非零值时,则结果为 1 ,否则结果为 NULL
- 当两个操作数均为 NULL 时,则所得结果为 NULL
4、逻辑异或 ( XOR ) - a XOR b 的计算等同于 ( a AND (NOT b) ) 或 ( (NOT a) AND b )
- 当任意一个操作数为 NULL 时,返回值为 NULL
- 对于非 NULL 的操作数,如果两个操作数都是非 0 值或者都是 0 值,则返回结果为 0
- 如果一个为 0 值,另一个为非 0 值,返回结果为 1
位运算符
1、 位或运算符 ( | ) :对应的二进制位有一个或两个为 1 ,则该位的运算结果为 1 ,否则为 0
2、 位与运算符 ( & ) :对应的二进制位都为 1 ,则该位的运算结果为 1 ,否则为 0
3、 位异或运算符 ( ^ ) :对应的二进制位不相同时,结果为 1 ,否则为 0
4、 位左移运算符 ( << ) :使指定的二进制位都左移指定的位数,左移指定位之后,左边高位的数值将被移出 并丢弃,右边低位空出的位置用 0 补齐
5、 位右移运算符 ( >> ) :使指定的二进制位都右移指定的位数,右移指定位之后,右边低位的数值将被移出 并丢弃,左边高位空出的职位用 0 补齐
6、 位取反运算符 ( ~ ) :将对应的二进制数逐位反转,即 1 取反后变 0 , 0 取反后变 1
运算符优先级: