MySQL数据类型介绍
支持多种数据类型 ,主要有数值类型,日期/时间类型,字符串类型。
整数类型
数值型的数据类型主要用来存储数字 。主要的整数类型有TINYINT(很小的整数 --1字节),SMALLINT(小的整数 – 2字节 ),MEDIUMINT( 中等大小的整数-- 3字节 ),INT,BIGINT(大整数–8字节)。
PS:
INT(11)括号里的11指的是显示宽度,即显示的数值中数字的个数
eg.
create table tmp1(x TINYINT, y SMALLINT, Z MEDIUMINT);
浮点数和定点数类型
浮点类型:
单精度浮点类型(FLOAT --4字节)和双精度浮点类型(DOUBLE --8字节)
定点类型:
DECIMAL(M,D) M+2 字节
其中浮点和定点类型都可以 用(M,N)来表示,其中M表示精度(总共的位数),N称为标度(表示小数位数 )
eg.
create table tmp2( x float(5,1),y double(5,1),z decimal(5,1));
日期与时间类型
日期的数据类型:
DATETIME,DATE,TIMESTAMP,TIME,YEAR。当用户指定不合法的值是,系统将0插入到数据库中。
YEAR
单字节类型,格式 如下:
1.以四位字符串或四位数字格式表示YEAR,范围‘1901–2155’,格式为‘2010’或2010
2.以二位字符串格式表示YEAR,范围‘00’–‘99’
3.以二位数字表示YEAR,范围为1–99
eg’
create table tmp3(y year)
insert into tmp3 values(2010),(‘2010’);
select * from tmp3
TIME
用于只需要时间信息的值,存储时需要3个字节,格式为:
‘HH:MM:SS’分别表示小时,分钟 ,秒
取值范围:-838:59:59----838:59:59
具体格式:
1.‘D HH:MM:SS’格式的字符串,D表示日,可以取0-34的值,在插入数据库时 ,D被转换为小时存储
2.‘HHMMSS’没有间隔的字符串或者HHMMSS格式的数值,假定是有意义的时间,则被理解为10:11:12
eg.
PS:
删除数据库中的所有数据指令
delete from 数据表名;
DATE
用于仅需要日期值时 ,没有时间部分,存储时 需要三个字节。格式为:
‘YYYY-MM-DD’,具体赋值格式如下:
1.以‘YYYY-MM-DD’或‘YYYYMMDD’字符串表示的格式,范围为:
‘1000-01-01’—‘9999-12-3’
2.以‘YY-MM-DD’或‘YYMMDD’,具体情况与前面的YEAR一样
DATETIME
同时需要包含日期和时间信息,存储需要8个字节。将前面的DATE和TIME格式结合在一起即可。
文本字符串和二进制类型
MySQL支持两种字符串类型。
分别是文本字符串和二进制字符串。
主要有CHAR,VARCHAR,TEXT,ENUM,SET,yuc语言类似,不多加介绍。
二进制字符串类型主要有:BIT,BINARY,VARBINARY,TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB,具体细节在这也不多加介绍。
常见运算符
算数运算符
主要包括+ - * / %
比较运算符
主要包括> < = != >= <=以及IN,IS NULL, BETWEEN AND,LEAST,LIKE,REGEXP,GREATEST.
其中,=不能判断NULL是否相等,需要使用<=>
between and查看某数是否在某区间内
least是返回参数的最小值
greatest返回最大值
in和not in,判断参数是否在列表里
like满足匹配条件,则返回1,其中%可以匹配任何数目的字符,甚至包括零字符
而_只能匹配一个字符
regexp用来匹配字符串,满足匹配条件返回1,有以下通配符:
1.‘^'匹配医改字符后面的字符开头的字符串
2.’$‘匹配一该字符后面的字符结尾的字符串
3.’.‘匹配任何一个单字符
4.“[…]”匹配方括号内的任何字符
5.’*'匹配0个或多个在他前面的字符
逻辑运算符
逻辑运算符的求值结果均为1,0;这类运算符有逻辑非(NOT或者!),逻辑与(AND或者&&),逻辑或(OR或者||),逻辑异或(XOR)
位操作运算符
位操作运算符参与运算的操作数按二进制位进行运算。包括位与(&),位或(|),位非(~),位异或(^),左移(<<),右移(>>).
位运算符
按位或,或完都是1111。
右移