Mysql第五章小结--数据类型和运算符
程序员文章站
2022-07-04 19:18:40
...
目录
- Mysql数据类型介绍
- 如何选择数据类型
- 常见运算符介绍
- 综合案例之运算符的总结
Mysql数据类型介绍
数据类型主要有下面几种
整数类型
整数数据类型主要有一下几种:
不同的数据类型取值范围如下:
注意INT(num)中的数和取值范围无关
浮点数类型和定点数类型
注意浮点数和定点数的使用场合:
时间和日期类型
Year
0表示0000,‘0’和‘00’表示2000,‘78’和78表示1978,‘68’和68表示2068
Time
create table tmp4(t Time);
delete from tmp4;
insert into tmp4 values('10:05:05'),('23:23'),('2 10:10'),('3 02'),('10'),(now()),(current_time);
效果
Date
create table tmp5(d Date);
insert into tmp5 values('1998-09-01'),('19980902'),('980903'),(19980904),(980905),(100906),(000907),(current_date);
效果
DateTime
create table tmp6(dt DateTime);
insert into tmp6 values('1998-08-08 08:08:08'),('19980809080808'),('98-08-08 08:08:08'),('980808080808'),(19980808080808),(980808080808);
效果
TimeStamp
TimeStamp把时区修改之后查询结果就会不同,但是DateTime不会
文本字符串类型
char和varchar类型
char数据类型长度不可变,varchar长度可变
create table tmp8(ch char(4),vch varchar(4));
insert into tmp8 values('ab ','ab ');
select concat('(',ch,')'),concat('(',vch,')') from tmp8;
看效果vch中的空格没有被截取
Text类型
Enum类型
create table tmp9(enm Enum('first','second','third'));
insert into tmp9 values('first'),('second'),('third'),(null);
select enm,enm+0 from tmp9;
再看一个实例
create table tmp10(soc int ,level enum('excellent','good','bad'));
insert into tmp10 values(70,'good'),(90,1),(75,2),(50,3); #'excellent','good','bad'-->对应 1,2,3
select soc,level,level+0 from tmp10;
insert into tmp10 values(100,4); #没有4这个选项
效果
Set类型
#自动排序去重
create table tmp11(s set('a','b','c','d')); #只能插入a,b,c,d这四个值
insert into tmp11 values('a'),('a,b,a'),('c,a,d');
select *from tmp11;
效果
二进制字符串类型
Bit类型
保存的是数的二进制表示
#bit
create table tmp12(b bit(4));
insert into tmp12 values(2),(9),(15);
insert into tmp12 values(16);#报错,只能存到0-15
select b,b+0 from tmp12;
效果
Binary和varBinary
#binary和varbinary
create table tmp13(b binary(3),vb varbinary(30));
insert into tmp13 values(5,5);
select length(b),length(vb) from tmp13;
效果如图
Blob类型
如何选择数据类型
常见运算符介绍
注意一下比较运算符
注意两个相等运算符的微小差异
正则表达式也是很重要的
看一个例子
select 'ssky' regexp '^s','ssky' regexp 'y$', 'ssky' regexp '.sky', 'ssky' regexp '[ab]';
效果
逻辑运算符
位运算
这个和别的语言里面差不多,不细说
运算符的优先级
综合案例-运算符的使用
create table tmp15(note varchar(100),price int);
insert into tmp15 values("Thisisgood",50);
#算术运算符
select price,price+10,price-10,price*2,price/2,price%3 from tmp15;
#比较运算符
select price,price>10,price<10,price != 10,price = 10,price <=>10,price <>10 from tmp15;
select price,price between 30 and 80,greatest(price,70,30),price in(10,20,50,35) from tmp15;
select note,note is null,note like 't%',note regexp '$y',note regexp '[gm]' from tmp15;
select price,price&2,price|4, ~price from tmp15;
select price,price<<2,price>>2 from tmp15;
推荐阅读
-
Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)
-
mysql 忘记密码的解决方法(linux和windows小结)
-
MySQL 数据类型和建库策略
-
MySQL的数据类型和建库策略分析详解
-
MySQL 数据类型和建库策略
-
mysql 忘记密码的解决方法(linux和windows小结)
-
Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)
-
MySQL数据库之数据类型和完整性约束
-
MySQL的数据类型和建库策略分析详解
-
MySQL中的数据类型binary和varbinary详解