mysql入门-数据类型(一)

mysql数据类型概述

mysql基础就先从支持的数据类型说起,mysql一共支持三种数据类型,数值类型,字符串类型,日期。

   数值类型:数值类型又分为两种类型整型和浮点类型

        整型:bit、bool、tinyint、smallint、mediumint、int、bigint

        浮点型:float、double、decimal

   字符串类型:char、varchar、tinytext、text、mediumtext、longtext、tinyblob、blod、mediumblob、longblob

   日期类型:date、time、datetime、year、timestamp

数值类型

第一个说整型,整型是一个比较常用的数据类型,在it这块还是比较常见的。整形有五种,分别为bit、bool、tinyint、smallint、mediumint、int、bigint。

那么这五种类型的所占空间是多少呢,咱们先来测一下。建立一张表,随意建立一个。

-- 存在删除表
drop table if exists test_table_one;
create table test_table_one(
    a bit,
    b bool,
    c TINYINT,
    d SMALLINT,
    e int,
    f BIGINT
)

查看一下表结构。

-- 查看表结构
desc test_table_one;

得到结果。

从这张表中,我们看到的并不是这些类型的实际存储大小,这些只不过是最小的显示位数,基本上建表的时候使用默认给定的就可以了,除非有特殊需求,指定了zerofill,类似下面这种情况。

drop table if exists test_table_one;
create table test_table_one(
    a bit,
    b bool,
    c TINYINT,
    d SMALLINT,
    e int(10) ZEROFILL,
    f BIGINT
)

要想指定显示的位数,就可以像上边e int(10)这样去指定。

得到的结果

insert into test_table_one set e = 1;
select * from test_table_one;

真正的存储空间占用的大小在下面这张图(来自于w3c)

当选用类型的时候,一定要考虑好字段的范围,然后根据范围去选,这里给出一个阿里开发规范中的推荐选择,就是id应该选择bigint类型。



接下来就是浮点类型了,浮点类型有三种,float,double、decimal。这三种类型还有另一种表现形式,float(m,d),double(m,d),decimal(m,d),解读一下第二种表示方式的含义,其中m为全部位数的个数,d为小数的最大位数。在float和double中,m的范围为0到60,而d的范围为0到30,,表示的范围在上面的表中有体现。

再说一下decimal,decimal也有两种表现形式一种是decimal,第二种就是decimal(m,d),m和d的含义和double和float的意义一样,唯一不同的是,如果使用decimal,并且没有指定m和d,这里有一个默认的值,m默认为10,d默认为0.测一下。

drop table if exists test_table_two;
create table test_table_two(
    a float,
    b double,
    c decimal
)

desc test_table_two;

运行结果为

系统给定的默认值为m=10,d=0,当存入的数精度不符时,三种都会发生截断现象。测试数据

drop table if exists test_table_two;
create table test_table_two(
    a float(6,3),
    b double(6,3),
    c decimal(6,3)
)

desc test_table_two;

insert into test_table_two values(1.23456,2.345,5.6789);
select * from test_table_two;

结果:

不光超出的位数发生了截断,而且还进行了四舍五入。不过阿里还是推荐使用decimal(m,d)的这种方式,一只没弄清楚原因。

未完,待续。。。。。。

原文地址:https://www.cnblogs.com/Lighting-Sui/p/11247673.html

时间: 2024-08-30 11:05:52

mysql入门-数据类型(一)的相关文章

21分钟 MySQL 入门教程 && mysql数据类型

转自:http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html#c1 http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html 21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录

MySQL入门(引擎、数据类型、约束)

MySQL入门(二) 表的引擎:驱动数据的方式 - 数据库优化 # 概要:引擎是建表规定的,提供给表使用,不是数据库的 # 展示所有引擎 show engines; # innodb(默认): 支持事务, 行级锁, 外键 create table t11(id int)engine=innodb; # myisam: 查询效率要优于innodb, 当不需要支持事务, 行级锁, 外键, 可以通过设置myisam来优化数据库 create table t12(id int)engine=myisam

MySQL 入门(三)—— MySQL数据类型

MySQL的数据类型包括整数类型.浮点数类型.定点数类型.日期和时间类型.字符串类型和二进制数据类型.不同数据类型决定了数据的存储格式.有效范围和相应的限制. 1.整数类型 MySQL支持的整数类型如下表所示 MySQL支持数据类型的名称后面指定该类型的显示宽度,基本形式如下: 数据类型(显示宽度) 显示宽度指能够显示的最大数据的长度.在不指定宽度的情况下,整数类型的默认显示宽度与其有符号数的最大值的显示宽度相同.如INT型为11,BIGINT型为20. 但实际上,即使出入的数据的宽度大于了设置

MySQL入门笔记(一)

MySQL入门笔记(二) 一.数据类型 1. 整型 2. 浮点型 3. 字符型 4. 日期时间型 二.数据库操作 1. 创建库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name; ??上述代码中DATABASE和SCHEMA完全相同,可任选一个(花括号内的参数为任选其一): ??添加IF NOT EXISTS的作用则是,若新建数据库的名称与已有数据库名称冲突,则产

MySQL入门(三)

写了两篇<MySQL入门>以后我发现,写书的人还是都挺有本事的,起码人家知道怎么编排自己想讲的知识点,我实在是不知道该先说那里后说哪里,那我就想到什么讲什么吧. 一 写SQL 其实我是不想写有关SQL的部分的,因为这个部分其实很简单,基本上大学只要好好听听数据库概论这门课基本上都能写满足功能的SQL,但是后来想想,SQL其实是人和数据库交互的一种接口,不会SQL确实是不可以的,写的不好感觉不出数据库有多么的强大,甚至有可能会让人产生出数据库慢的坏印象. MySQL作为most popular的

MySQL 入门教程

MySQL的相关概念介绍 MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格: 表头(header): 每一列的名称; 列(row): 具有相同数据类型的数据的集合; 行(col): 每一行用来描述某个人/物的具体信息; 值(value): 行的具体信息, 每个值必须与该列的数据类型相同; 键(key):

MySQL学习笔记之一 MySQL入门

本人之前接触的关系型数据库主要是oracle和sqlserver,而对于mysql知之甚少,但查阅网上资料发现,mysql与oracle非常相似,所以学起来应该不会很费劲,在总结的时候可能更多的把关注点放在它与oracle的不同之处. 一.简介 MySQL是一个真正的多用户.多线程SQL数据库服务器.SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言.MySQL是一个客户端/服务器结构的实现, 它由一个服务器守护程序mysqld和很多不同的客户程序和库组成. MySQL的普及并不局限于

21分钟 MySQL 入门教程(转载!!!)

21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录到MySQL 创建一个数据库 选择所要操作的数据库 创建数据库表 六.操作MySQL数据库 向表中插入数据 查询表中的数据 更新表中的数据 删除表中的数据 七.创建后的修改 添加列 修改列 删除列 重命名表 删除整张表 删除整个数据库 八.附录 修改 root

【数据库之mysql】 mysql 入门教程(二)

目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录到MySQL 创建一个数据库 选择所要操作的数据库 创建数据库表 六.操作MySQL数据库 向表中插入数据 查询表中的数据 更新表中的数据 删除表中的数据 七.创建后的修改 添加列 修改列 删除列 重命名表 删除整张表 删除整个数据库 八.附录 修改 root 用户密码 可视化管理工具 MyS