数据库操作:数据类型

0. 铺垫

1.数值类型

 注:此图的最大值都要减1;因为我的错误,后面会改正;

1.0、tinyint

类型大小——1字节

create table tt1(num tinyint);

insert into tt1 values(1);

insert into tt1 values(128); -- 越界插入,报错

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

num tinyint unsigned        //无符号极小整数

num tinyint                         //有符号极小整数

如果我们向mysql特定的类型中插入不合法的数据,mysql一般要拦截我们,不让我们做对应的操作;反过来说,mysql中的数据一定是合法的;数据类型本身也是一种约束;约束使用者,进行正确的插入;

注意:尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不 下,与其如此,还不如设计时,将int类型提升为bigint类型。

1.1、字节类型(位类型)

bit类型

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

 举例:

create table t4 ( id int, a bit(8));       

insert into t4 values(10, 10);       

select * from t4; #发现很怪异的现象,a的数据10没有出现

+------+------+

|   id   |    a   |

+------+------+

| 10    |         |

+------+------+

#bit字段在显示时,是按照ASCII码对应的值显示

1.2、float类型

浮点类型

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

举例:

mysql> create table t7(id int, salary float(4,2));

insert into t7 values(100, -0.1);

注:若字段定义为float[(4,2)] ,插入60.123;小数部分则会进行四舍五入,若整数部分为100.00,则会插入错误,为99.995,也会插入失败,整数部分朝纲了;

double的使用方式和float是一样的

1.3、decimal

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

举例:

create table t8 ( id int, salary float(10,8), salary2 decimal(10,8)); 

insert into t8 values(100,23.12345612, 23.12345612);

select * from t8;        //float的小数点精度在7位;

decimal的用法和float一样,但是decimal的精度更高,不会像float一样做更多的优化;float的精度大约是7位,decimal的整数最大位数m是65,支持小数最大位数d是30.如果d被省略,默认是0,如果m被省略,默认是10;

2.字符串类型

2.1char类型

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

举例:

create table t9(id int, name char(2)); 

insert into t9 values(100, 'ab');

insert into t9 values(101, '中国');

create table tt10(id int ,name char(256));        //越界;错误;

mysql的字符和语言类的字节代表的含义不同,C语言中一个汉字代表2个字节(因编码不同),mysql中,一个汉字就是一个字符,一个字母也是一个字符;

2.2varchar类型

varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节;是21845个字符;utf8编码一个字符为3个字节

L代表的是varchar的上限,用户用多少空间就开辟多少空间,但是有上限L;

如果一行中存在其他字段,则varchar不会那么大

举例:

create table tt10(id int ,name varchar(6)); --表示这里可以存放6个字符

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

3.日期类型

常用的日期有如下三个:

date :日期 'yyyy-mm-dd' ,占用三字节

datetime 时间日期格式 'yyyy-mm-dd HH:ii:ss' 表示范围从 1000 到 9999 ,占用八字节

timestamp :时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用 四字节

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

insert into birthday(t1,t2) values('1997-7-1','2008-8-8 12:1:1'); --插入两 种时间

每次插入时间戳会自动更新事件

4.enum和set

4.1enum:枚举,“单选”类型;

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

//选项依次对应的数字为1,2,3……;

该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;而且出于效率考 虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,....最多65535 个;当我们添加枚举值时,也可以添加对应的数字编号。

举例:

create table votes(

-> username varchar(30),

-> hobby set('登山','游泳','篮球','武术'), //登山为1,游泳为2;登山游泳是3;类比位图;

-> gender enum('男','女'));        //男对应1,女对应2;

//插入数据;

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

insert into votes values('Juse','登山,武术',2);

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

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

相关文章

【Android】 IconFont的使用

SVG 的特点: 矢量图形:SVG 使用基于路径的矢量图形,这意味着图形可以无限放大而不失真,非常适合需要多种分辨率的应用。 可伸缩性:SVG 文件的大小通常比位图小,这使得它们在网页上加载更快。 编辑和创作&…

Text-to-SQL方法研究

有关Text-to-SQL实现细节,可以查阅我的另一篇文章text-to-sql将自然语言转换为数据库查询语句 1、面临的挑战 自然语言问题往往包含复杂的语言结构,如嵌套语句、倒装句和省略等,很难准确映射到SQL查询上。此外,自然语言本身就存在歧义,一个问题可能有多种解读。消除…

11.C++程序中的常用函数

我们将程序中反复执行的代码封装到一个代码块中,这个代码块就被称为函数,它类似于数学中的函数,在C程序中,有许多由编译器定义好的函数,供大家使用。下面就简单说一下,C中常用的函数。 1.sizeof sizeof函…

spring boot 项目中redis的使用,key=value值 如何用命令行来查询并设置值。

1、有一个老项目,用到了网易云信,然后这里面有一个AppKey,然后调用的时候要在header中加入这些标识,进行与服务器进行交互。 2、开发将其存在了redis中,一开始的时候,我们测试用的老的key,然后提…

ROS学习笔记(二):鱼香ROS — 超便捷的一键安装/配置/换源指令(Ubuntu/ROS/ROS2/IDE等)

文章目录 前言鱼香ROS1 一键安装:快速搭建开发环境2 具体使用2.1 如何开始?2.2 我的常用配置方案2.3 安装示例 3 总结相关链接 前言 关于Ubuntu与ROS的常规安装,可以看这几篇。 SLAM实操入门(一):在已有…

【若依RuoYi-Vue | 项目实战】帝可得后台管理系统(三)

文章目录 一、商品管理1、需求说明2、生成基础代码(1)创建目录菜单(2)配置代码生成信息(3)下载代码并导入项目 3、商品类型改造(1)基础页面 4、商品管理改造(1&#xff0…

【ADC】使用仪表放大器驱动 SAR 型 ADC 时的输入输出范围

概述 本文学习于TI 高精度实验室课程,介绍使用仪表放大器时 SAR ADC 驱动放大器的注意事项。具体包括:介绍如何使用仪表放大器设计数据转换器驱动电路。 仪表放大器(Instrumentation Amplifier,下文简称 INA)可抑制输…

开关电源为什么要进行负载测试,负载测试都包含哪些项目?

开关电源在现代电子设备中占据着重要的地位,其性能的稳定性和可靠性直接影响着电子设备的正常运行。为了确保开关电源的质量,需要对其进行负载测试。负载测试可以模拟实际工作环境中的负载情况,检测开关电源在不同负载条件下的输出特性、稳定…

wireshark使用要点

目录 IP过滤 端口过滤 内容过滤 过滤udp 过滤tcp IP过滤 ip.src XXX.XXX.XXX.XXX 只显示消息源地址为XXX.XXX.XXX.XXX的信息 ip.dst XXX.XXX.XXX.XXX 只显示消息目的地址为XXX.XXX.XXX.XXX的信息 ip.addr XXX.XXX.XXX.XXX显示消息源地址为XXX.XXX.XXX.XXX&#xff0…

Python库matplotlib之四

Python库matplotlib之四 小部件(widget)RadioButtons构造器APIs应用实列 Slider构造器APIs应用实列 小部件(widget) 小部件(widget)可与任何GUI后端一起工作。所有这些小部件都要求预定义一个Axes实例,并将其作为第一个参数传递。 Matplotlib不会试图布局这些小部件…

DTH11温湿度传感器

DHT11 是一款温湿度复合传感器,常用于单片机系统中进行环境温湿度的测量。以下是对 DHT11 温湿度传感器的详细讲解: 一、传感器概述 DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感…

【STM32】江科大STM32笔记汇总(已完结)

STM32江科大笔记汇总 STM32学习笔记课程简介(01)STM32简介(02)软件安装(03)新建工程(04)GPIO输出(05)LED闪烁& LED流水灯& 蜂鸣器(06)GPIO输入(07)按键控制LED 光敏传感器控制蜂鸣器(08)OLED调试工具(09)OLED显示屏(10)EXTI外部中断(11)对射式红外传感器计次 旋转编码器…

C++:模拟实现vector

目录 成员变量与迭代器 size capacity empty 迭代器有关函数 实现默认成员函数的前置准备 reserve ​编辑 ​编辑 push_back 构造函数 无参构造 迭代器区间构造 n个val来进行构造 析构函数 拷贝构造函数 赋值重载 增删查改 clear resize pop_back inser…

git add成功后忘记commit的文件丢了?

本文目标:开发人员,在了解git fsck命令用法的条件下,进行git add成功但由于误操作导致丢失的文件找回,达到找回丢失文件的程度。 文章目录 1 痛点2 解决方案3 总结/练习 1 痛点 开发过程中,分支太多(基线分…

通信工程学习:什么是MIMO多输入多输出技术

MIMO:多输入多输出技术 MIMO(Multiple-Input Multiple-Output)多输入多输出技术是一种在无线通信中广泛应用的技术,它通过利用多个天线进行数据传输和接收,可以显著提高无线通信系统的性能和容量。以下是对MIMO技术的详细解释: 一、定义与原理 MIMO技术…

铺铜修改后自动重铺

很多初学者对于敷铜操作感到比较麻烦:为什么每次打过孔,修改走线后都需要手动右击-重新修改敷铜。如何提升layout的效率? 版本:Altium Designer 21.9.2 首先,点击面板右边的小齿轮,进入设置 接下来&#…

【国庆要来了】基于Leaflet的旅游路线WebGIS可视化实践

前言 转眼2024年的国庆节马上就要来临了,估计很多小伙伴都计划好了旅游路线。金秋十月,不管是选择出门去看看风景,还是选择在家里看人。从自己生活惯了的城市去别人生活惯了的城市,去感受城市烟火、去感受人文风景,为2…

SpringBoot整合JPA 基础使用

一、什么是JPA ‌‌1.JPA的定义和基本概念‌‌ ‌JPA(Java Persistence API)‌是Java中用于进行持久化操作的一种规范,它定义了一系列用于操作关系型数据库的API接口。通过这些接口,开发人员可以方便地进行数据库的增删改查等操…

DC00021基于springboot问卷调查管理系统web项目调查问卷管理系统MySQL(附源码)

1、项目功能演示 DC00021基于springboot问卷调查管理系统web项目调查问卷管理系统MySQL 2、项目功能描述 基于springboot问卷调查管理系统包括以下功能: 1、系统登录、系统注册 2、创建题目、题目信息查看 3、创建问卷、我的问卷信息查看 4、创建活动、我的活动信息…

看Threejs好玩示例,学习创新与技术(ThreePipe)

下面这个示例我觉得特别棒,我会推荐给我们的美工,以后产品的宣传图用它。比如下面这个图,不需要PS,仅需拖拽一个照片进去,它会自动铺到笔记本电脑上。完成后点击截图就可以得到高清图片,不需要摆拍和PS。大…