MySQL数据库入门(四)数据类型简介

yumo6661个月前 (05-09)技术文章13

在MySQL中数据类型有以下五种:

数字

整数:
常用的有2种,一是int型,int型最多可以表示10位数字(无符号的4开头,有符号的2开头;二是tinyint unsigned,用来表示年龄(值范围是0-255)。

小数:
注意float(m,n)表示法中的m表示数字总共有m位,n表示小数有n位,那么整数部分只能有m-n位。
float默认保留5位小数、double默认保留16位小数、decimal默认是10位数字不含小数(它的最大范围是65位数字,其中小数可以保留30位)。

时间

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

时间类型可以增加限定属性:

not null 非空

default current_timestamp 默认时间为当前时间

on update current_timestamp 更新数据时自动更新当前时间

date:用来记录各种日期,如出生日期、入职日期等关注日期而不关注时间的等信息。

time:用来记录时间安排(课程表、日程表)的信息、时长的等信息。

datetime:用户登录时间等

字符串

以上类型中char和varchar类型用得最多。

char类型为定长字符型,长度固定为声明的长度,范围是0-255字符数(注意不是字节数!使用utf8编码中文会占3个字节,也就是说255个中文字符实际上会占用765字节)。存储时数据长度不够声明的长度时末尾会被填充空格,取值时会舍弃末尾的空格部分,数据超过声明长度的部分会被舍弃。适合使用char类型的如身份证号、手机号、qq号、用户名、密码、银行卡号等。

varchar类型为不定长字符型,长度不固定但最长不能超过声明的长度,范围是0-65535字符数。存储时数据长度不够声明的长度时不会填充空格,数据最后会附加2个字节的长度信息,数据超过声明长度的部分会被舍弃。适合使用varchar类型的如评论、朋友圈、微博等。

char类型优点是检索速度快,缺点是浪费存储空间;varchar类型优点是节省存储空间,缺点是检索速度慢。
由于现在存储空间不再是瓶颈,所以在强调检索速度的场景优先使用char,只有在不确定字符串长度又不强调检索速度的场景才使用varchar。

enum单选

案例:

在下面的sql语句中创建了test表,它的gender字段约束了数据只能是’male’或’female’。

create table test(id int,name char(18),gender enum('male','female'));

如果该字段输其它内容会报错并导致整条数据不能存入数据库。如下面这条语句就会报错且数据不会保存到数据库。

insert into test values(1,'mike','不详');

只有输入正确的选项数据才能存入数据库。

insert into test values(1,'mike','male');

set多选

案例:

在下面的sql语句中创建了test表,它的hobby字段约束了数据只能从列表中选择’。

create table test(id int,name char(18),hobby set('抽烟','喝酒','烫头','洗脚'));

如果该字段输其它内容会报错并导致整条数据不能存入数据库。如下面这条语句就会报错且数据不会保存到数据库。

insert into test values (1,'mike','烫头,喝酒,抽烟,按摩’);

只有输入正确的选项数据才能存入数据库。

insert into test values (1,'mike','烫头,喝酒,抽烟');

注意上述多选中整个选项作为一个字符串且选项之间用英文逗号隔开。

相关文章

oracle和mysql的优缺点对比(oracle对比mysql优势)

oracle的优缺点优点:开放性:oracle 能所有主流平台上运行(包括 windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持;可伸缩性,并行性:Oracle...

MySQL 双主复制的优缺点与实现方法

MySQL 双主复制是一种高可用性解决方案,它可以在两台主库之间同步数据,这样就有了两个可以进行写操作的数据库。MySQL 双主复制的优点:可用性提高:双主复制能够保证在一台主机故障时另一台主机可以立...

这份MySQL全面手册,受喜爱程度不输任何大厂笔记

MySQL是目前最流行的开放源代码数据库管理系统,全世界的装机量已超过400万台。本书详细介绍了如何使用可定制的关系数据库管理系统支持健壮的、可靠的、任务关键的应用程序。今天给大家分享的是一份MySQ...

全程软件测试(六十八):数据库MySQL从零开始入门—读书笔记

第一章 数据库概述1.1、数据库的好处将数据持久化到本地提供结构化查询功能1.2、数据库的常见概念DB:数据库,存储数据的仓库DBMS:数据库管理系统,又称为数据库软件或者数据库产品,用于创建和管理数...

MySQL原理介绍(mysql的运行原理)

一、Mysql中有哪几种锁?1)表级锁开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。2)行级锁开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高...

深夜整理!55道BAT高频MySQL灵魂拷问,背完跳槽涨薪不再是梦想!

"最近在帮团队面试MySQL方向的候选人,发现一个奇怪现象:80%的求职者能写基本的CRUD,但被问到『mysql_fetch_array 和 mysql_fetch_object 的区别是什...