3. mysql数据类型

1. 数值类型

Int   TINYINT, SMALLINT, MEDIUMINT,INT,BIGINT

默认是:signed

unsigned  无符号,不能取负数

ZEROFILL 修饰符规定 0(不是空格)可以用来真补输出的值。使用这个修饰符可以阻止 MySQL 数据库存储负值

zerofill只是在查询时的格式化输出, 数据库内部存储的还是1而不是0001

not null与default:

not null即值不能为null, 就是写null进去, 结果出错,判断时用  is

default默认值

当没有给某字段显式赋值时, 就用这个默认值, 默认为null

auto_increment  自动增长,一般只对整型指定,一张表最多一个,并且一般为主键索引(key,unique

select  last_insert_id();      --取自动增长列的值

 

Decimalnumeric

decimal(m,d)     可简写成dec

用来存钱,salry  dec(5,2) , 最多共5位,其中一定2位小数, 整数位最多3位,  5为精度, 2为标度。会4舍5入

 

Float

float 单精度,4B

real        double       double precision   均是 double   8B

注意:float时最好指定精度,不然查询会出错

UNSIGNED 和 ZEROFILL 修饰符也可以被 FLOAT、DOUBLE 和 DECIMAL 数据类型使用。并且效果与 INT 数据类型相同。

 

2.字符串类型

MySQL 提供了 8 个基本的字符串类型,可以存储的范围从简单的一个字符到巨大的文本块或二进制字符串数据。

计算机生成了可选文字: 类塑
大,]
用途
CHAR
0一255字节
定长字符串
VARCHAR
0一255字节
变长字符串
刀N丫BLOB
0一255字节
不超过255个字符的二进制字符串
刀NYTEXT
0一255字节
短文本字符串
日LO日
0一65535字节
二进制形式的长文本数据
丁任XT
0一65535字节
长文本数据
MED旧MBLOB
协
215字节
一卜进”形式”,等长度文本”据
MED旧MTEXT
一。一,67772,5,节
中等长度文本数据
LOGNGBLOB
0礴294967295字节
二进制形式的极大文本数据
LONGT曰仃
04294967295字节
极大文本数据

varchar(M) charset为utf8时, M取值为[0, 21???]      

char(8)存'ab', 占8B         varchar(8)存的是'ab', 占3B

varchar(8) -- 8个英文或中文字符

个人简介、微博内容用varchar, 文字量不是特别大就可用varchar而不用text

select length(‘中国人’);

 

text, blod,enum,set     (均没有默认值)

  • text 存大量文字如新闻内容, 不区分大小写, 搜索速度稍慢
  • blob(large binary object), 区分大小写
  • enum 一次只能选一个成员
  • set 与enum类似, 但一次可选多个成员

 

3.日期时间型

datetime    8B

date     4B

time     4B

year      1B

timestamp   4B

select now();

select curdate();

select curtime();

timestamp与时区相关

插入时: 先转成本地时区后存放            取出时: 先转成本地时区后显示





原文地址:https://www.cnblogs.com/51runsky/p/beb11317d3728bd40d286c9663bda328.html