MySQL中的常用基本数据类型

MySQL中常用的数据类型:

varchar :

变长字符串,使用时我们必须设定其长度,最大值”理论值”65535个,实际上最大只能存65533个,但考虑到存储的字符编码的不同,也会有进一步的减少。比如:

  • 如果存储从中文gbk,则最多是65533/2个;
  • 如果存储中文utf-8,则最多存储65533/3个

此类型的实际长度是存储内容决定,而设定的值是最多可存储的字符个数。

注意:这里的存储限制,其实都来源于一个表格的”一行”的数据存储的最大容量显示。

char :

定长字符串,使用时需要设定其长度,如果不设定,默认是1,最大理论值是255个。

定长字符串,适用于存储的数据都是可遇见的明确的固定长度的字符,比如手机号,身份证号,但是在实际存储的时候,如果少于设定的值,也可以存储,但会使用空格填充空余部分。

enum :

单选项字符串数据类型。它非常适用于存储表单界面中的”单选项值”,它设定的时候,需要给定”固定的几个选项” 存储的时候就只存储其中的一个值。

形式如下:

enum("选项1","选项2","选项3"……)

实际内部:

这些字符串的选项值对应的是如下的数字值:1、2、3、4、5……最多65535个选项

使用enum作为sex的数据类型:

 create table tab_test_enum (id int primary key auto_increment,name varchar(10),sex enum('boy','girl'));

向表中插入数据:

第一种方式:

 insert into tab_test_enum (name,sex)values('wangke','boy');

第二种方式:

 insert into tab_test_enum (name,sex)values('xiaohong',2);

注:由于在内部,每一个选项值都对应着一个数字,因此这里我们可以直接插入数字。

当前表中内容:

MySQL中的常用基本数据类型_第1张图片

set :

多选字符串的数据类型。它非常适用于存储表单界面中的”多选项值“;它设定的时候,需要给定”固定的几个选项”,然后在存储的时候,就可以存储其中若干个值。

形式如下:

set("选项1","选项2","选项3"……)

实际内部:

这些字符串选项对应的是如下的数字值:1,2,4,8,16,……最多64个选项。

创建表使用set作为hobby的数据类型:

create table tab_test_set(id int primary key auto_increment,name varchar(10),hobbyset('coding','eat','play','sleep'));

插入数据的两种方式:

第一种方式:

 insert into tab_test_set(name,hobby)values('wangke','eat,play,sleep');

第二种方式:

insert into tab_test_set(name,hobby)values('xiaohong',14);

两种方式插入的hobby的内容是一样的,第二种方式中的14是所有hobby选项值相加所得(2+4+8)。

当前表中内容:

MySQL中的常用基本数据类型_第2张图片

text :

“长文本”字符类型,通常,其存储的类型不占距表格中行的数据容量限制,其本身不占距表中一行的数据容量的限制,其本身最长可存储65535个字符

其他同类字符串类型:smalltext,tinytext,longtext

其他:

  • binary类型: 定长二进制字符串类型,里面存储的是二进制值

  • varbinary类型: 变长二进制字符串类型,里面存储的是二进制值

  • blob类型: 二进制数据类型,里面存储的是二进制值,但其适用于存储”图片”,”其他文件”等,由于在数据库中操作的效率问题,极少使用。

时间类型:

  • datetime(时间日期类型)

  • date(日期类型

  • time(时间类型)

  • year(年份类型)

  • timestamp(时间戳类型):就是指一个时间的”数据值”–本质其实就是一个数字。它的一个重要作用:能够自动获得时间戳的数据值–相当于”now()”(注:这个字段通常不需要插入数据)

    注:在应用中,时间日期类型,再我们自己给定的数据情形下,需要使用’单引号’引起来,跟字符串一样。

演示时间日期类型的字段的使用:

/*像表中插入时间*/
insert into tab_time(my_datetime,my_date,my_time,my_year)value('2017-4-13 16:41:34','2017-4-13','16:41:34','2017');

使用now()函数可以直接获取当前时间

记录MySQL学习笔记 ^ - ^

你可能感兴趣的:(数据库,mysql,基本数据类型,日期类型)