SQL-数据类型

news2024/11/19 0:35:50

目录

DDL-表操作-数据类型 

数值类型

 字符串类型

 举例:

案例:

日期时间类型

 案例

表操作-案例


🎉欢迎您来到我的MySQL基础复习专栏

☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹
✨博客主页:小小恶斯法克的博客
🎈该系列文章专栏:重拾MySQL
📜其他专栏:待开发js逆向,全栈,爬虫.....等专栏
🍹文章作者技术和水平很有限,如果文中出现错误,希望大家能指正🙏
📜 感谢大家的关注! ❤️
————————————————
keeping learning,keeping reading,keeping coding

DDL-表操作-数据类型 

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型

类型

大小

有符号(SIGNED)范围

无符号(UNSIGNED)范围

描述

TINYINT

1byte

(-128127)

(0255)

小整数值

SMALLINT

2bytes

(-3276832767)

(065535)

大整数值

MEDIUMINT

3bytes

(-83886088388607)

(016777215)

大整数值

INT/INTEGER

4bytes

(-21474836482147483647)

(04294967295)

大整数值

BIGINT

8bytes

(-2^632^63-1)

(02^64-1)

极大整数值

FLOAT

4bytes

(-3.402823466 E+38

3.402823466351 E+38)

0 (1.175494351 E-

383.402823466 E+38)

单精度浮点数值

DOUBLE

8bytes

(-1.7976931348623157

E+3081.7976931348623157 E+308)

0 (2.2250738585072014 E-3081.7976931348623157

E+308)

双精度浮点数值

DECIMAL

依赖于M(精度)D(标度) 的值

例如123.45,精度指整个数值的长度是5,标度指的是小数位数是2

依赖于M(精度)D(标度)的值

小数值(精确定点数)

案例:假如在一张表中我们要去描述用户的年龄,我们可以选择age,那数据类型呢?

你写age int肯定是可以,因为年龄的范围也在int里面,但是int占用的是4个字节,相对来说是比较暂用存储空间的,所以这里我们也可以选择TINYINT,可是对于age来说年龄会出现负数嘛?不会,所以我们要使用无符号的范围,我们可以在TINYINT后面加上标识UNSIGNED,age TINYINT UNSIGNED

假如要去描述一个人的分数score ,分数是有小数的,一般介于0-100之间,而分数这里一般让它出现一位小数就行了,这个时候可以考虑使用double

double里面要指定两个参数,double(参数1,参数2),参数1代表当前double整个长度是多长,例如100.0,最长是4位。参数2代表允许出现几位小数,分数一般让它出现一位小数,所以此时描述一个人的分数 score double(4,1)

 字符串类型

类型

大小

描述

CHAR

0-255 bytes

定长字符串(需要指定长度)

VARCHAR

0-65535 bytes

变长字符串(需要指定长度)

TINYBLOB

0-255 bytes

不超过255个字符的二进制数据

TINYTEXT

0-255 bytes

短文本字符串

BLOB

0-65535 bytes

二进制形式的长文本数据

TEXT

0-65535 bytes

长文本数据

MEDIUMBLOB

0-16 777 215 bytes

二进制形式的中等长度文本数据

MEDIUMTEXT

0-16 777 215 bytes

中等长度文本数据

LONGBLOB

0-4 294 967 295 bytes

二进制形式的极大文本数据

LONGTEXT

0-4 294 967 295 bytes

极大文本数据

char varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关  。而varchar是变长字符串,指定的长度为最大占用长度  。相对来说,char的性能会更高些。

 举例:

            char(10),即使你存储1个字符,它也会占用10个字符的空间,未占用的字符其他空间会使用空格进行补位

            varchar(10),10代表最多存储10个字符,一旦超出10个字符将会报错。但是你存储一个字符就占一个字符空间,你存储两个字符就占两个字符空间,它会根据你的内容去计算你需要占用的空间

char ------> 性能高

varchar -----> 性能差

原因是varchar会根据内容去计算需要占用的空间

案例:

用户名 username ------> 长度不定, 最长不会超过50

           username varchar(50)

性别 gender ---------> 存储值, 不是男,就是女

           gender char(1)

手机号 phone --------> 固定长度为11

           phone char(11)

日期时间类型

类型

大小

范围

格式

描述

DATE

3

1000-01-01 9999-12-31

YYYY-MM-DD

日期值

TIME

3

-838:59:59 838:59:59

HH:MM:SS

时间值或持续时间

YEAR

1

1901 2155

YYYY

年份值

DATETIME

8

1000-01-01 00:00:00

9999-12-31 23:59:59

YYYY-MM-DD HH:MM:SS

混合日期和时间值

TIMESTAMP

4

1970-01-01 00:00:01

2038-01-19 03:14:07

YYYY-MM-DD HH:MM:SS

混合日期和时间值,时间戳

 案例

生日字段 birthday

birthday date

创建时间 createtime

createtime datetime

表操作-案例

设计一张员工信息表,要求如下:

  1. 编号(纯数字)
  2. 员工工号   (字符串类型,长度不超过10)
  3. 员工姓名(字符串类型,长度不超过10位)
  4. 性别(男/女,存储一个汉字)
  5. 年龄(正常人年龄,不可能存储负数)
  6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
  7. 入职时间(取值年月日即可)
create table emp (
    id int comment '编号',
    workno varchar(10) comment '员工工号' ,
    name varchar(10) comment '员工姓名' ,
    gender char(1) comment '性别' ,
    age tinyint unsigned comment '年龄' ,
    idcard char(18) comment '身份证' ,
    entrydate date comment '入职时间' 
) comment '员工表' ;

我们可以再用desc emp语句去查看一下我们所创建的表,如下图: 

 有一点是需要注意的:表结构创建好了,里面的name字段是varchar类型,最大长度为10,也就意味着如果超过10将会报错

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

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

相关文章

【常用的简单功能及算法】拦截器 加盐算法 深克隆 时间日期格式化 加盐算法 sql分页算法 验证码

1.实现拦截器 Interceptor (以登录拦截器为例) 1.1 写一个登录拦截器普通类 实现HandlerInterceptor接口重写preHandle方法 //检验登录状态拦截器 //实现接口HandlerInterceptor 重写方法preHandle public class LoginInterceptor implements HandlerInterceptor {/** 该方…

网络安全保险发展起始阶段的挑战及应对措施

文章目录 前言一、网络安全保险的有序发展二、当前我国网络安全保险发展的初期态势(一)网络安全风险类型(二)网络安全保险的作用(三)与外国网络安全保费的规模对比 三、我国网络安全保险发展初期面临的挑战…

一天一个设计模式---适配器模式

概念 适配器模式是一种结构型设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。它允许不兼容的接口之间进行协同工作,使得原本由于接口不匹配而无法合作的类能够一起工作。 具体内容 适配器模式主要包括以下几个要素: 目标接…

yolov8 瑞芯微 RKNN 的 C++部署,部署工程难度小、模型推理速度快

之前写过两次yolov8目标检测部署,后续继续思考,针对部署还有优化空间,本示例的部署方式优化了部署难度,加快了模型推理速度(略微增加了后处理的时耗)。 特别说明:如有侵权告知删除,…

半Happy的一天

终于差不多将SWMM模型与LisFlood模型耦合运转起来了 MDL的雏型也出来了,注册了模型方法和参数,差一个方法参数 晚上和师兄聊了聊未来规划,回顾了这半年研究生生涯的“拍烂”生活(其实也没特别摆烂,还是学了不少东西&…

服务器数据传输安全如何保障?保障意义是什么?

数据安全,是指通过采取必要措施确保数据处于有效保护和合法利用的状态,以及具备保障持续安全状态的能力。数据安全应保证数据生产、存储、传输、访问、使用、销毁、公开等全过程的安全,并保证数据处理过程的保密性、完整性、可用性。无论是互…

SpringBoot知识02

1、快速生成mapper和service &#xff08;自动生成简单的单表sql&#xff09; 2、springboot配置swagger&#xff08;路径不用加/api&#xff09; &#xff08;1&#xff09;主pom导包&#xff08;子pom要引用&#xff0c;可选依赖&#xff09; <!-- swagger3…

git提交记录全部删除

目录 问题描述 解决方案 结果 问题描述 新复制的项目具有特比多的提交记录我想给他清除&#xff0c;因为不清楚过多历史也就导致包特别大下载和提交等方面都不是很快 解决方案 查看代码clone网址&#xff1b; 打开远程仓库&#xff0c;选择要去除历史记代码分支&#xff08…

C2855 命令行选项“/Zc:referenceBinding“与预编译头不一致和C2855 命令行选项“/Zc:__cplusplus“与预编译头不一致

在VS2019和Qt5.12.12环境下&#xff0c;笔记本上编译这个工程没有问题&#xff0c;把工程拷贝到台式机上&#xff0c;一样的配置&#xff0c;但是报如下错误&#xff1a; 打开项目的命令行配置如下&#xff1a; 解决办法&#xff1a;在编译选项"/Zc:referenceBinding"…

大模型LLM Agent在 Text2SQL 应用上的实践

1.前言 在上篇文章中「如何通过Prompt优化Text2SQL的效果」介绍了基于Prompt Engineering来优化Text2SQL效果的实践&#xff0c;除此之外我们还可以使用Agent来优化大模型应用的效果。 本文将从以下4个方面探讨通过AI Agent来优化LLM的Text2SQL转换效果。 1 Agent概述2 Lang…

内网穿透的应用-使用Docker部署开源建站工具—Halo,并实现个人博客公网访问

文章目录 1. Docker部署Halo1.1 检查Docker版本如果未安装Docker可参考已安装Docker步骤&#xff1a;1.2 在Docker中部署Halo 2. Linux安装Cpolar2.1 打开服务器防火墙2.2 安装cpolar内网穿透 3. 配置Halo个人博客公网地址4. 固定Halo公网地址 本篇文章介绍如何在CentOS下使用D…

2023年北邮渣硕的暑期秋招总结

背景 实验室一般是在研究生二年级的时候会放实习&#xff0c;在以后的日子就是自己完成毕业工作要求&#xff0c;基本上不再涉及实验室的活了&#xff0c;目前是一月份也是开始准备暑期实习的好时间。实验室每年这个时候都会有学长学姐组织暑期实习经验分享&#xff0c;本着不…

Nginx配置反向代理实例二

Mac 安装Nginx教程 Nginx配置反向代理实例一 提醒一下&#xff1a;下面实例讲解是在Mac系统演示的&#xff1b; 反向代理实例二实现的效果 使用nginx 反向代理&#xff0c;根据访问的地址跳转到不同端口的服务中 nginx 监听端口为81&#xff1b; 访问地址1&#xff1a;http:/…

ptaR7-6/zzuli2106 有去有回

题目 输入n个整数&#xff0c;第一趟按从左到右间隔k个数取数据&#xff0c;然后第二趟再从右到左间隔k-1个数取余下的数&#xff0c;如果数据没有取完&#xff0c;下一趟再间隔k-2个从左到右取数据&#xff0c;如此反复&#xff0c;直到所有的数据取完为止。注意&#xff1a;…

API设计:从基础到优秀实践

在这次深入探讨中&#xff0c;我们将深入了解API设计&#xff0c;从基础知识开始&#xff0c;逐步进阶到定义出色API的最佳实践。 作为开发者&#xff0c;你可能对许多这些概念很熟悉&#xff0c;但我将提供详细的解释&#xff0c;以加深你的理解。 API设计&#xff1a;电子商…

2024年 最新 iPhone手机 历代机型、屏幕尺寸、纵横比、分辨率 整理

&#x1f3ac; 博客主页&#xff1a;https://xiaoy.blog.csdn.net &#x1f3a5; 本文由 呆呆敲代码的小Y 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;Unity系统学习专栏 &#x1f332; 游戏制作专栏推荐&#xff1a;游戏制作 &…

css3边框与圆角

css3边框与圆角 前言边框的三要素边框的三要素小属性 四个方向的边框四个方向边框的三要素小属性 去掉边框利用边框制作三角形圆角 border-radius单独设置四个圆角小属性百分比为单位 盒子阴影阴影延展内阴影多阴影 结语 前言 在网页设计中&#xff0c;边框与圆角不仅仅是简单…

强化学习求解TSP(七):Qlearning求解旅行商问题TSP(提供Python代码)

一、Qlearning简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于奖励的决策问题。它是一种无模型的学习方法&#xff0c;通过与环境的交互来学习最优策略。Q-learning的核心思想是通过学习一个Q值函数来指导决策&#xff0c;该函数表示在给定状态下采取某个动作所获…

对git中tag, branch的重新理解

1. 问题背景 项目中之前一个tag&#xff08;v1.0&#xff09;打错了&#xff0c;想删除它&#xff0c;但我们从此tag v1.0中迁出新建分支Branch_v1.0,在此分支下修复了bug&#xff0c;想重新打一个tag v1.0&#xff0c;原来的tag v1.0可以删除掉吗&#xff1f; 错误的理解&am…

SQL-分组查询

目录 DQL-分组查询 分组查询注意事项&#xff1a; DQL- 排序查询 &#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &…