mysql基础-字段类型及几点讨论事项

目录

1.主要字段类型

1.1整数

1.2.浮点数类型

1.3.文本类型

1.4.日期与时间类型

2.讨论几点有关字段类型的事

2.1 时间类型字段用字符还是datetime?

2.2 时间类型字段如何设置随时间更新?

2.3 字段长度够用即可

2.4 小数的字段类型选择,一定要选择decimal

2.5 int(1) 和 int(12)是能存一样范围数据吗?

2.6 varchar(5)字段的数据长度为多少?


1.主要字段类型

主要的字段类型:整数、浮点数、文本类型、日期与时间类型

1.1整数

类型占用字节数取值范围
tinyint1-128~127
smallint2-32768~32767
mediumint3-8388608~8388607
int4-2147483648~2147483647
bigint8-9223372036854775808~9223372036854775807

1.2.浮点数类型

类型占用字节
float4
double8

1.3.文本类型

类型占用字节
char指定字符长度
varchar变长字符长度
tinytext255
text65535
mediumtext16777215
longtext4294967295

1.4.日期与时间类型

类型占用字节
year1
time3
date3
datetime8
timestamp4

2.讨论几点有关字段类型的事

2.1 时间类型字段用字符还是datetime?

应该用dateime字段,

存储空间来看:如果精确到s的时间,varchar类型占用14个字符,而datetime只占用8个字符

查询性能:datetime类型比较依然比字符类型比较性能更好

2.2 时间类型字段如何设置随时间更新?

表结构设计如下:

CREATE TABLE `t_time` (`id` int(12) NOT NULL,`value` varchar(255) DEFAULT NULL COMMENT '数值',`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

注意上边的创建时间和更新时间,默认值设置为CURRENT_TIMESTAMP,即为当前时间,数据创建的时间就会赋值为当前时间。设置为ON UPDATE CURRENT_TIMESTAMP,当数据修改时就会随更新数据而更新时间。管理页面设置如下:

2.3 字段长度够用即可

一定不要随意设置,只要够用即可。例如:varchar(255),不要随便设置这么长度。虽然是变长存储,但是对于查询依然有损性能。

2.4 小数的字段类型选择,一定要选择decimal

示例,表结构如下:

CREATE TABLE `t_calc` (`id` int(12) NOT NULL,`money` float DEFAULT NULL COMMENT '金额',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

表中插入数据如下:

INSERT INTO `ys_t1`.`t_calc`(`id`, `money`) VALUES (1, 0.1);
INSERT INTO `ys_t1`.`t_calc`(`id`, `money`) VALUES (2, 0.9);
INSERT INTO `ys_t1`.`t_calc`(`id`, `money`) VALUES (3, 0.2);
select sum(money) from t_calc ;

查询结果:

所以,小数一定要用decimal类型

2.5 int(1) 和 int(12)是能存一样范围数据吗?

答案:是。

很奇怪,大家可以试一下。

2.6 varchar(5)字段的数据长度为多少?

如果存的全是汉字,则长度为15;

如果存的全是字母或数字,则长度为5;

我们可以使用函数LENGTH()测试一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/313971.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

错题总结五

一. 操作访问字节个数问题 这道题考察的是指针有关的知识,而这种指针的知识我们提到过 指针相关知识(入门)-CSDN博客 指针相关知识(进阶)-CSDN博客 在这里,我们复习一下。在指针里,int有4个字节,short有2个字节,换句…

水果软件2024FL Studio21.3mac苹果中文版

FL STUDIO21发布,提供您一直在等待的出色工作流程功能。通过新效果、多个播放列表曲目选择和无所畏惧的撤消一切编辑,将您的音乐带入2024年。FL Studio21中文完整版是一个功能齐全、开放式架构的PC音乐创作和制作环境。它具有基于音乐音序器的图形用户界…

二、RK3588-安装Opencv-4.8.1(C++版本)

1.前言 OpenCV是一个跨平台的计算机视觉和机器学习软件库,基于Apache2.0许可(开源)发行。它可以在Linux、Windows、Android和Mac OS操作系统上运行。OpenCV由一系列C函数和少量C类构成,同时提供了Python、Ruby、MATLAB等语言的接口…

神秘的Cookie和Session

Cookie 1.Cookie是什么? Cookie是浏览器提供的持久化储存数据的方式。 2.从哪里来? Cookie从服务器中来,存储到客户端中。一个客户端就对应着一个浏览器。 服务器代码中决定了什么样的数据会储存到客户端中,通过HTTP相应的Se…

常见位运算模板方法总结(包含五道例题)

哈喽大家好&#xff0c;今天博主给大家带来算法基础常见位运算的模板&#xff0c;可以说大家遇到的百分之九十与位运算有关的题都可以用得上。话不多上我们上干货&#xff1a; 一.基础位运算符 << 左移运算符 >> 右移运算符 ~ 取反 & 与运算 | …

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈

深入浅出图解C#堆与栈 C# HeapingVS Stacking第一节 理解堆与栈 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工作原理](https://mp.csdn.n…

Leetcode每日一题周汇总 (12.24-12.30)

Leetcode每日一题周汇总 (12.24-12.30) 1.Sunday (12.24) 题目链接&#xff1a;1954. 收集足够苹果的最小花园周长 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你一个用无限二维网格表示的花园&#xff0c;每一个 整数坐标处都有一棵苹果树。整数坐标…

消息中间件常见知识点

一&#xff1a;消息队列的主要作用是什么&#xff1f; 1.消息队列的特性&#xff1a; 业务无关&#xff0c;一个具有普适性质的消息队列组件不需要考虑上层的业务模型&#xff0c;只做好消息的分发就可以了&#xff0c;上层业务的不同模块反而需要依赖消息队列所定义的规范进行…

【ROS2】MOMO的鱼香ROS2(四)ROS2入门篇——ROS2节点通信之话题与服务

ROS2节点通信之话题与服务点 引言1 理解从通信开始1.1 TCP&#xff08;传输控制协议&#xff09;1.2 UDP&#xff08;用户数据报协议&#xff09;1.3 基于共享内存的IPC方式 2 ROS2话题2.1 ROS2话题指令2.2 话题之RCLPY实现2.2.1 编写发布者2.2 2 编写订阅者2.2.3 运行测试 3 R…

一骑绝尘!维乐携手骑行侠客轻风逆旅带你解锁冬日逆旅

是逆风冬旅还是冻旅&#xff1f;冬日似乎都被骑友们默认做事应该闭关闭的时间了&#xff0c;空气中萧瑟的寒风仿佛是穿透我们的骨膜&#xff0c;当我还在路上瑟瑟发抖的时候&#xff0c;此时一位公路骑行侠正在开启他的冬日旅途~      以下是来自他的自诉&#xff1a;   …

Codeforces Round 900 (Div. 3)(A-F)

比赛链接 : Dashboard - Codeforces Round 900 (Div. 3) - Codeforces A. How Much Does Daytona Cost? 题面 : 思路 : 在序列中只要找到k&#xff0c;就返回true ; 代码 : #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)…

easyx的窗口函数

文章目录 前言一、EasyX的颜色二、EasyX的坐标和设备1&#xff0c;EasyX的坐标2&#xff0c;EasyX的设备 三、窗口函数1&#xff0c;初始化窗口函数2&#xff0c;关闭绘图窗口3&#xff0c;设置窗口背景板颜色4&#xff0c;清空绘图设备 前言 easyx是针对c的图形库&#xff0c;…