目录

一、数据类型

一、数值型数据

1、整数类型

2、小数类型

二、字符串类型

1、char

2、VARCHAR

3、BLOB和TEXT类型

三、日期和时间类型

四、枚举类型

五、set类型


一、数据类型

首先得明白什么是数据类型,数据类型其实就是一种对数据的约定,就像我们在用表格统计数据的时候,为了方便查看,得按照表头填写,姓名,年龄一般都是按照格式填写,这个时候其实就相当于规定了,姓名为一个字符串类型,年龄可以是个数字类型,学历这种带有枚举值的就可以定义为枚举类型。

下面介绍下MYSQL的数据类型,MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。因此介绍以下MYSQL的数据类型

一、数值型数据

1、整数类型

mysql提供的整形类型如下:

这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。当使用这些整数类型之一创建列时,MySQL将为存储数据分配合适大小的空间,从1个字节(tinyint)到8个字节(bigint)不等。因此在选择类型时,只需要确保能够容纳预期的最大数字即可,这样可以避免浪费不必要的存储空间。

整数类型有可选的UNSIGNED属性,表示不允许负值,这大致可以使正数的上限提高一倍。例如TINYINT.UNSIGNED可以存储的范围是0~255,而TINYINT 的存储范围是-128~127。还有ZEROFILL修饰符规定0(不是空格)可以用于填补输出值。请注意,使用这个修饰符可防止MySQL存储负值。

UNSIGNED测试

比如我们新建一个表,字段类型选择tinyint,然后修改字段值为128,超过其最大限制,则会报错

修改 tinyint 为 tinyint UNSIGNED,再试下

此时128就可以包容了,

同样此时输入负数,则会报错

 ZEROFILL测试,设置字段class类型为 int ZEROFILL,长度为6,输入12

则实际数据如下 ,补全至六位

 2、小数类型

MySQL支持的三个浮点类型是FLOAT,DOUBLE和DECIMAL类型。FLOAT数值类型用于表示单精度浮点数值,而DOUBLE数值类型用于表示双精度浮点数值。

当使用浮点类型时,可以指定其精度(小数点左边到右边所允许的数字总位数)和有效位(小数点右边所允许的数字位数),当然这不是必需的。需要注意的是,如果数字位超过了该列所定义的精度或有效位,那么该列中存储的数据将会被四舍五入。例如,一个定义为float(4,2)的列将会存储4位数字,其中两位在小数点左边,两位在小数点右边。因此,如果向该列添加数据27.44和8.19是允许的,但17.8675将会被四舍五入为17.87,178.375则会产生一个错误。和整数类型一样,浮点列也可以被定义为unsigned,但这里只是禁止列中存放负数,并没有改变该列所存储数据的范围。

二、字符串类型

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

1、char 

最简单的类型是CHAR类型,它用于定长字符串,并且必须在圆括号内用一个大小修饰符来定义。这个大小修饰符范围为0到255,指定了要存储的值的长度,例如,语句CHAR (10)指定了一个长度为10个字符的值。比指定长度小的值将会用空格适当填补﹔比指定长度大的值将被自动截短。

2、VARCHAR

CHAR类型的-一-个变体是VARCHAR类型,它用于变长字符串,它也必须带有一个范围在0到255之间的大小指示器。VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加一个额外的字节记录长度)。因而,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短)因为字段会根据它的内容动态地增长和缩短,所以当不能确定字段要存储多少个字符时,使用这种类型是--个很好的想法;因为VARCHAR类型只使用需要的最小数目的字节,所以它在数据库性能方面导致了更大的存储效率和(可能)空前的改进。与CHAR类型一样,VARCHAR类型也有一个可选的BINARY修饰符,它的功能跟前面的描述相同。

3、BLOB和TEXT类型

BLOB和TEXT都是为存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储。BLOB类型区分大小写,TEXT类型不区分大小写。

实际上,它们分别属于两组不同的数据类型家族﹔字符类型是TINYTEXT,SMALLTEXT,TEXT,NEDIUMTEXT,CONGTEXT﹔对应的二进制类型是TINYBLOB,SMALLBLOB,BLOB,MEDIUPMBLOB,LONGBLOB。BLOB是SMALLBLOB的同义词,TEXT是 SMALLTEXT的同义词。

三、日期和时间类型

除了字符串和数字,处理信息还会经常用到日期或时间。这种类型的数据被称为时间型数据。MySQL用DATE 和YEAR类型描述简单的日期值,而使用TIME类型描述时间值。这些值可以描述为字符串或不带分隔符的整数序列。如果描述为字符串,DATE类型的值应该使用连字号作为分隔符分隔开,而TIME类型的值应该使用冒号作为分隔符分隔开。

日期格式组成成分

四、枚举类型

Enum枚举类型是字符串类型,其值是从事先指定的一系列值中选出,适用在某列的取值范围已经固定,且在设置枚举类型的时候要给定枚举值,比如设置性别为枚举类型,如果仅仅设置enum类型,则会报错如下

这个时候在下边加上值 或者类型里边填写 enum('男','女')就可创建成功

这个时候如果随便输入其他的值,则会报错

1265 - Data truncated for column 'sex' at row 1

五、set类型

SET类型与ENUM类型相似但又不完全相同, SET类型允许从预先定义的字符串值集合中选取任意数目的值。语句使用ENUM类型的字段最多包含一个元素,而SET类型不同,语句为SET类型的字段可以包含0个、1个或1个以上从允许值集合中选取的值。这使SET类型可以做多个选择的选取。通俗点可以理解ENUM为单选,SET为多选,可以选择多个选项,同样创建SET类型也需要给定值。

插入或者修改SET类型sql多个值用逗号隔开 ,如下:

 update   student a set a.setTest ='大专,本科' where a.id='2';

零基础学SQL(二、MYSQL数据类型)相关推荐

  1. 零基础学SQL(1):初识数据库与SQL

    零基础学SQL(1):初识数据库与SQL 一.初识数据库 数据库是将大量数据保存起来,通过计算机加工而成的可以 进行高效访问的数据集合.该数据集合称为数据库(Database,DB).用来管理数据库的 ...

  2. 免费视频教程!零基础学Python系列(7) - 数据类型之bytes(上)

    本节我们开始讲python数据类型之bytes类型,我们分为上下两个章节. 你可以直接到这个页面观看本节视频:免费视频教程!零基础学Python系列(7) - 数据类型之bytes(上) 以下为对应的 ...

  3. 零基础学Python(二)

    零基础学Python(二) 这一期给大家介绍一个好用的Python开发工具:Pycharm 一.Pycharm的简介: PyCharm是由JetBrains打造的一款Python IDE,是一种Pyt ...

  4. 零基础学sql要多久_成人零基础学习钢琴,要多久能学会?

    越来越多的人都开始在开始工作之后想要练习一门技艺了.不知道大家身边的朋友是不是也在报一些培训班,健身班,瑜伽班,舞蹈班.每个人都有自己向往的生活与目标,那学会钢琴,也慢慢变成了更多喜爱音乐的朋友的目标 ...

  5. 零基础学sql要多久_零基础小白如何迈出学习SQL的第一步?文科生学SQL的心得

    本文适用对象:从没接触过编程的零基础小白 首先,判断是否需要学习SQL 学习的第一步:了解SQL的用途. 比如你的目的是处理小量数据,那么excel就能满足需求,且excel简单易学,适用性广,这种情 ...

  6. 零基础学SQL(十一、视图)

    目录 前置建表 一.什么是视图 二.为什么使用视图 三.视图的规则和限制 四.视图的增删改查 五.视图数据的更新 前置建表 CREATE TABLE student (id int NOT NULL ...

  7. 零基础学SQL(九、分组 GROUP BY)

    目录 前置建表 ​编辑 一.分组的概念 二.分组案例 三.分组的过滤HAVING子句 前置建表 CREATE TABLE student (id int NOT NULL AUTO_INCREMENT ...

  8. 零基础学SQL(四、可视化工具连接数据库、数据库创建及删除)

    目录 一.使用Navicat链接MYSQL 二.创建数据库 1.创建数据库的命令 2.删除数据库  删库需谨慎 3.修改数据库名称 三.可视化工具操作 1.创建数据库 2.删除数据库 删库需谨慎 一. ...

  9. 零基础学SQL(十三、事务)

     目录 前置建表 ​编辑 一.什么是事务 二.事务特性ACID 1.原子性(Atomicity) 2.一致性(Consistency) 3.隔离性(Isolation) 4.持久性(Durabilit ...

最新文章

  1. 重读TCP协议(3)
  2. 明早1点去青岛,可能要两天不能写博客了
  3. 【网摘】Oracle Dedicated server 和 Shared server(专用模式 和 共享模式) 说明
  4. vs java调试_基于VSCode的Java编程语言的构建调试环境搭建指南(作业三)
  5. CAE+VBR如何提升用户体验?
  6. Cocos Creator Ui系统
  7. 没错,纯SQL查询语句可以实现神经网络
  8. 《机器学习实战》笔记(01):机器学习基础
  9. SpringBoot 服务监控机制,你了解多少?
  10. c++ mysql 导入sql_mysql导入sql文件命令和mysql远程登陆使用详解
  11. [转载] Numpy 使用教程--Numpy 数学函数及代数运算
  12. 1.12 Linux查看用户信息
  13. 设计模式之抽象状态模式
  14. YII 1.0 隐藏单入口index.php 设置路由与伪静态
  15. php中使用curl
  16. 笔记本系统恢复连载之九:神舟笔记本系统恢复
  17. 39.JavaScript中Promise的基本概念、使用方法,回调地狱规避、链式编程
  18. m3u8加密文件原理及下载脚本
  19. python 点点滴滴
  20. 如何提升自己的硬实力

热门文章

  1. [游戏技术]VampireSurvivors PC版修改
  2. pytorch深度学习_用于数据科学家的深度学习的最小pytorch子集
  3. vue项目使用iconfont(本地下载、彩色icon)
  4. 从心理学和传统文化角度来初步理解个体与环境
  5. 使用 github, gitbook, markdown 写博客/写书
  6. Win10 C盘清理的技巧,将C盘中除Windows外的所有系统文件夹移到C盘之外,节约大部分C盘空间
  7. linux下解压文件丢失文件,Linux下解压文件
  8. AI工程师应聘要具备哪些能力?
  9. linux mtd 块设备,基于块设备子系统的MTD子系统(2.6.26)
  10. TSINGSEE青犀视频云-边-端架构视频智能分析平台EasyNVR如何实现直播地址和录像地址统一