mysql数据库逻辑型字段_MYSQL数据库——mysql的数据类型和运算符

一.数据类型和运算符

数据库表是由多列字段构成,每一个字段都是表的一个属性,每一列都指定了不用的数据类型。指定了数据类型之后,也就决定了向字段内插入的数据的内容。例如,插入的是数字的时候,既可以将它们存储为整数类型,也可以存储为字符串类型。不同的数据类型也决定了 mysql 在存储他们的时候使用的方式,以及在使用他们的时候选择什么运算符号进行运算。

二.数据类型

mysql支持多种数据类型,主要有:数值类型、日期\时间类型、字符串类型。

(1)数值数据类型:包括 整数类型的 (TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT),浮点小数类型的 (FLOAT、DOUBLE),定点小数类型的(DECIMAL)。

(2)时间\日期类型:包括YEAR、TIME、DATE、DATETIME和TIMESTAMP。

(3)字符串类型:包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、SET等。字符串类又分为文本字符串和二进制字符串。

1.整数类型

整数类型主要是用来存储数字的。不同类型的数值数据类型,提供不同的取值范围,可以存储的值得范围越大,其所需要的存储空间越大。每个数据类型后面的括号内的数字表示可以显示的数字的宽度,显示宽度只用于显示,不能限制取值范围和占用空间。

整型:

ff445054d99da10eb2dc8c4b5fab4a5f.png

浮点型:FLOAT为单精度浮点型,DOUBLE为双精度浮点型。浮点型可以用(m,n)表示,m表示精度(可以一共保存几位),n表示精度(保留小数点后几位)

c25baa53e3f870ce4bb88792bb80bbc3.png

定点类型

2.日期与时间类型

1ad3b97d10d1c23520b5d9c4a6883c61.png

(1).YEAR

YEAR类型是一个单字节类型,表示年,在存储时只需要一个字节,定义YEAR类型的几种格式:

(1)以4位字符串或者4位数字格式表示 YEAR。输入的格式为 YYYY 或者 ‘YYYY’。例如:输入‘2010’或2010,插入的数据均为2010.

(2)以2位字符串表示YEAR。输入的格式为‘YY’。范围是 ‘00’~‘99’,00~69表示2000~2069,70~99表示1970~1999。例如:输入‘0’ 和‘00’的效果是一样的,都输出的是2000。

(3)以2位数字格式表示YEAR。输入的格式为YY。范围是1~99,1~69表示2001~2069,70~99表示1970~1999。输入0则输出的是0000,而不是2000。非法YEAR值会被转换为0000。

(2).TIME

TIME类型用在只需要时间信息的值,存储的时候需要3个字节。格式为“HH-MM-SS”,HH表示小时,MM表示分钟,SS表示秒。TIME类型不仅可以用于表示一天的时间,还可以表示过去的几件或者两个事件之间的时间的间隔。定义DATE类型的几种格式:

(1)“D HH:MM:SS”格式的字符串。D表示日,天,可以取0~34之间的值。在插入数据时,D被转化成小时保存。即D*24+HH。

(2)“HHMMSS”格式的、没有间隔符的字符串或者HHMMSS格式的数值。比如‘101112’表示‘10:11:12’,但是‘109710’就是不合法的,将会被存储为00:00:00

注意:如果没有间隔符并且时、分、秒没有全部填入的时候(如,1112),那么mysql解释时,就会假定最右面的是秒。然后依次读取。

(3).DATE

DATE类型用在仅需要日期值,不需要时间部分的值。存储的时候需要3个字节,格式为“YYYY-MM-DD”,YYYY表示年,MM表示月,DD表示日。定义DATE类型的几种格式:

(1)以‘YYYYMMDD’或者‘YYYY-MM-DD’格式的字符串表示日期。

(2)以‘YY-MM-DD’或者‘YYMMDD’格式的字符串类型表示日期。

(3)以YYMMDD或者YY-MM-DD格式的数字类型表示日期。

(4)利用 CURRENT_DATE 或者 NOW(),插入当前的系统的时间。

(4).DATETIME

DATETIME类型用在需要同时包含日期和时间的信息的值,存储的时候需要8个字节,格式为‘YYYY-MM-DD HH:MM:SS’。定义DATETIME类型的几种格式:

(1)以 ‘YYYY-MM-DD HH:MM:SS’ 或者 ‘YYYYMMDDHHMMSS’ 字符串格式表示的值。

(2)以 ‘YY-MM-DD HH:MM:SS’ 或者 ‘YYMMDDHHMMSS’ 字符串格式表示的值。

(3)以 YYYYMMDDHHMMSS 或者 YYMMDDHHMMSS 数字格式表示的值。

(5).TIMESTAMP

TIMESTAMP类型和DATETIME类型显示格式相同。两者的不同是:存储的字节数不同(TIMESTAMP需要4个字节,DATETIME需要8个字节),存储的范围不同。还有一个最大的区别在于,DATETIME在存储日期时间的数据时,按照实际输入的格式存储,即输入什么就存储什么,与时区无关。TIMESTAMP类型与时区有关,存储是以UTC格式保存,存储时对当前时区进行转换,检索时再转换回当时的时区,不同的时区显示的时间是不同的。

308b439f0587b80bf5d23d18de699eee.png

061cdc35a77661c4bf754efe381249ef.png

a8185339aa54cd10d0606baf818705da.png

9d05e88bc392f940f9532b31fa8475e7.png

5ffa217134da78be623b7a473c2aada5.png

6db71da3a034859d1ac864ac05ce3c04.png

3.字符串类型

字符串类型是用来存储字符串数据的,除了可以存储字符串数据之外,还可以存储其他的数据,比如说图片和声音的二进制数据。MySQL提供了两类字符型数据:文本字符串和二进制字符串。

文本字符串类型:

51ffedd81edd04937e3d0ab749bab352.png

3e9a31af2dae06e85c7c2001a6175547.png

二进制字符串类型

三.常见的运算符

1.算术运算符:+、-、*、/、DIV、%(取余)

注意:除法运算,当除数为0的时候,输出的结果为NULL。取余运算的时候,除数为0的时候,最后的结果也是NULL。

2.比较运算符:>、=、<=、!=、IN、BETWEEN AND、IS NULL等

注意:=运算符,当等号一边或者两边都为NULL的时候,输出的结果为NULL。<=>安全等于运算符,当有一个值为NULL时,返回的值为0;当两边的值都为NULL的时候,返回的结果是1。IN 运算符,当数值为NULL时,返回为NULL;当语法中含有NULL并且前面的数值不能匹配的时候,返回NULL。LEAST运算符,返回最小的值,当里面含有NULL的时候,返回NULL。GREATEST和LEAST一样。

3.逻辑运算符:运算符的结果均为1或者0。逻辑与(&&、AND),逻辑或(||,OR),逻辑非(!,NOT),逻辑异或(XOR)

注意:注意运算符的优先级别。AND运算符,当AND两边有一个为NULL并且另一个为非零数的时候,返回为NULL。0 AND NULL,返回的是0。OR运算符,当OR两边为 0 OR NULL时,返回的是NULL。

4.位运算符:按照二进制位进行的运算,包括位与&,位或|,位非~,位异或^,左移<>

四.运算符的优先级

优先级   运算符

(最高)     !

-(负号),~(按位取反)

^(按位异或)

*,/(DIV),%(MOD)

+,-

>>,<<

&

|

=(比较运算),<=>,,>=,!=,<>,IN,IS NULL,LIKE,REGEXP

BETWEEN AND,CASE,WHEN,THEN,ELSE

NOT

&&,AND

XOR

||,OR

(最低)    =(赋值运算),:=

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值