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将会报错

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构初阶之插入排序与希尔排序详解

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 Linux 欢迎大家点赞,评论,收藏。 一起努力,共赴大厂。 目录 一.前言 二.插入排序 …

代码随想录 Leetcode203. 移除链表元素

题目: 代码(首刷看解析 2024年1月11日): class Solution { public:ListNode* removeElements(ListNode* head, int val) {if(headnullptr) return nullptr;ListNode* BeforeHead new ListNode(0,head);ListNode* temp BeforeHead;while(te…

iOS 调试工具CocoaDebug

1、使用pod工具在项目里面添加CocoaDebug的SDK。 platform :ios, 11.0target ShopService doproject ShopServiceuse_frameworks!pod CocoaDebug, :configurations > [Debug]end2、之后就可以在项目里面看到效果了 APP上显示的是一个黑色背景的小圆圈。 上面39表示调用了39…

跨平台的文件传输协议@windows端服务器的配置@smb协议共享方案@ftp服务器设置

文章目录 abstractrefs ftp server下面是核心步骤FAQ smb server设置方法右键设置共享文件夹查看所有已经共享的文件夹停止某个文件的共享 共享文件夹的访问控制补充匿名访问问题协议相关信息参考android客户端推荐FAQ不同用户文件无法访问 比较和总结其他用户访问smb服务器共享…

[蓝桥杯学习] ST表

RMQ问题 ST 表 用状态 s[i][j] 记录区间长度为 2^j 的长度的区间的最大值 所以状态转移方程就是 st[i][j] max( st[i][j-1] , st[i(1 << (j-1))][j-1] ) 注意状态转移的方向&#xff0c;保证区间合法性&#xff08;i2^j 不能超过数组大小&#xff09; 写完这些后&am…

知道IP怎么反查域名?这几个方法一查一个准!

知道网络IP怎么反查出真实域名来&#xff1f;给大家分享几个我常用的方法&#xff0c;就算你不懂技术你都能查得出来&#xff01; 一、fofa 这是一个白帽黑客非常喜欢用的社工平台&#xff0c;只要你输入IP就能查到很多背后的信息。 传送门&#xff1a;https://fofa.info 二…

ELAU MC-4/11/22/400伺服驱动器

在一帧中每一行的选择时间是均等的。假设一帧的扫描行数为N&#xff0c;扫描时间为1&#xff0c;那一行所占有的选择时间为一帧时间的1/N。在液晶显示的驱动方法中把这个值&#xff0c;即一帧行扫描数的倒数称为液晶显示驱动的占空比(duty)&#xff0c;用d表示。在同等电压下&a…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例3-1 CSS3过渡

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>CSS3 过渡</title> <style> /*显示*/ .box {width: 100px;height: 100px;background-color: #eee;/*透明度*/opacity: 1;/*过渡*/transition: 3s; } /…

高性能mysql 第三版 读书笔记

MySQL中的tmp_table_size和max_heap_table_size|极客笔记 mysql占用内存过高调优方法_tmp_table_size过大阻塞-CSDN博客 查看mysql分配的内存 mysql查看内存利用状态_mob6454cc6d81c9的技术博客_51CTO博客 https://www.cnblogs.com/stronger-xsw/p/13632505.html

刚买的助听器就弄丢了,不想白配,快来看看这8大助听器防丢小技巧

我们知道助听器可以让听损人士重新听到美妙的声音和享受沟通的乐趣。但是&#xff0c;助听器也是一种很贵的物品&#xff0c;如果不小心弄丢了&#xff0c;就会让人心痛不已。 更有甚者&#xff0c;有些人因为害怕丢失助听器&#xff0c;而不敢佩戴助听器&#xff0c;错过了听力…

气象能见度监测站的应用介绍

【TH-NJD10】能见度是反映大气透明度的一个重要指标&#xff0c;对于航空、航海、道路交通等领域具有重要意义。 一、气象能见度监测站的应用 交通气象服务 气象能见度监测站在交通气象服务中发挥着重要作用。在高速公路、机场、港口等交通枢纽&#xff0c;能见度监测数据对于交…

【算法与数据结构】70、LeetCode爬楼梯

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;因为每次可以爬1阶或者2阶台阶&#xff0c;若想到达第i阶&#xff0c;则有两种情况&#xff1a;在第i-…

【Golang】IEEE754标准二进制字符串转为浮点类型

IEEE754介绍 IEEE 754是一种标准&#xff0c;用于表示和执行浮点数运算的方法。在这个标准中&#xff0c;单精度浮点数使用32位二进制表示&#xff0c;分为三个部分&#xff1a;符号位、指数位和尾数位。 符号位(s)用一个位来表示数的正负&#xff0c;0表示正数&#xff0c;1表…

CentOS查看修改时间

经常玩docker的朋友应该都知道&#xff0c;有很多的镜像运行起来后&#xff0c;发现容器里的系统时间不对&#xff0c;一般是晚被北京时间8个小时&#xff08;不一定&#xff09;。 这里合理怀疑是镜像给的初始时区是世界标准时间&#xff08;也叫协调世界时间&#xff09;。 有…

Kafka配置Kerberos安全认证及与Java程序集成

Background 本文主要介绍在 Kafka 中如何配置 Kerberos 认证&#xff0c;以及 java 使用 JAAS 来进行 Kerberos 认证连接。本文演示为单机版。 所用软件版本 查看 Kerberos 版本命令&#xff1a;klist -V 软件名称版本jdk1.8.0_202kafka2.12-2.2.1kerberos1.15.1 1、Kerberos …

el-tree定义左边箭头,包括下级出现连线

效果图&#xff1a; 代码&#xff1a; <template><div class"agency-wrap"><el-treeclass"filter-tree":data"detailList":props"defaultProps"default-expand-allnode-click"onClickNode":filter-node-me…

基础知识篇(二)Activity之生命周期变化

Activity作为四大组件之一,App切换、新的Activity启动与关闭以及配置发生变化等等都会引起Activity生命周期发生变化 一、常规模式下 场景1 A 启动 B 页面 //A启动B页面后 A:onPause B:onCreate B:onStart B:onResume A:onStop//然后关闭B页面后 B:onPause A:onRestart A:o…

IDEA中明明代码没有报错,运行也不报错,但是代码却爆红了,重启idea,重启电脑,重新加载Maven都没有用

报错示图&#xff1a; 报错类是存在的 我的解决办法是修改类名&#xff0c;修改类名时会有提示&#xff0c;如下图&#xff1a; 然后点击报错的地方可以看到是哪些位置引用了 改回正确的类名 正常显示

electron+vue网页直接播放RTSP视频流?

目前大部分摄像头都支持RTSP协议&#xff0c;但是在浏览器限制&#xff0c;最新版的浏览器都不能直接播放RTSP协议&#xff0c;Electron 桌面应用是基于 Chromium 内核的&#xff0c;所以也不能直接播放RTSP&#xff0c;但是我们又有这个需求怎么办呢&#xff1f; 市场上的方案…

【iOS】数据持久化(四)之FMDB

正如我们前面所看到的&#xff0c;原生SQLite API在使用时还是比较麻烦的&#xff0c;于是&#xff0c;开源社区就出现了一系列将SQLite API进行封装的库&#xff0c;其中FMDB的被大多数人所使用 FMDB和SQLite相比较&#xff0c;SQLite比较原始&#xff0c;操作比较复杂&#…