关于数据类型和运算符的概念

数据类型和运算符

有两大内容

一、MySQL数据类型

           MySQL是具有丰富的数据类型,在建表和存储过程中都需要指定数据类型

           常有的数据类型有以上几个

(一)数值类型  

整数类型

类型名称

说明

存储需求

tinyint

很小的整数

1个字节

smallint

小的整数

2个字节

mediumint

中等大小的整数

3个字节

int

普通大小的整数

4个字节

bigint

大整数

8个字节

MySQL主要提供的整数类型有:tinyintsmallintmediumintintbigint


create table tmp
(
    x tinyint,
    y smallint,
    z mediumint,
    m int,
    n bigint
);

浮点类型与定点类型

类型名称

说明

存储需求

float

单精度浮点型

4个字节

double

双精度浮点型

8个字节

decimal(M,D)

压缩的“严格”定点数

M+2个字节

单精度float和双精度double

定点类型只有一种:decimal   

create table tmp2
(
    x float(5,1),
    y double(5,1),
    z decimal(5,1)
);

   

(二)字符类型  

类型描述

CHAR(M)

存储固定长度字符串

VARCHAR(M)

存储可变长度字符串

ENUM

枚举类型

SET

集合类型(集合中最多有64个成员)

BLOB

存储二进制大对象

TEXT

存储文本大对象

CHAR和VARCHAR类型

      CHAR(M)为固定长度字符串,在定义时指定字符串列长。在保存时在右侧填充空格以达到指定的长度。M表示列长度,M的范围是0~255个字符

      VARCHAR(M)是长度可变的字符串,M表示最大列长度。M的范围是0~65535。

(三)日期和时间类型

日期和时间类型

类型

描述

存储需求范围
DATETIME

格式为YYYY-MM-DD HH:MM:SS

81000-01-01 00:00:00~9999-12-31 23:59:59
DATE

格式为YYYY-MM-DD

31000-01-01~9999-12-31
TIMESTAMP

格式为YYYY-MM-DD HH:MM:SS

41970-01-01 00:00:01 UTC~2038-01-19 03:14:07
TIME

HH:MM:SS

3-838:59:59~838:59:59
YEAR

YYYY

11901-2155

 

Year类型表示年,可以使用各种格式指定year的值

      以4位字符串或者4位数字格式表示year,取值范围’1901’~‘2155’,输入格式为‘YYYY’或者YYYY,例如:输入’2010’或2010。

      以2位字符串格式表示的year,范围’00‘~’99‘。’00‘~’69‘和’70‘~’99‘范围的值分别被转换成2000-2069和1970-1999范围的year的值。

TIME类型用在只需要时间信息的值,在插入数据时要注意,因为可以采用非严格语法,所以可支持

DATE类型是用在仅需要日期值时,没有时间部分,在插入遵循 YYYY-MM-DD、 YY-MM-DD、 YYYYMMDD、 YYMMDD都可以,并且允许非严格语法

  • 使用current_date或者now(),插入当前系统日期。

DATATIME类型用在需要同时包括日期和时间信息的值

  • 格式为‘YYYY-MM-DD HH:MM:SS’、‘YYYYMMDDHHMMSS’、 ‘YY-MM-DD HH:MM:SS’、‘YYMMDDHHMMSS’、 YYYYMMDDHHMMSS、 YYMMDDHHMMSS

TIMESTAMP类型

  • TIMESTAMP的显示格式与DATETIME相同,但TIMESTAMP的取值范围小于DATETIME的取值范围,为‘1970-01-01 00:00:01’
  • UTC~‘2038-01-19 03:14:07’ UTC,其中UTC为世界标准时间,在插入数据时,要保证在合法的取值范围内。

如何选择数据类型

  1. 为了优化存储,提高数据库性能,在任何情况下均应使用最精确的类型。
  2. 如果不需要小数部分,使用整数类型,否则使用float,double
  3. 如果经常用于计算,精度要求高的用decimal
  4. 如果日期存储范围大时使用datatime
  5. 通常采用varchar类型,如果要提供处理速度,则采用char类型

二、MySQL运算符

  1. 算数运算符
  2. 比较运算符
  3. 逻辑运算符
  4. 位运算符

(一)算数运算符

运算符

作用

+

加法运算

-

减法运算

*

乘法运算

/

除法运算,如果除数为0,返回null

%

求余运算

(二)比较运算符

运算符

作用

=

等于

<=>

安全的等于(和=一样用来做比较,但可以区分NULL)

<> (!=)

不等于(不能和NULL做比较)

<=

小于等于(不能和NULL做比较)

>=

大于等于(不能和NULL做比较)

>

大于(不能和NULL做比较)

<

小于(不能和NULL做比较)

IS NULL

判断一个值是否为NULL

IS NOT NULL

判断一个值是否不为NULL

LEAST

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

GREATEST

有2个或多个参数时,返回最大值

BETWEEN AND

判断一个值是否在两个值之间

IN

判断一个值是IN列中的任意一个值

NOT IN

判断一个值不是IN列中的任意一个值

LIKE

通配符匹配(%、_)

REGEXP

正则表达式匹配(^、$、.、[….]、*)

(三)逻辑运算符

运算符

作用

NOT或者!

逻辑非

AND或者&&

逻辑与

OR或者||

逻辑或

XOR

逻辑异或

(四)位运算符

运算符

作用

|

位或

&

位与

^

位异或

~

位取反

<<

位左移

>>

位右移

同时MySQL中使用的特殊字符

字符

作用

单引号‘

字符串用标识,如单独使用需用转义字符\’

双引号“

如单独使用,需要转义字符\”

反斜杠\

转义字符

\r

回车符

\n

换行符

\tab

制表符

\b

退格符

所以,最后的概括就是:

      MySQL数据类型:数值型、字符型、日期时间型

      MySQL运算符:算术运算符、比较运算符、逻辑运算符、位运算符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值