【MySQL】MySQL 数据类型

这篇具有很好参考价值的文章主要介绍了【MySQL】MySQL 数据类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. tinyint 类型

2. bit 类型

3. 小数类型

1、float 类型

2、decimal 类型

3. 字符串类型

1、char 类型 

2、varchar 类型

4. 日期类型

5. enum和set

1、枚举和集合类型语法

2、枚举和集合类型的查找

6、find_in_set 函数

写在最后:


1. tinyint 类型

我们以 tinyint 类型为例子,介绍 int 系列的类型。

1)我们先建一个简单的表:

create table if not exists t1(
    num tinyint
);

2)然后我们直接观察三连查看一下这个表:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

操作包含:

desc t1;
show tables;
show create table t1;

3)接下来就是插入操作:

tinyint 的取值范围是 -128 ~ 127,我们现在就来插入一些值试试:

insert into t1 values (-128);
insert into t1 values (127);
insert into t1 values (0);
insert into t1 values (1);
insert into t1 values (-1);

然后我们再查看一下我们刚刚插入的数据:

select * from t1;

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

如果我们插入一个不正确的值呢:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

MySQL 会直接报错,不让我们插入。

接下来我们再建一个表,创建一个无符号的类型:

create table if not exists t1(
    num tinyint unsigned
);

他的数据范围是 0 ~ 255。

所以如果我们插入负数那肯定是会报错的:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

2. bit 类型

1)老规矩,还是从建表开始:

create table if not exists t3(
    id int,
    online bit(1)
);

2)查看表:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

3)插入数据:

insert into t3 (id, online) values (123, 1);
insert into t3 (id, online) values (123, 2);

 插入了 2 就报错了,因为它只支持一个比特位:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

我们可以修改他的值:

alter table t3 modify online bit(10);

我们可以看到这里修改成功了:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

如果我们建表的时候不带 bit 的大小,他默认是 1 。

3. 小数类型

1、float 类型

 1)老样子,从建表开始学习:

create table if not exists t5(
    id int,
    salary float(4, 2)
);

2)查看一下表:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

3)尝试插入数据:

insert into t5 (id, salary) values (1, 99.99);
insert into t5 (id, salary) values (1, 199.99);

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

float 类型的括号里面,第一个是他的位数,我们选了 4 所以最多 4 位,

第二个是他的精度,我们选了 2 所以他的小数位最多 2 位。 

这里要注意的是,因为精度要求的是两位,所以整数部分也只能是两位。

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

这里又有一种和神奇的现象,就是精度部分是按照四舍五入进行计算的,

所以 99.994 是允许插入这样的数的。

我们在建表的时候,在 float 类型后面也可以加上 unsigned 让他成为无符号。          

如果是默认使用的 float ,就是自己设定,那他会有一定的精度损失。(大约是 7 位)

2、decimal 类型

在使用上面,他跟 float 类型一模一样。

但是他对于 float 有着独特的优势,这里我就直说了:

float 在存一些数字比较大的数的时候,会出现精度丢失的问题,

但是 decimal 存的是什么他就是什么。

3. 字符串类型

1、char 类型 

1)建表

create table if not exists t8(
    id int,
    name char(2)
);

2)插入数据:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

我们就能知道 char (2) 就是字符长度最长是 2。

注意:char 最大只能是 255。

2、varchar 类型

1)建表

create table if not exists t7(
    id int,
    name varchar(6)
);

2)插入

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

可以看到他最大能插入的长度是 6 。注意 varchar 最长支持 21845。

那 char 和 varchar 看起来一样,他们的区别是什么?

char 是定长(一开始就开辟好),varchar 是变长的(用多少,开辟多少)

4. 日期类型

有三种常见的日期类型:date,datetime,timestamp

1)建表

create table if not exists t9(
    t1 date,
    t2 datetime,
    t3 timestamp
);

2)查看表

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

时间戳有个默认值,应该是当前的时间戳。

3)插入值

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

我们可以看到,这样是插入成功的

4)查看插入结果

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

 t3 自动显示了当前的时间。

5. enum和set

1、枚举和集合类型语法

enum 枚举值是单选类型

set 集合类型是多选类型

1)建表

create table if not exists t10(
    username varchar(20),
    sex enum('男', '女'),
    hobby set('写代码', '睡觉', '打游戏')
);

2)查看表

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

3)插入值 

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

然后:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

我们可以看到我们插入的值。

这里要注意的是,以后再 sex 位置插入时,只能插入他给的枚举值,而枚举值从 1 开始,所以也可以通过插入枚举值来代表我们插入的值,比如说插入 1 就是插入 男。 

我们再来试试能不能给集合插入多个值:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

我们可以看到是可以插入多个值的。这里要注意的是,如果什么都不插入,就会是  NULL,如果插入 0 就会是一个空串,但是集合中的数字跟枚举的不同,我们可以把这个集合中的 3 个值想象成一个二进制 000,最低位代表的是第一个值,所以插入 1 就是 001,插入写代码:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

如果插入的是 3 ,插入的就应该是 写代码和睡觉:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

可以看到确实是这样。 

总结:枚举是下标,集合是位图。

2、枚举和集合类型的查找

 先来根据枚举值查找:

select * from t10 where sex=1;
select * from t10 where sex=2;

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

集合其实也是这样找:

select * from t10 where hobby=1;
select * from t10 where hobby=3;
select * from t10 where hobby=7;

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

那如果我们想要筛选出,比如说爱好有睡觉的都找出来,那该怎么找?

因为我们上面的查找都是严格的匹配,有没有更灵活的方式呢?

6、find_in_set 函数

实际上,在 MySQL 里面是可以执行函数的:

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

find_in_set 只能查找一个元素是否在对应的集合里面。

这样我们就可以:

select * from t10 where find_in_set('睡觉', hobby);

【MySQL】MySQL 数据类型,学习MySQL,mysql,数据库

 成功找到了。

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~文章来源地址https://www.toymoban.com/news/detail-638019.html

到了这里,关于【MySQL】MySQL 数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL的数据库操作、数据类型、表操作

    目录 一、数据库操作 (1)、显示数据库 (2)、创建数据库 (3)、删除数据库 (4)、使用数据库 二、常用数据类型 (1)、数值类型 (2)、字符串类型 (3)、日期类型 三、表操作 (1)、创建表 (2)、查看表 (3)、删除表 都要看到这了,点个赞再走吧,谢谢谢谢谢

    2024年02月06日
    浏览(47)
  • 【Mysql】数据库第二讲(数据库中数据类型的介绍)

    数值越界测试: 说明: 在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。 可以通过UNSIGNED来说明某个字段是无符号的 无符号案例: 注意 注意:尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将

    2024年02月09日
    浏览(40)
  • MySQL相关的SQL语句、数据库、数据表、字段、类型

    1、 SQL 语句不区分大小写。 SQL语句 用途 描述 mysql -u root -p 连接 MySQL 在命令行窗口中输入 mysql -u root -p 命令,回车,然后输入 MySQL 密码(不要忘记了密码,找回麻烦),再回车就连接上 MySQL 了。最初都是使用 root 用户登录,工作中不能一直使用 root 用户登录。因为 root 权限太

    2024年02月13日
    浏览(69)
  • MySQL的约束类型、数据库操作、数据表操作大全(简述)

    目录 一.数据库的操作语法 二.MySQL数据库约束 三.数据类型 四.数据表操作 作者简介:  tq02,一个想成为编程高手的梦中人 作者主页:  tq02的博客_CSDN博客-C语言,Java,Java数据结构领域博主 学习专栏:  🎥  MySQL基础          🎥  JavaSE                🎥   C语言 本

    2024年02月12日
    浏览(62)
  • 【数据类型】C#和Sql Server、Mysql、Oracle等常见数据库的数据类型对应关系

    🏆🏆这是小5写的第二篇城市领跑者文章,一起为所在城市领跑助力吧! 🏆🏆在实际项目中,不管是用C#后端编程语言也好,还是Java后端编程语言,都可能会用到不同端的数据类型转换和对应关系 在 C# 和 SQL Server 之间,以下是一些最常用的数据类型对应关系: 编号 C#数据

    2024年02月11日
    浏览(42)
  • 【JaveWeb教程】(17) MySQL数据库开发之 MySQL简介、安装、数据类型、SQL通用语法 详细代码示例讲解

    在我们讲解SpringBootWeb基础知识(请求响应案例)的时候,我们讲到在web开发中,为了应用程序职责单一,方便维护,我们一般将web应用程序分为三层,即:Controller、Service、Dao 。 之前我们的案例中,是这样子的请求流程:浏览器发起请求,先请求Controller;Controller接收到请求之

    2024年01月25日
    浏览(48)
  • 【MySQL】数据库中这么多数据类型你真的了解吗?一文看懂不同数据类型有何区别

    创建表t1,将name列数据类型设置为要tinyint 插入属性值:由于这里是tinyint类型,取值范围是【-128–127】,当插入这个范围内的数据显示成功,范围之外失败 使用tinyint unsigned类型创建表t2 无符号类型取值范围【0,255】,这点与C/C++一样 2.1.1 小结 MySQL对于数据类型不合法行为采

    2024年02月13日
    浏览(29)
  • MYSQL数据库-数据库的学习

    1、数据库的英文单词:DataBase 简称 : DB 2、什么数据库? 用于存储和管理数据的仓库. 3、数据库的特点 持久化存储数据的.其实数据库就是要给文件系统 方便存储和管理数据 使用了统一的方式操作数据库 – SQL 1、关系型数据库:MySQL(免费)、Orcale(收费)、SQL Server(免费)

    2024年02月16日
    浏览(30)
  • 【MySQL 数据库】11、学习 MySQL 中的【锁】

    锁是计算机协调多个进程或线程并发访问某一资源的机制 在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题 锁冲突是影响数据库并发访问性能的一个

    2024年02月08日
    浏览(42)
  • MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据

    ⭐ 简介:大家好,我是zy阿二,是一名对知识充满渴望的自由职业者。 ☘️ 最近我沉溺于Python的学习中。你所看到的是我的学习笔记。 ❤️ 如果对你有帮助,请关注我,让我们共同进步。有不足之处请留言指正! Mysql系列文章传送门,建议循序渐进的学习: 1. Mysql入门安装

    2024年01月23日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包