SQL-数据类型

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

☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹
✨博客主页:小小恶斯法克的博客
🎈该系列文章专栏:重拾MySQL
🍹文章作者技术和水平很有限,如果文中出现错误,希望大家能指正🙏
📜 感谢大家的关注! ❤️

目录

DDL-表操作-数据类型 

数值类型

 字符串类型

 举例:

案例:

日期时间类型

 案例

表操作-案例


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.mzph.cn/news/619110.shtml

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

相关文章

【python】进阶--->MySQL数据库(二)

一、sql语句(结构化查询语言) 要和数据库进行交互,需要使用到数据库认识的语言 : sql语句 是关系型数据库都需要遵循的规范。不同数据库都支持sql语句,但是都有特有内容。 二、sql语句分类 数据定义语言 : 用来定义数据库–数据库,表,列. 数据操作语言 : 对数据库表中的记录进…

数据清洗:确保数据质量的关键步骤

在数据分析和处理的过程中,数据清洗是一个非常重要的环节。它的目的是确保数据的准确性、完整性和一致性,从而为后续的分析和决策提供可靠的基础。本文将详细介绍数据清洗的重要性、常见的数据清洗任务以及一些实用的数据清洗技术。 一、数据清洗的重要…

Ubuntu12.0安装g++过程及其报错

Ubuntu12.0安装g过程及其报错 https://blog.csdn.net/weixin_51286763/article/details/120703953 https://blog.csdn.net/dingd1234/article/details/124029945

ipad协议滑块源码1-13

ipad滑块源码1-13 python编写 需要安装py环境进行编译修改 解密代码如下 var CryptoJS CryptoJS || (function(Math, undefined) { var C {}; var C_lib C.lib {}; var Base C_lib.Base (function() { function F() {}; return { …

MATLAB | 龙年大吉,使用MATLAB绘制会动的中国风神龙

hey各位好久不见,龙年到了,这期画一期配色非常中国风的龙,这个造型的龙参考了某些html绘制龙的视频,但是由于html版全网都是也不咋给代码和代码出处,因此自己写了个MATLAB版本: 可以看到还是非常酷炫的&…

vuex和pinia区别

Vuex 和 Pinia 都是用于状态管理的库,但它们在一些方面有所不同。 1. 架构设计: - Vuex 是 Vue.js 官方提供的状态管理库,采用集中式的架构,所有的状态都存储在一个单一的全局状态树中。 - Pinia 是一个由 Vue Store 创建的…

你的BGE模型用对了吗?

众所周知Embedding模型可以将任何文本映射到低维密集向量,该向量可用于检索、分类、聚类或语义搜索等任务,也可以用于LLM的矢量数据库。 智源研究院开源的BGE(BAAI general embedding)模型已经屠榜多时了,且有力推动了知识库检索、聚类、分类等多种下游场景的发展。尤其是在…

前端面试Vue部分补充(详细)

1、vue的基本原理 Vue的基本原理是基于MVVM(Model-View-ViewModel)模式的前端框架。它通过数据绑定和响应式系统来实现数据和视图的自动同步更新。 Vue的基本原理可以概括为以下几个步骤: 1). 解析模板:Vue通过解析模板来生成虚…

【LabVIEW FPGA入门】使用数字IO卡实现计数器输入功能

方法1: 1.首先需要用一个数字IO的输入FPGA端口,并将其拖入程序框图中,同时创建一个循环。 2.如果想要在循环中实现累加功能,就可以使用移位寄存器。 数字输入的当前值和历史值进行比较,用于一个判断大于,来…

【算法分析与设计】跳跃游戏

题目 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - …

阿里云高性能云服务器_云主机_云服务器详解

阿里云高性能云服务器60%单实例最大性能提升&#xff0c;35Gbps内网带宽&#xff0c;网络增强&通用型云服务器、本地SSD型云服务器、大数据型云服务器、GPU异构型云服务器&#xff0c;阿里云百科aliyunbaike.com分享阿里云高性能云服务器&#xff1a; 阿里云高性能云服务器…

Nacos:通过Dockerfile构建自定义Nacos镜像

简介&#xff1a; Docker已经成为容器化的标准&#xff0c;它允许开发者将应用及其依赖打包到一个可移植的容器中&#xff0c;然后轻松地发布到任何Docker环境中。Nacos&#xff0c;作为阿里巴巴开源的服务发现、配置和服务管理平台&#xff0c;为微服务架构提供了关键的支持。…

基于STM32的温湿度传感器

一、创新实践实习内容 一:指导老师给我们介绍了广州粤嵌通信科技股份有限公司的企业文化与企业环境&#xff0c;简要地介绍了本行业的发展历史及未来发展趋势。讲解了Keil5的功能与应用。指导我们搭建STM32F407驱动环境以及学习相关芯片包的安装使用方法。并且带着我们对C语言…

力扣热题100

排序 快速排序 #include <iostream> #include <vector> using namespace std;// 快速排序函数&#xff0c;传入引用&#xff0c;以便修改原始数组 void quick_sort(vector<int>& q, int l, int r) {// 边界条件&#xff1a;如果左边界大于等于右边界&am…

Java缓存优化

缓存优化 环境配置 配置yml文件中的redismaven导入redis 缓存菜品数据 先从redis获取数据&#xff0c;如果有直接返回;没有的话从数据库中找&#xff0c;把数据放入到redis中。更新菜品数据时(或者数据库中的数据变化时)&#xff0c;需要清理缓存数据。 Spring Cache 在启…

力扣(leetcode)第657题机器人能否返回顶点(Python)

657.机器人能否返回顶点 题目链接&#xff1a;657.机器人能否返回顶点 在二维平面上&#xff0c;有一个机器人从原点 (0, 0) 开始。给出它的移动顺序&#xff0c;判断这个机器人在完成移动后是否在 (0, 0) 处结束。 移动顺序由字符串 moves 表示。字符 move[i] 表示其第 i 次…

第十讲_css2d转换

css2d转换 1. 移动2. 旋转3. 缩放4. 组合转换5. 设置原点 1. 移动 translate() &#xff1a;参照元素原位置&#xff0c;在X轴和Y轴方向上移动。 <html><style>.container1:hover {width: 200px;height: 200px;background-color: red;/* 在X轴方向移动50px */tra…

基于SpringBoot+Vue实现的二手交易系统

系统介绍 校园二手交易网站是一种专门针对有二手物品交易需求用户的二手交易的网站。它的设计和开发主要是为了满足用户之间的二手物品交易需求&#xff0c;方便大家在线买卖二手物品。近年来&#xff0c;随着互联网技术的发展&#xff0c;人们越来越喜欢在线购物&#xff0c;…

NMEA0183协议相关笔记

协议基本知识 参考以前的文章 <北斗/GPS模块的使用-基于正点原子ATK-1218-BD>&#xff0c;文章链接&#xff0c;或者野火相关资料整理。 1、协议格式 2、地址段指令 1、标识 2、语句类型 二、指令内容 1、 GGA 2、GLL 3、GSA 4、GSV 5、RMC 6、VTG 7、ZDA 8、TXT

码牛课堂首推——鸿蒙南北双向开发学习路线图标准版~

鸿蒙&#xff01;鸿蒙&#xff01;鸿蒙&#xff01; 要说2023-2024年IT圈最火爆的名词&#xff0c;一定是鸿蒙&#xff01; 2023年9月25日&#xff0c;华为发布会正式宣布2024年第一季度将推出HarmonyOS NEXT版本&#xff0c;这意味着鸿蒙原生应用开发将彻底摆脱Android手机系…