MySQL (入门篇03)MySQL数据类型 和 常用字段属性总结

一、MySQL数据类型

1. 整数

类型 含义 大小
tinyint 小数据 1字节 范围(-128~127)
smallint 较小数据 2字节,范围(-32768~32767
mediumint 中等数据 3字节,范围(-8388608~8388607)
int 最常用的标准数据 4字节,范围(-2147483648~2147483647)
bigint 大的数据 8字节,范围(±9.22*10的18次方)

2.浮点数

类型 含义 大小
float(m, d) 浮点数 4字节,m为数字的个数,d为小数位个数
double(m, d) 双精度浮点数 8字节m为数字的个数,d为小数位个数
decimal(m, d) 字符串形式浮点数,金融使用 m为数字的个数,d为小数位个数

注意:
举个例子folat(5,3)只能储存类似 12.345 这样小于等于 99.999 的数,

  1. 如果插入 123.34(大于99.999) ,得到的结果为 99.999
  2. 如果插入12.245 得到的结果为 12.245

2. 字符串

类型 含义 大小
char(n) 固定大小的字符串 0-255字节
**varchar(n) ** 改变字符(最常用) 2字节
tinytext 微型文本 2^8-1字节
text 标准文本 2^16-1字节
mediumtext 中等文本 2^24 -1 字节
longtext 超大文本 2^32-1 字节
  1. char(n) 和 varchar(n)中的 n 代表字符的个数,不是字节的个数,所以所以 使用 utf8 的编码标准实际会占用 n * 3 个字节
    英文字母和中文汉字在不同字符集编码下的字节数
  2. char(n) 和 varchar(n)的区别:char是固定的占255个字节,varchar是变化的,占 n*编码字节 + 1 个字节
  3. 超过char(n) 和 varchar (n),n 的长度后字符串会被截断,
  4. char在储存的时候回截断尾部的空格 ,其他不会
  5. varchar会使用1-3个字节来储存长度,text 不会

3.日期和时间

类型 含义 常用
date 日期格式:YYYY-MM-DD
time 时间格式:HH:mm:ss
year 年份:YYYY
datetime YYYY-MM-DD HH:mm:ss 常用
timestamp 时间戳 1970.1.1到现在的毫秒数 常用

注意: datetime 而不是 datatime !!

4. 其他类型

  1. enum 枚举,
    最多包含65535个不同的成员,如果该列可以有null值,null就是默认值,如果 not null 第一行的值就是默认值

  2. set(类似选项框)
    最多64个选择项,插入的值只能是定义是选项中的值。

二、字段属性总结。

1. auto_increment 自增

在这里插入图片描述

  1. 下一个插入的值为上一个值+1 ,一般用于id
  2. 每个表只能有一个自增,id定义如下(非空,自增,主键)
id int not null auto_increment primary key;
2.binary

binary属性只用于char和varchar排序值。当为列指定了该属性时,将以区分大小写的方式排序。与之相反,忽略binary属性时,将使用不区分大小写的方式排序。例如:
复制代码代码如下:

hostname char(25) binary not null

3. default 默认值

设置默认值
代码如下

sex enum("男","女") not null defaut "男";

4. index 添加索引

索引可以极大地提高查询效率

  1. 如果其他的元素都相同,添加索引可以加速数据库的查询,
  2. 索引一个列可以为该列创建一个有序的键数组,与搜索整个没有索引的表相比,性能提升.
  3. 只索引了名字的前7个字符,因为可能不需要其它字母来区分不同的名字。因为使用较小的索引时性能更好,所以应当在实践中尽量使用小的索引
create table employees
(
id varchar(9) not null,
firstname varchar(15) not null,
lastname varchar(25) not null,
email varchar(45) not null,
phone varchar(10) not null,
index lastname(lastname(7)),
primary key(id)
);

在这里插入图片描述
4. 我们也可以利用MySQL的create index命令在创建表之后增加索引:

create index lastname on employees (lastname(7));

5. not null 非空

null数据无法添加

6. null 可空

null 数据可添加

扫描二维码关注公众号,回复: 11217402 查看本文章

7.primary key

主键

8. unique ,特殊不可重复

9. zerofill 零填充

zerofill可以适用于任何数据类型
例如,
例如,无符号int的默认宽度是10;因此,当“零填充”的int值为4时,将表示它为0000000004。例如:


orderid int unsigned zerofill not null

10.unsinged 无符号

  1. UNSIGNED

UNSIGNED属性就是将数字类型无符号化,与C、C++这些程序语言中的unsigned含义相同。例如,INT的类型范围是-2 147 483 648 ~ 2 147 483 647, INT UNSIGNED的范围类型就是0 ~ 4 294 967 295

拓展:阿里巴巴手册的必须五个字段

在这里插入图片描述

原创文章 132 获赞 11 访问量 4683

猜你喜欢

转载自blog.csdn.net/jarvan5/article/details/106157860