MySQL学习笔记(二)数据类型和运算符

数据类型和运算符

1 基本数据类型的分类

1.1整型和浮点类型、定点类型

1、整型
TINY            1 字节
SMALLTINY       2 字节
MEDIUMTINY      3 字节
INT             4 字节
BIGINT          8 字节

INT(4),4表示显示宽度,跟数据类型的实际取值宽度无关,只是显示的宽度。
如果不写的话,会默认一个能显示有符号数的最小显示范围,如TINY最小-128,会默认显示4位。

2、浮点数类型和定点数类型
浮点数:FLOAT(4字节)、DOUBLE(8字节)
定点数:DECIMAL(M+2)字节
浮点数和定点数都可以用(M,N)来表示,其中M称为精度,表示总共的位数;N为标度,表示小数的位数。

如果用户指定的精度超出精度范围,就会四舍五入处理,并报warning

在对精度要求比较高时(如货币、科学数据等)使用定点类型较好。

 1.2 日期和时间类型

日期和时间数据类型
类型名称日期格式日期范围存储需求
YEARYYYY1901~21551字节
TIMEHH:MM:SS-838:59:593字节
DATEYYYY--MM--DD1000-01-01~9999-12-313字节
DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00~9999-12-31 23:59:598字节
TIMESTAMPYYYY-MM-DD HH:MM:SS

1970-01-01 00:00::01 UTC~ 

2038-01-19 11:14:07 UTC

4字节
1、YEAR
    1)其输入格式为'YYYY'或者 YYYY
    2)若以两位字符串格式插入的话,范围为"00"到"99"."00"到"69"会被自动转换为2000到2069.
"70"到"99"会被转换为"1970"到"1999"."0"和"00"具有相同的效果。超过这个范围会被转换为2000.
    3)若以两位数字表示的YEAR,范围 1~99,与字符串不同的是,0被转换为0000,而不是2000.
    4)存入数字 0,不会报错。存入超过1901~2155的数会报错。
2、TIME
    1)TIME类型不仅可以表示一天的时间,还可以表示两个时间点的时间间隔,因此
小时部分的范围为-838~838.
    2)'D HH:MM:SS', 'HH:MM','D HH:MM','D HH','SS',D表示日,取值范围
0~34,在插入数据库时,被转换为小时保存。格式为"D*24+HH",注意HH要写成双位数。
    3)'HHMMSS'或者HHMMSS格式可以自动理解,1112理解为00:11:12, 11:12理解
为11:12:00,另外,不合法的会被理解为00:00:00
    4)系统当前时间的字段: CURRENT_TIME,NOW()
3、DATE
    1)'YYYY-MM-DD','YYYYMMDD'
    2)'YY-MM-DD','YYMMDD',自动理解YY
    3)YY-MM-DD,YYMMDD
    4)CURRENT_DATE,NOW()
    5)允许不严格的语法,比如98.11.31,只要在数字之间加间隔符都能识别。

4、DATETIME
    1)"YYYY-MM-DD HH:MM:SS","YYYYMMDDHHMMSS"
    2)"YY-MM-DD HH:MM:SS","YYMMDDHHMMSS"
    3)YYYYMMDDHHMMSS,YYMMDDHHMMSS
5、TIMESTAMP
    1)显示格式与DATETIME相同,但是4个字节范围比DATETIME8字节范围小。
    2)UTC世界标准时间,它会自动转换时区。

1.3字符串类型 

 

MySQL中的字符串数据类型
类型名称说明存储需求
CHAR(M)固定长度非二进制字符串M字节,1<=M<=255
VARCHAR(M)变长非二进制L+1字节,L<=M,1<=M<=65535
TINYTEXT L+1字节,L<2^8
TEXT L+2字节,L<2^16
MEDIUMTEXT L+3字节, L<2^24
LONGTEXT L+4字节,L<2^32
ENUM枚举类型,只能有一个枚举字符串值1或两个字节,取决于枚举值的数目(最大65535)
SET字符串对象,可以有0个或多个SET成员1、2、3、4或8个字节,取决于集合策划那个元的数量(最多64)
1、CHAR和VARCHAR类型
    1)CHAR(M)为固定长度字符串,在定义时要指定字符串列长。会把字符串尾部的空格截断。
    2)VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定,而其实际占用的空间范围为字符串实际长度加1或者2,非空时需要1字节来标记,当长度小于255个字节时使用1字节标记字段长度,当长度超过255字节时,使用2字节来标记字段长度。

2、TEXT类型
当保存或查询TEXT的值时,不删除尾部空格。

3、ENUM类型
ENUM是一个字符串对象,其值为创建表时在列规定中枚举的一列值。语法格式:
字段名 ENUM('值1','值2',...'值n')
如果创建的成员中有空格,则其尾部的空格会被自动删除。
ENUM值按照列索引顺序排列,并且空字符串''排在非空字符串之前,默认存在NULL值。
ENUM总有一个默认值,如果将ENUM声明为NULL,则NULL为该列的一个有效值,如果声明为非NULL,默认值为第一个元素。

4、SET类型
列可以从定义的列值中选择多个字符联合插入,如果有重复的值,则自动删除重复的值。

1.4二进制类型 

 

MySQL支持两类字符型数据:文本字符串和二进制字符串
二进制字符串类型包括BIT,BINARY,VARBINARY,TINYBLOB,MEDIUMBLOB,LONGBLOB

BLOG 是二进制字符串,TEXT是非二进制字符串,两者均可存放大容量的信息。BLOB主要存储图片,
音频信息等,而TEXT只能存储纯文本文件。

2 常见运算符

主要总结比较运算符

1、 IS NULL, IS NOT NULL运算符
2、between and 运算符
3、least 运算符
4、greatest 运算符 取最大
5、IN,NOT IN() 运算符,判断是否在in的列表中
6、LIKE 运算符  expr like 匹配条件
    % 匹配多个字符
    _ 匹配一个字符
7、regexp 运算符 expr regexp 匹配条件
    '^' 以这个字符后面的字符开头的字符串
    '$' 以这个字符前面的字符结尾的字符串
    '.' 匹配任意一个单字符
    '[...]' 匹配方括号里的任意字符
    '*' 匹配零个多个在他前面的字符,如 'x*'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值