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

news2024/11/23 11:30:21

目录

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.coloradmin.cn/o/1350805.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

月薪过万,突破“创业失败+外卖小哥”标签,他这样从什么都不懂晋升为测试团队骨干~

何人年少不轻狂,一身疲惫一人扛。 只有走出学校的大门独自在社会上闯荡一番后才能够切身体会这句话的含义。 哪个少年没有志比天高的崇高的理想,然而现实却是命比纸薄的真实写照。任何一个未正式踏入社会的青年面对未来都是充满激情的!真正走向社会才发…

十大排序的个人总结之——冒泡排序、插入排序

同样,这两几乎也是被淘汰了的算法,尽管它们是稳定的,但是时间复杂度没人喜欢,了解一下就好,没啥好说的,注意最后一句话就行了 一,冒泡排序 1. 算法步骤 共n-1趟,谁两敢冒泡就换了…

vue保姆级教程----深入了解 Vue Router的工作原理

📢 鸿蒙专栏:想学鸿蒙的,冲 📢 C语言专栏:想学C语言的,冲 📢 VUE专栏:想学VUE的,冲这里 📢 CSS专栏:想学CSS的,冲这里 &#x1f4…

2024年最新版 Ubuntu 20+ 上安装 Docker

2024年最新版 Ubuntu 20 上安装 Docker 一、前言 在网上搜了一些安装docker的方法,怎么说感觉良莠不齐,参考GPT整理一下来自GPT4这边的安装docker的解决方法,实测能用》2024.1.2,大概耗时7分钟左右(在没报错的情况下…

深度学习|2.4 梯度下降

如上图, J ( w , b ) J(w,b) J(w,b)是由w和b两个参数共同控制的损失函数,损失是不好的东西,所以应该求取合适的w和b使得损失最小化。 为了简单考虑,可以先忽略参数b。 斜率可以理解成在朝着x正方向移动单位距离所形成的损失值的变…

Springer build pdf乱码

在textstudio中编辑时没有错误,在editor manager生成pdf时报错。 首先不要改源文件,着重看你的上传顺序: 将.tex文件,.bst文件,.cls文件,.bib文件, .bbl文件的类型,在editor manager中是Item。…

大数据机器学习GAN:生成对抗网络GAN全维度介绍与实战

文章目录 大数据机器学习GAN:生成对抗网络GAN全维度介绍与实战一、引言1.1 生成对抗网络简介1.2 应用领域概览1.3 GAN的重要性 二、理论基础2.1 生成对抗网络的工作原理2.1.1 生成器生成过程 2.1.2 判别器判别过程 2.1.3 训练过程训练代码示例 2.1.4 平衡与收敛 2.2…

Python爬虫---selenium基本使用

为什么使用selenium? 使用urllib.request.urlopen()模拟浏览器有时候获取不到数据,所以使用selenium (1) selenium是一个用于web应用程序测试的工具 (2) selenium 测试直接运行在浏览器中,就像真正的用户在操作一样 (3) 支持通过各种driver (FirfoxDri…

工单系统搭建方案 低代码平台快速开发客服工单系统

随着企业数字化转型的加速,工单系统已成为企业运营管理的重要工具之一。通过工单系统,企业可以高效地管理任务、工作流程和业务流程。而低代码平台作为快速应用开发的方式,为企业搭建工单系统提供了更加便捷和灵活的解决方案。本文将介绍如何…

2012年第一届数学建模国际赛小美赛B题大规模灭绝尚未到来解题全过程文档及程序

2012年第一届数学建模国际赛小美赛 B题 大规模灭绝尚未到来 原题再现: 亚马逊是地球上现存最大的雨林,比地球上任何地方都有更多的野生动物。它位于南美洲大陆的北侧,共有9个国家:巴西、玻利维亚、厄瓜多尔、秘鲁、哥伦比亚、委…

让电脑变得更聪明——用python实现五子棋游戏

作为经典的棋类游戏,五子棋深受大众喜爱,但如果仅实现人与人的博弈,那程序很简单,如果要实现人机对战,教会计算机如何战胜人类,那就不是十分容易的事了。本文我们先从简单入手,完成五子棋游戏的…

C# OpenCvSharp读取rtsp流录制mp4可分段保存

软件界面: 测试环境: VS2019 .NET Framework 4.7.2 OpencvSharp4.8.0 输入RTSP流地址即可拉取RTSP流,支持抓拍和录制RTSP流视频,且支持支持按固定时间保存,比如我想5分钟保存一个视频,设置保存间隔为30…

英飞凌TC3xx之一起认识GTM系列(一)先来认识GTM架构

英飞凌TC3xx之一起认识GTM系列(一)先来认识GTM架构 1 先来认识GTM的通用架构2 概览2.1 架构的简要说明2.2 架构概述1 先来认识GTM的通用架构 GTM系统使用GTM全局时钟fGTM 运行(本文称为SYS_CLK)。 特点如下: GTM模块由两个主要部分组成: 由博世设计的GTM IP v3.1.5.1 …

leaflet学习笔记-leaflet-ajax获取数据(五)

前言 地图开发中都会用一些GeoJSON数据进行渲染,这是用就会需要加载GeoJSON数据,这时就可以使用leaflet-ajax进行数据的获取 数据准备 本文通过阿里云的地图选择器(DataV.GeoAtlas官网)可以找到云南省的GeoJSON数据&#xff0c…

Vue3 watch 的使用,如何监听一个对象中的属性值的变化 vue3 + ts + vite

Vue3 watch 的使用,如何监听一个对象中的属性值的变化 由 vue2 转到 vue3 ts vite 之后都不会写这些玩意了。搜了下,找到了答案: vue2 的 watch export default {watch: {$route.query.id(newValue){// 可以这样监听路由的变化},formUse…

漏洞分析|jeecg-boot 未授权SQL注入漏洞(CVE-2023-1454)

1.漏洞描述 JeecgBoot的代码生成器是一种可以帮助开发者快速构建企业级应用的工具,它可以通过一键生成前后端代码,无需写任何代码,让开发者更多关注业务逻辑。 jeecg-boot 3.5.0版本存在SQL注入漏洞,该漏洞源于文件 jmreport/qu…

华为鸿蒙运行Hello World

前言: 从11月中旬开始通过B站帝心接触鸿蒙,至今一个半月左右不到,从小白到入坑,再到看官网案例,分析案例,了解技术点,还需要理清思路,再写博客,在决定写 <Har…

七、HTML 文本格式化

一、HTML 文本格式化 加粗文本斜体文本电脑自动输出 这是 下标 和 上标 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>HTML文本格式化</title> </head><body><b>加粗文本</b><br>…

商用密码应用安全评估实施方案(50页PPT)

商用密码应用安全评估:简称密评&#xff0c;是指在采用商用密码技术、产品和服务集成建设的网络和信息系统中&#xff0c;对其密码应用的合规性、正确性和有效性进行评估的过程。这一评估过程是根据《中华人民共和国密码法》等相关法规和标准进行的。 合规性评估主要是检查密码…

Premiere Pro教程(全)

项目面板 素材箱 工具面板 轨道选择工具 波纹编辑工具 视频裁剪工具 时间轴面板 时间轴相关快捷键 素材编辑 源面板 插入 节目面板 基本声音 效果面板 效果快捷键 视频效果 视频过渡 全部面板 通用快捷键 效果控件 效果控件概述 码表 运动 不透明度 字幕组 字幕…