MySQL学习记录:数据类型

mysql数据类型

 

 

 

  1. 数值数据类型 整数型tinyint、smallint、mediumint、int、bigint

                                浮点小数 float、double

                                定点小数 decimal

  1. 日期、时间类型:包括year、time、date、datetime、timestamp
  2. 字符串类型:包括cahr、varchar、binary、varbinary、blob、text、enum、set等

字符串类型又分为文本字符和二进制字符

 

 

整数类型:

.在创建表时,使用了这样的语句: <字段名> int(11)

这里的11是字段的显示宽度,不会影响数据存储。各种类型的取值范围就是2^n,如smallint是2^16。

 

浮点型和定点型:

 

浮点型和定点型都可以用(m,n)来表示,m是精度表示总共的位数 ,n是标度表示小数的位数。

 

 

 

decimal数据类型是以串存放的。默认精度(10,0)。

书上没有细说定点型和浮点型的区别,百度了一下也云里雾里(主要是定点型),在学习过程中慢慢理解吧。

 

 

 

 

日期与时间类型:

 

year:一个单字节类型用于表示年。

输入方式:1.用4位字符串或者4位数字,如 ’2020’和2020。

  1. 两位字符串,00~99,’00’-’69’表示本世纪,’70’-’99’表示上一世纪。(经实践数字也行,但是0和‘0’不一样)

 

 

time:取值范围在-838:59:59~838:59:59是因为time类型不仅用于表示一天的时间,还可以表示两个事件的时间间隔。

输入方式:1.‘D HH:MM:SS’格式的字符串等。

2.  HHMMSS格式的字符串。

注意:1中的格式D会被*24加到HH中去。1122和‘11:22’代表的时间不同。

另外,纯数值的格式2,如果分秒超出59,是不合法的,不会被插入。

 

 

和前面删除无关联表时不同,那时报Error会将其他无错部分执行。

但是插入列数据时不行,一条语句如果有一部分是错的,则都不会执行。

 

 

 

date:

 

 

输入格式:

 

 

 

datetime:

 

 

 

 

timestamp:

显示格式和输入方式和datetime相同。

但是datestamp只接受世界标准时间,即 小时不能超过23,分秒不能超过59。

另外,他会记录存储时和查询时的时区,就是说你在东八区存入一个时间,在东九区查询时,会将存储时间转换为当前时区对应的时间。

 

 

 

创建字符串类型的关键字时,()内的数值不再是最大显示宽度,而是上限。

文本字符串类型:

char和varchar:char为固定长,varcahr为变长。

text:保留非二进制字符串,如文章、评论等。包括tinytext,mediumtext,longtext

enum:创建时,后面要跟枚举值。

set:也要有枚举值,但是set这列的值仅要求由枚举值组成,最多可以有64个成员,用逗号隔开,并且如果有重复值则会自动删去。

 

二进制字符串类型:

mysql中的二进制数据类型有:bit,binary,varbinary,tinyblob,blob,mediumblob,longblob。

 

 

 

bit:位字段类型,m范围为1-64,如果m被省略则默认为1。

binary和varbinary:类似于char和varchar,不同的是它们包含二进制字符串。

blob:二进制大对象

 

如何选择数据类型?

 

 

整数和浮点数:就看你是否需要小数部分了。double相比float存储精度较高。

浮点数和定点数:在长度一定的情况下,浮点数能表示更大的数据范围,但是浮点数易产生误差,因此如果要求高存储精度,选择用decimal。比如,货币。

日期与时间:看自己需求。

char和varchar:插入式固定长度,因此处理速度比varchar快,但是浪费存储空间。所以对存储不打,但在速度上有要求的可以使用char类型,繁殖可以使用varchar。

另外存储引擎对char和varchar也有影响。对于myisam来说char更好,innodb则选择varchar更好。

 

enum和set:enum只能曲单值,但是范围较大,允许有65535成员;set允许有多成员,但是范围是64个成员。

 

blob和text:两者均可存放大容量信息,blob主要存储图片、音频等信息,text只能存储文本文件。

 

 

常见运算符:

 

算术运算符:

运算符

作用

+

加法

-

减法

*

乘法

/

除法

%

求余

比较运算符:

 

运算符

作用

=

等于

<=>

安全的等于

<=

小于等于

>=

大于等于

>

大于

is null

判断一个值是否为空

is not null

判断一个值是否‘不为空

least

当有两个或多个参数是,返回最小值

greatest

当有两个或多个参数时,返回最小值

between..and..

判断一个值是否落在两个值中间

isnull

和is null一样

in

判断一个值是否在in后边的列表里

not in

判断一个值是否不在in后边的列表里

like

通配符匹配

regexp

正则表达式匹配

 

 

逻辑运算符:

运算符

作用

not  或者  !

and 或者  &&

or  或者  ||

xor

异或

 

 

位运算符:

运算符

作用

|

位或

&

位与

^

位异或

<<

位左移

>>

位右移

~

位取反,反转所有比特

 

 

运算符的优先级:

 

 

 

 

 

 

                                                                                                         mission accomplished

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值