SQL中常见的数据类型

news2024/11/15 11:05:37

SQL中常见的数据类型

目录

    • 概述
    • 一、整型
      • 分类
      • 特点
    • 二、小数
      • 分类
      • 特点
    • 三、字符型
    • 四、日期型
      • 分类
      • 特点

概述

  1. 数值型
    整数:整型
    小数:定点数、浮点数
  2. 字符型
    较短的文本:char、varchar
    较长的文本:text、blob(用于保存较长的二进制数据,例如图片)
  3. 日期型

一、整型

分类

tinyint(1个字节)、smallint(2个字节)、mediumint(3个字节)、int/integer(4个字节)、bigint(8个字节)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aLSdR2si-1676519414338)(DataType%int.PNG)]
注:它们的区别仅仅在于可保存的数值范围

特点

  1. 如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加关键字unsigned
  2. 如果插入的数值超出了范围,会报Out of range异常,并且插入的值是该数值型存储范围的临界值
  3. 如果不设置长度,会有默认的长度
  4. 长度代表了显示的最大宽度,如果数值本身不够的话会用0在左边填充,但必须搭配关键字zerofill来使用
  • 如何设置有符号和无符号

    drop table if exists tab_int;
    create table tab_int(t1 int,t2 int unsigned);#有符号
    desc tab_int;
    insert into tab_int values(-8,-8);
    select * from tab_int;#显示-8 0
    
  • Out of range问题

    insert into tab_int values(2147483648,4294967296);
    select * from tab_int;
    
  • 设置长度
    注:加了关键字zerofill,左边填补的0才会显示出来,并且如果使用了zerofill,则必须是无符号整数(不然报错)

    drop table if exists tab_int;
    create table tab_int(t1 int,t2 int unsigned,t3 int(7),t4 int(7) zerofill);
    select * from tab_int;
    insert into tab_int values(-8,123456,12,12);
    

二、小数

分类

  1. 浮点型
    float(M,D)
    double(M,D)
  2. 定点型
    dec(M,D)
    decimal(M,D)

特点

  • M:整数位数+小数位数
    D:小数位数
    如果超过范围,则插入临界值
  • M和D都可以省略
    如果是decimal,则默认M为10,D为0
    如果是float和double,则会根据插入的数值的精度来决定精度
  • 定点型的精度较高,如果要求插入数值的精度较高如货币运算等则可以考虑使用,否则一般考虑使用float
  • 原则:
    所选择的类型越简单越好,能保存的数值的类型越小越好

测试特点
(1)M与D的含义

create table tab_float(f1 float(5,2),f2 double(5,2),f3 decimal(5,2));
desc tab_float;
select * from tab_float;
insert into tab_float values(123.43,123.43,123.43);

在这里插入图片描述

insert into tab_float values(223.432,223.432,223.432);

在这里插入图片描述

insert into tab_float values(323.4,323.4,323.4);

在这里插入图片描述

insert into tab_float values(4323.4,4323.4,4323.4);#整数位超出了3

在这里插入图片描述

(2)省略M与D

drop table if exists tab_float;
create table tab_float(f1 float,f2 double,f3 decimal);
desc tab_float;

在这里插入图片描述

三、字符型

确切地,应该称为串数据(包含文本型和二进制)

较短的文本(重点介绍):

  1. char 与varchar
    在这里插入图片描述

    特点:

    写法M的意思特点空间的耗费效率
    charchar(M)最大的字符数,可以省略,默认为1固定长度的字符比较耗费稍高
    varcharvarchar(M)最大的字符数,不能省略可变长度的字符比较节省稍低

    例:如果要存储性别字段,建议使用char,如果是家庭住址字段,建议使用varchar。

  2. binary和varbinary类型
    类似于char和varchar可以用于保存较短的二进制字符串

  3. enum枚举类型

  4. set集合类型

较长的文本:
text、blob

案例:枚举类型的设置

create table tab_char(c1 enum('a','b','c'));
desc tab_char;
insert into tab_char values('a');
insert into tab_char values('b');
insert into tab_char values('c');
insert into tab_char values('d');#报错,插入失败
insert into tab_char values('A');#不区分大小写
select * from tab_char;

在这里插入图片描述

create table tab_set(s1 set('a','b','c','d'));
insert into tab_set values('a');
insert into tab_set values('a,b,c');
insert into tab_set values('A,B,B');
insert into tab_set values('a,b,c,d');
drop table if exists tab_set;
select * from tab_set;

在这里插入图片描述

四、日期型

分类

date 只保存日期
time 只保存时间
year 只保存年

datetime 保存日期+时间
timetamp 保存日期+时间

特点

字节范围时区等的影响
datetime81000-9999不受
timestamp41970-2038

timestamp比较容易受时区、语法模式和版本的影响,更能反映当前时区的真实时间

案例:关于datetime与timestamp

create table tab_datetime(d1 datetime,d2 timestamp);
insert into tab_datetime values(now(),now());

在这里插入图片描述

set time_zone='system';
show variables like 'time_zone';
set time_zone='+9:00';#修改一下时区,将东八区修改为东九区 
select * from tab_datetime;

在这里插入图片描述

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

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

相关文章

GEE学习笔记 八十二:湖北旱情分析(2019年8月-9月)

2019年8月1日至9月15日,湖北平均雨量为近53年来同期最少,仅69.4毫米。尤其是中东部地区降水异常偏少,一个半月里大多数地方的累计降水量均不足70毫米,其中洪湖、英山降水仅4毫米。鄂西东部一直到鄂东地区的降水量均比常年同期偏少…

IP协议相关特性

日升时奋斗,日落时自省 目录 1、地址管理 1.1、子网掩码 2、路由选择 针对网络层的IP协议理解 TCP/IP协议栈TCPIP 此处详细解析IPv4协议(v4版本) 4位版本:此处的取值只有两个v4 ,v6 4位首部长度 :描…

【WPF】WindowChrome 自定义窗口完美实现

WindowChrome 自定义窗口完美实现简介效果图自定义最小化、最大化、关闭按钮布局实现结语简介 Microsoft官网关于 WindowChome 的介绍 截取Microsoft文章的一段话:   若要在保留其标准功能时自定义窗口,可以使用该 WindowChrome 类。 该 WindowChrome…

多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序)

多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序) 目录 多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序)预测结果评价指标基本介绍程序设计参考资料预测结果 评价指标 训练结束: 已完成最大轮…

新建一个完整的react项目和完善初始项目

一:新建一个完整的react项目 1.环境准备 目前我的环境是 node:16.17.1 npm: 8.15.0 查看环境:1):打开命令提示符工具,利用node -v和npm -v 查看一下自己的环境,如果觉得重新卸载、安装node比较…

用记事本实现“HelloWorld”输出

一、在任意文件夹中创建一个新的文本文档文件并写入以下代码 public class Hello{public static void main (String[] args){System.out.print("Hello,World!");} } 二、修改文件名称及文件类型为 Hello.java 特别注意:文件命名必须与代码中类的名称相同…

为什么伟大的产品只专注做一件事

uber 不允许你预订出租车。亚马逊一开始只是卖书。谷歌只是一个搜索引擎。麦当劳没有餐具。不知为什么,我们仍然相信一个产品要想成功,它必须做很多事情。这通常发生在两种情况下:当新产品试图让市场相信它们是值得的,或者当公司提…

儿童蜡笔出口美国CPC认证CPSIA+ASTM963测试

蜡笔是将颜料掺在蜡里制成的笔,可有数十种颜色,画画用。蜡笔没有渗透性,是靠附着力固定在画面上,不适宜用过于光滑的纸、板,亦不能通过色彩的反复叠加求得复合色。它是儿童学习色彩画的理想工具,一些画家用…

【Spark分布式内存计算框架——Spark SQL】5. DataFrame(下)

3.3 Row DataFrame中每条数据封装在Row中,Row表示每行数据,具体哪些字段位置,获取DataFrame中第一条数据。 如何构建Row对象:要么是传递value,要么传递Seq,官方实例代码: import org.apache.…

百分点科技宣布接入百度文心一言能力

2月16日, 百分点科技宣布成为百度文心一言(英文名:ERNIE Bot)首批生态合作伙伴。后续,百分点科技将全面体验并接入文心一言的能力。百分点科技专注于数据科学理论和技术的创新实践,长期坚持基础技术和行业应…

初始QML

Qt Quick的介绍 : Qt Quick是QML的标准类型和功能库。它包括视觉类型,交互类型,动画,模型和视图,粒子效果和着色器效果。QML 应用程序开发人员可以通过单个导入语句访问所有这些功能,简单来说Qt Quick是一…

使用 Hashnode API、Typescript 和 GraphQL 将博客文章添加到您的 React 站点

在本文中,我们将:使用 Next.js 引导一个 React.js Typescript 项目。设置 Apollo GraphQL 客户端并将其集成到我们的项目中。设置 GraphQL Codegen 以生成我们可以在整个应用程序中使用的类型、类型安全查询和自定义挂钩。创建一个索引页面,其…

Failed at the node-sass@4.14.1 postinstall script

vue项目启动,安装node14.18.0版本,构建时报错: Failed at the node-sass4.14.1 postinstall script 其实在构建过程中,还出现了其他组件的各种报错,最后反思了一下,觉得是nodeJs的版本问题,最…

BIM技巧 | Revit中如何给房间填充颜色?就5步

大家在Revit平面创建好房间后,有没有觉得各房间因为没有着色而区分不明显、视觉效果一般呢? 一、今天就教给大家如何给房间填充上颜色。 01 第一步 首先,将各个房间创建好; 02 第二步 在【建筑】-【房间和面积】单击下拉菜单…

深入理解vue2.x中Object.defineproperty()和vue3.x中Proxy

前言 vue2.x中数据的双向绑定主要通过Object.defineproperty()方法实现,data中的数据改变通过Object.defineProperty()对属性设置set属性,获取通过get属性,Object.defineProperty的作用就是劫持一个对象的属性,通常我们对属性的getter和sett…

魔兽世界私服架设教程——如何搭建魔兽世界私服

TrinityCore是一个魔兽世界服务端模拟器,我们可以通过TrinityCore来学习大型网络游戏服务端的编写,从中汲取营养来编写我们自己的游戏。一、前期准备工作CPU需要支持SSE2指令集Boost版本大于等于1.59.0MySQL数据库版本大于等于5.1.0OpenSSL版本为1.0.xCM…

基于机器学习LSTM的古代汉语切分标注算法及语料库研究 完整代码+数据+论文

完整代码:https://download.csdn.net/download/qq_38735017/87382302摘 要近年来,深度学习的浪潮渗透在科研和生活领域的方方面面,本文主要研究深度学习在自然语言处理,尤其是古汉语自然语言处理方面的应用。本文旨在利用计算机帮…

C#中GDI+的矩形功能扩展

原文出处:https://haigear.blog.csdn.net/article/details/129060020 GDI发展到GDI绘制函数中的参数往往都有矩形这个参数(除绘制直线和路径),所以我们用好了矩形绘图就容易多了。 一、中心定位绘制图形 但当我们绘制一个图形时…

Towards Adversarial Attack on Vision-Language Pre-training Models

摘要虽然视觉-语言预训练模型(VLP)在各种视觉-语言(VL)任务上表现出革命性的改进,但关于其对抗鲁棒性的研究在很大程度上仍未被探索。本文研究了常用VLP模型和VL任务的对抗性攻击。首先,我们分析了不同设置下对抗性攻击的性能。通过研究不同扰动对象和攻…

HHDESK图片管理——批量重命名及递归搜索

HHDESK作为一款国产桌面软件,考虑到国人的操作及阅读习惯。因此我们开发了一些有意义的新功能,比如今天要介绍的图片批量重命名及递归搜索功能 1.图片批量重命名功能 网上下载的图片名称大多杂乱无章,一眼望去毫无头绪。 而windows自带的…