建设企业网站服务器/免费行情软件网站下载大全

建设企业网站服务器,免费行情软件网站下载大全,移动网站 做优化,北京做视觉网站目录 前言: 1,数据类型的分类 ​编辑 2 ,数值类型 2.1 tinyint类型 2.2 bit类型 2.3 小数类型 2.3.1 float类型 2.3.2 decimal类型 3,字符串类型 3.1 char 3.2 varchar 3.3 char与varchar的比较 3.4日期和时间类型 3.5 …

目录

前言: 

1,数据类型的分类

 ​编辑

 2 ,数值类型

2.1 tinyint类型

2.2  bit类型

 2.3 小数类型

2.3.1 float类型 

 2.3.2 decimal类型

 3,字符串类型

3.1 char

 3.2 varchar

3.3 char与varchar的比较

3.4日期和时间类型

 3.5 enum和set


前言: 

MySQL 是一个流行的开源关系型数据库管理系统。它支持多种数据类型,用于存储和管理数据。

MySQL提供了多种数据类型,合理选择数据类型对存储效率,查询性能和数据 准确性至关重要,本篇对MySQL 支持的主要数据类型分类及详细说明。

1,数据类型的分类

 

 

 

 2 ,数值类型

2.1 tinyint类型

tinyint大小为一个字节,无符号数的取值范围在0~255,有符号数的取值范围在-128~127。

使用示例:

  • 创建一个包含tinyint数据类型的表

create table if not exists t1( num tinyint);

  •  向t1中插入数据

mysql> insert into t1 values(1);

Query OK, 1 row affected (0.01 sec)

 

mysql> insert into t1 values (-127);

Query OK, 1 row affected (0.01 sec)

 

mysql> insert into t1 values(-128);

Query OK, 1 row affected (0.00 sec)

  • 打印t1表中的信息 

select * from t1;

 

  •  插入超出范围的数字

mysql> insert into t1 values (-129);

ERROR 1264 (22003): Out of range value for column 'num' at row 1

 

mysql> insert into t1 values(128);

ERROR 1264 (22003): Out of range value for column 'num' at row 1

mysql>

 

将tiny设置为无符号类型,此时的数据范围就是0~255。

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

插入数据:

 

总结: 

MySQL中,整型可以指定符号的,默认是有符号的,通过unsigned可以来标识字段类型为无符号类型。

MySQL也不支持 插入超出数据类型范围的数,否则直接拦截。所以 可以保证插入的时候数据一定是合法的。在MySQL中,数据类型本身就是一种约束,所以无论使用者是否可以熟练的使用MySQL,这种约束都可以很好的保证数据是可预期的,完整的,合法的。 

2.2  bit类型

bit[(M)]:位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。

  • 创建一个包含bit类型的数据表并插入数据

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

insert into t3 values(1,0);

insert into t3 values(2,1);

insert into t3 values(3,2);//err,默认只能插入0或1

 

  • 创建一个大小为8的bit类型数据表 

create table if not exists t4( id int,num bit(8));

insert into t4 values(1,25);
insert into t4 values(2,100);

insert into t4 values(2,255);
insert into t4 values(2,256);//err,同样不能越界 

 

 2.3 小数类型

 

2.3.1 float类型 

float[(m,d)][unsigned]:m指定显示长度,d指定小数位数,占4个字节。

  • 创建一个长度为4,小数部分长度为2的小数的数据表 

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

注:float(4,2)表示的数据范围是-99.99~99.99,MySQL在保存值时会四舍五入。 

  • 插入数据

insert into t5 values(1,-99.99);
insert into t5 values(2,0);
 insert into t5 values(3,99.99);
 insert into t5 values(3,99.991);
insert into t5 values(3,59.885);
insert into t5 values(3,100.00);//err

insert into t5 values(3,59.886);

 

 

同理,如果将float定义为unsigned无符号类型,那么float(4,2)的取值范围时0~99.99.

 2.3.2 decimal类型

decimal[(m,d)][unsigned]:定点数m指定长度,d表示小数点的位数。

  • decimal(5,2)表示 的数据范围:-999.99~999.99
  • decimal(5,2) unsigned表示的数据范围:0~999.99
  • float和decimal很像,但是有区别,表示的精度不一样。

创建一个数据表,长度为10,小数部分为8,比较float和decimal。 

create table if not exists t6( num1 float(10,8), num2 decimaimal(10,8) );

insert into t6 values (23.12345612,23.12345612);

insert into t6 values (12.12345678,12.12345678); 

 

 我们看到在数据一样的情况下,decimal的小数精度高于float。float表示的精度大约是7位。decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略,默认为0,如果m被省略,默认是10。 

 3,字符串类型

3.1 char

char[(L)]:固定长度字符串,L是可以存储的长度,单位为字符,最大可以存储255个字符 。

  • 创建包含长度为2的字符串的数据表 

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

  • 插入数据 

insert into t7 values(1,'张三');
insert into t7 values(2,'李四');
insert into t7 values(3,'王五');

 

char(2)表示可以存储两个字符,可以是字母或者汉字,但是不能超过255个 。 

 

 3.2 varchar

varchar[(L)]:可变长度字符,L表示字符长度,最大长度为65535个字节。

  • 创建一个长度为6的字符串的数据表

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

varchar(6)表示可以存储6给字符。

  • 插入数据 

insert into t8 values(100,'hello');

insert into t8 values(100,'我爱你,中国');

insert into t8 values(100,'我爱敲代码!!');//err

 

关于varchar(len),len到底是多大,和表的编码密切相关。

  •  varchar长度可以指定为0~65535之间的值,但是有1~3个字节用来存储数据的大小,所以说有效字节数是65532
  • 当我们表的编码是utf8时,varchar(n)的参数n的最大值是65532/3=21844(因为utf8中,一个字符占3个字节),如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占个字节)。

 

3.3 char与varchar的比较

 

如何选择定长或变长字符串:

  • 如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号,md5。
  • 如果数据长度有变化,就使用变长(varchar),比如:名字,地址,但是你要保证最长的能存的进去。
  • 定长的磁盘空间比较浪费,但是效率高。
  • 变长的磁盘空间比较节省,但是效率低。
  • 定长的意义是,直接开辟好对应的空间
  • 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少

3.4日期和时间类型

 常见的日期有如下三个:

  • date:日期'yyyy-mm-dd',占用3个字节
  • datetime:时间日期格式'yyyy-mm-dd HH:ii:ss',表示范围从1000到9999,占用8个字节。
  • timestamp:时间戳,从1970年开始的yyyy-mm-dd HH:ii:ss格式和datetime完全一致,占用4个字节。表示现在 的时间。
  •  创建带时间的数据表

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

  •  插入数据

insert into birthday (t1,t2) values ('1997-7-1','2008-8-8 12:1:1');

 

 3.5 enum和set

enum:枚举,单选类型

enum('选项1','选项2','选项3',...)

该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,…最多65535个;

set:集合,多选类型

set(’选项值1‘,‘选项值2’,‘选项值3’,...)

该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,…最多64个。

  • 创建一个含有set的数据表 

create table votes(username varchar(30), hobby set('登山','游泳','篮球','武术'),gender enum('男','女'));

  • 插入数据 

insert into votes values ('雷锋','登山,武术','男');

insert into votes values ('张三','登山,武术','男');
 insert into votes values ('李四','游泳','女');

insert into votes values ('赵六','篮球','2');
insert into votes values ('王五','足球','男');//err

 

集合查询使用find_in_set函数 

find_in_set(sub,str_list) :如果 sub str_list 中,则返回下标;如果不在,返回0
str_list 用逗号分隔的字符的字符串。

select * from votes where find_in_set('登山',hobby); 

 

 

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

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

相关文章

nuxt常用组件库html-validator应用解析

html-validator 主要用于自动验证nuxt服务器呈现的HTML(SSR和SSG),以检测可能导致水合错误的HTML常见问题,有助于减少水合错误,检测常见的可访问性错误。 安装 npx nuxilatest module add html-validator配置 若自动更新nuxt.config.ts配置文…

智能图像处理平台:图片管理

接着我们讲图片管理,先实现图片基础的增删改查,再去考虑图像处理。 主要是,我们需要完成查询时,查询的图片的上传者的角色等级小于等于我们当前登陆账号。 后端controller: package com.llpp.controller;import cn.…

大模型知识蒸馏技术(8)——知识蒸馏应用场景

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 知识蒸馏概述 知识蒸馏是一种将大型复杂模型(教师模型)的知识迁移到小型简单模型(学生模型)的技术。其核心原理是通过教师模型的输出(通常是softmax后的概率分布)来指导学生模型的训练,…

INT202 Complexity of Algroithms 算法的复杂度

文章目录 1. 前言1.1 算法(Algorithms)和数据结构(Data Structure)1.2 什么是好的算法?1.3 算法分析1.3.1 实验分析(Experimental Analysis)1.3.2 理论分析1.3.2.1 伪代码(Pseudo-co…

BDF报告翻译简介后:关于A φ方法criterion引理1如何由范数导出内积

关于A φ方法criterion 引理1 如何由范数导出内积 在数学中,特别是在泛函分析中,给定一个范数,可以定义一个与之相关的内积。这个过程不是总是可能的,但当一个赋范向量空间是完备的且满足平行四边形恒等式时,可以导出…

olmOCR:使用VLM解析PDF

在PDF解析中,目前主流的开源工具包括Minuer、GOT OCR等。主要都是通过飞桨等OCR套件组装的一套pipeline,或者直接通过VLM解析图像。 #一、 olmOCR是使用VLM进行的端到端的PDF文档解析 二、document-anchoring 与上述的不同在于,olmOCR使用…

Nginx 代理配置导致浏览器应用网页页面加载失败的分析与解决

Nginx 代理配置导致应用页面加载失败的分析与解决 前期部署信息: 部署DM数据库DEM时,配置了nginx代理,conf配置内容如下: charset utf-8;client_max_body_size 128M;listen 4567;server_name 192.168.1.156;root /opt/h5/;index…

Windows 11【1001问】查看Windows 11 版本的18种方法

随着技术的飞速发展,操作系统作为连接硬件与软件的核心桥梁,其版本管理和更新变得尤为重要。对于用户而言,了解自己设备上运行的具体Windows 11版本不仅有助于优化系统性能,还能确保安全性和兼容性。然而,不同场景和需…

【Godot4.3】自定义简易菜单栏节点ETDMenuBar

概述 Godot中的菜单创建是一个复杂的灾难性工作,往往无从下手,我也是不止一次尝试简化菜单的创建。 从自己去年的发明“简易树形数据”用于简化Tree控件获得灵感,于是尝试编写了用于表示菜单数据的EasyMenuData类,以及对应的纯文…

二、IDE集成DeepSeek保姆级教学(使用篇)

各位看官老爷好,如果还没有安装DeepSeek请查阅前一篇 一、IDE集成DeepSeek保姆级教学(安装篇) 一、DeepSeek在CodeGPT中使用教学 1.1、Edit Code 编辑代码 选中代码片段 —> 右键 —> CodeGPT —> Edit Code, 输入自然语言可编辑代码,点击S…

Rohm发布TOLL封装650V GaN HEMT,引领汽车用GaN器件大规模生产新浪潮

Rohm震撼发布TOLL封装650V GaN HEMT,引领汽车用GaN器件大规模生产新浪潮。在创新的TOLL(TO LeadLess)封装技术的怀抱中,Rohm精心孕育出650V GaN HEMT这一瑰宝,此技术正如一股强劲东风,日益吹拂于高功率处理…

Spring Boot 3.x 基于 Redis 实现邮箱验证码认证

文章目录 依赖配置开启 QQ 邮箱 SMTP 服务配置文件代码实现验证码服务邮件服务接口实现执行流程 依赖配置 <dependencies> <!-- Spring Boot Starter Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr…

《Effective Objective-C》阅读笔记(下)

目录 内存管理 理解引用计数 引用计数工作原理 自动释放池 保留环 以ARC简化引用计数 使用ARC时必须遵循的方法命名规则 变量的内存管理语义 ARC如何清理实例变量 在dealloc方法中只释放引用并解除监听 编写“异常安全代码”时留意内存管理问题 以弱引用避免保留环 …

【AD】3-10 原理图PDF导出

文件—智能PDF 多页原理图导出 导出设置时选择工程&#xff0c;可自行选择导出一页或多页原理图&#xff0c;一般PCB不用导出

【在线用户监控】在线用户查询、强退用户

文章目录 在线用户监控在线用户监控API(RestController)当前在线会话在线用户查询强退用户知识扩展: JwtJwtTokenUtil生成jwt解析token登录授权的实现:json web token + redis + springboot在线用户监控 在线用户监控API(RestController) @RestController @Tag(name = &qu…

超详细,多图文介绍redis集群方式并搭建redis伪集群

超详细&#xff0c;多图文介绍redis集群方式并搭建redis伪集群 超多图文&#xff0c;对新手友好度极好。敲命令的过程中&#xff0c;难免会敲错&#xff0c;但为了截好一张合适的图&#xff0c;一旦出现一点问题&#xff0c;为了好的演示效果&#xff0c;就要从头开始敲。且看且…

992. K 个不同整数的子数组

目录 一、题目二、思路2.1 解题思路2.2 代码尝试2.3 疑难问题 三、解法四、收获4.1 心得4.2 举一反三 一、题目 二、思路 2.1 解题思路 2.2 代码尝试 class Solution { public:int subarraysWithKDistinct(vector<int>& nums, int k) {//需要有数据结构来存储数组…

领域驱动设计:事件溯源架构简介

概述 事件溯源架构通常由3种应用设计模式组成,分别是:事件驱动(Event Driven),事件溯源(Event Source)、CQRS(读写分离)。这三种应用设计模式常见于领域驱动设计(DDD)中,但它们本身是一种应用设计的思想,不仅仅局限于DDD,每一种模式都可以单独拿出来使用。 E…

PT2035 TWS 蓝牙耳机双触控双输出 IC

1. 产品概述 PT2035 是一款支持入耳检测的蓝牙耳机专用触摸芯片&#xff0c;该芯片具有宽工作电压、低功耗、高抗 干扰能力的特性。 2. 主要特性 工作电压范围&#xff1a; 2.4~5.5V 待机电流约 2.5uAV DD3V/CMOD5nF 入耳有效&#xff0c;无触摸时工作电流约 8uAV DD3…

AI编程界的集大成者——通义灵码AI程序员

一、引言 随着软件行业的快速发展和技术的进步&#xff0c;人工智能&#xff08;AI&#xff09;正在成为软件开发领域的一个重要组成部分。近年来&#xff0c;越来越多的AI辅助工具被引入到开发流程中&#xff0c;旨在提高效率、减少错误并加速创新。在这样的背景下&#xff0…