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);

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

当前表中内容:

这里写图片描述

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)。

当前表中内容:

这里写图片描述

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学习笔记 ^ - ^

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值