MySQL常用数据类型和表的操作

文章目录

    • (一)常用数据类型
      • 1.数值类
      • 2.字符串类型
      • 3.二进制类型
      • 4.日期类型
    • (二)表的操作
      • 1查看指定库中所有表
      • 2.创建表
      • 3.查看表结构和查看表的创建语句
      • 4.修改表
      • 5.删除表
    • (三)总代码

(一)常用数据类型

1.数值类

BIT([M]) 大小:bit M表示每个数的位数,取值范围为1~64,若M忽略则默认为1。

TINYINT([M]) 大小:byte 取值范围为-2^7
~2^7-1 无符号取值范围为0~2^8-1。

INT([M]) 大小:4byte 取值范围为-2^31
~2^31-1 无符号取值范围为:2^32-1

BIGINT([M]) 大小:8byte 取值范围为-2^63
~2^63-1 无符号取值范围为0~2^64-1

DECIMAL[(M,D)] 大小:动态 M为总位数,D为小数点后面的位数,DECIMAL最大位数(M)为65,D最大为30,
如果省略M则默认为10,如果省略D则默认为0,

DECIMAL大小为动态:可以由其他数值类组成例如一个数123456789123456789123456789.12345678963就可以由4个INT与1个BIT组成(INT可以储存10位数,这里储存38位数就可以由4个INT与1个BIT组成减少空间浪费)

2.字符串类型

CHAR[(M)] 固定长度字符串,M表示长度,以字符为单位,取值范围为0~255,若M省略则默认为1

VARCHAR[(M)] 可变长度字符串,M表示最大长度范围为0~65535(2^16-1)个字节,有效字符个数取决于实际字符个数与使用的其字符集(例如使用utf8mb4字符集最多可以保存65535/4=16383个字符)

TEXT[(M)] 文本类型,最大长度为2^16-1个字节,有效字符个数为使用的字符集

3.二进制类型

BINARY[(M)] 固定长度二进制字节与CHAR类似 储存二进制字节取值范围为0~255,若M省略则默认为1

VARBINARY[(M)] 可变长度二进制字节与VARCHAR类似 M表示长度

BLOB[(M)] 二进制字节类型(存储二进制文件的字段类型), 最大长度为0~2^16-1

4.日期类型

(Byte 是计算机存储和处理信息的基本单位,而 Bytes 通常用来表示多个字节。
Byte(字节):一个字节由8个二进制位(bit)组成,可以存储一个英文字符或半个汉字。在数据存储和传输中,字节是最常用的单位

Bytes:这个词通常用来表示多个字节,比如在描述数据大小时,我们可能会说 “这个文件有128 Bytes”,意思是文件大小为128字节)

DATETIME[(fsp)] 8bytes 日期类型与时间类型结合,⽀持范围 1000-01-01 00:00:00.000000 ~ 9999-12-31
23:59:59.499999
• 显⽰格式为 YYYY-MM-DD hh:mm:ss[.fraction]
• 0值为 0000-00-00 00:00:00

DATE[(fsp)] 3bytes ⽇期类型
• ⽀持范围 1000-01-01 ~ 9999-12-31
• 显⽰格式为 YYYY-MM-DD
• 0值为 0000-00-00

(二)表的操作

1查看指定库中所有表

语法: show tables;
在这里插入图片描述

2.创建表

语法:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
field datatype [约束] [comment ‘注解内容’]
[, field datatype [约束] [comment ‘注解内容’]] …
) [engine 存储引擎] [character set 字符集] [collate 排序规则];

TEMPORARY: 表⽰创建的是⼀个临时表
• field:列名
• datatype:数据类型
• comment:对列的描述或说明
• engine:存储引擎,不指定则使⽤默认存储引擎
• character set:字符集,不指定则使⽤默认字符集
• collate:排序规则,不指定则使⽤默认排序规则
详细的创建表语法参考官⽅⽹站:
MySQL :: MySQL 8.0 Reference Manual :: 15.1.20 CREATE TABLE Statement

在这里插入图片描述

在这里插入图片描述

展示表在磁盘上的扩展文件:
创建⼀个存储引擎为 InnoDB 的表时,会在对应的数据库⽬录下⽣成⼀个⽤来存储真实数据的物
理⽂件,命名格式为 表名.ibd ,以当前为例会在 java ⽬录下⽣成⼀个 t_student.ibd 的数据
⽂件
• 创建⼀个存储引擎为 MyISAM 的表时,会在对应的数据库⽬录下分别⽣成三个以不同后缀名结尾
的⽂件,分别是 表名.MYD ( MYData )的数据⽂件, 表名.MYI ( MYIndex ) 的索引⽂件,以表名.sdi 的表信息描述⽂件(JSON格式)
在8.0以前的版本中表信息描述⽂件是以.frm为后缀的⼆进制⽂件
在这里插入图片描述

3.查看表结构和查看表的创建语句

查看表结构语法:desc 表名;
在这里插入图片描述在这里插入图片描述
查看表的创建语句语法:show create table 表名;
在这里插入图片描述

4.修改表

语法:5.1 语法
ALTER TABLE tbl_name [alter_option [, alter_option] …];
alter_option: {
table_options
| ADD [COLUMN] col_name column_definition [FIRST | AFTER注释:FIRST指表中的第一列,AFTER指定列的后一列) col_name]
| MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| RENAME COLUMN old_col_name TO new_col_name
| RENAME [TO | AS] new_tbl_name

• tbl_name:要修改的表名
• ADD:向表中添加列
• MODIFY:修改表中现有的列
• DROP:删除表中现有的列
• RENAME COLUMN:重命名表中现有的列
• RENAME [TO | AS] new_tbl_name:重命名当前的表

详细的创建表语法参考官⽅⽹站:MySQL :: MySQL 8.0 Reference Manual :: 15.1.9 ALTER TABLE Statement

ADD示例演示:
在这里插入图片描述

MODIFY实例演示:
在这里插入图片描述
DROP实例演示:
– 删除最后表中age列
alter table t_student drop age;
在这里插入图片描述
RENAME COLUMN实例演示:
在这里插入图片描述
RENAME实例演示:
在这里插入图片描述

5.删除表

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [,tbl_name]

TEMPORARY:表⽰临时表
tbl_name:将要删除的表名

在这里插入图片描述
删除表是⼀个危险操作,执⾏删除语句时⼀定要谨慎
• 删除表成功后,磁盘上对应的数据⽂件也会被删除
• ⼀次可以删除多个表,表与表之间⽤逗号隔开

(三)总代码

create table if not exists t_student (id bigint comment '编号',`name` varchar(15) comment '姓名',age int comment '年龄')character set utf8mb4 collate utf8mb4_0900_ai_ci;#单行注释-- 单行注释(--后需要加空格)/**/多行注释#添加表中第一列来演示alter table t_student add `first` int comment'添加第一行' FIRST;#往id后一列添加alter table t_student add ids bigint comment'添加到id后一行' after id;#修改name这行来演示alter table t_student modify `name` varchar(25) comment '姓名' after ids; -- 删除最后表中age列 alter table t_student drop age;#将表中第一列的first重命名为onealter table t_student rename column `first` to one;#修改表名alter table t_student tbl_name t_newstudent;create table if not exists t_engine(id bigint comment '编号',`engine` varchar(20) comment '引擎')engine MyISAM;#删除t_engine这个表drop table t_engine;

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

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

相关文章

【数据结构】_C语言实现不带头非循环单向链表

目录 1. 链表的概念及结构 2. 链表的分类 3. 单链表的实现 3.1 SList.h头文件 3.2 SList.c源文件 3.3 Test_SList.c测试文件 关于线性表,已介绍顺序表,详见下文: 【数据结构】_顺序表-CSDN博客 本文介绍链表; 基于顺序表…

WPF进阶 | WPF 数据绑定进阶:绑定模式、转换器与验证

WPF进阶 | WPF 数据绑定进阶:绑定模式、转换器与验证 一、前言二、WPF 数据绑定基础回顾2.1 数据绑定的基本概念2.2 数据绑定的基本语法 三、绑定模式3.1 单向绑定(One - Way Binding)3.2 双向绑定(Two - Way Binding)…

人工智能在医疗领域的应用有哪些?

人工智能在医疗领域的应用十分广泛,涵盖了诊断、治疗、药物研发等多个环节,以下是一些主要的应用: 医疗影像诊断 疾病识别:通过分析 X 光、CT、MRI 等影像,人工智能算法能够识别出肿瘤、结节、骨折等病变,…

【Android】布局文件layout.xml文件使用控件属性android:layout_weight使布局较为美观,以RadioButton为例

目录 说明举例 说明 简单来说,android:layout_weight为当前控件按比例分配剩余空间。且单个控件该属性的具体数值不重要,而是多个控件的属性值之比发挥作用,例如有2个控件,各自的android:layout_weight的值设为0.5和0.5&#xff0…

Ubuntu 24.04 安装 NVIDIA Container Toolkit 全指南:让Docker拥抱GPU

Ubuntu 24.04 安装 NVIDIA Container Toolkit 全指南:让Docker拥抱GPU 前言一、环境准备1.1 验证驱动状态 二、安装NVIDIA Container Toolkit2.1 添加官方仓库2.2 执行安装 三、配置Docker运行时3.1 更新Docker配置 四、验证安装结果4.1 运行测试容器 五、实战应用 …

Qt中Widget及其子类的相对位置移动

Qt中Widget及其子类的相对位置移动 最后更新日期:2025.01.25 下面让我们开始今天的主题… 一、开启篇 提出问题:请看上图,我们想要实现的效果是控件黄色的Widge(m_infobarWidget)t随着可视化窗口(m_glWidge…

3287. 求出数组中最大序列值

3287. 求出数组中最大序列值 题目链接:3287. 求出数组中最大序列值 代码如下: //参考链接:https://leetcode.cn/problems/find-the-maximum-sequence-value-of-array/solutions/3037275/qiu-chu-shu-zu-zhong-zui-da-xu-lie-zhi-b-bhnk cla…

【MySQL】悲观锁和乐观锁的原理和应用场景

悲观锁和乐观锁,并不是 MySQL 或者数据库中独有的概念,而是并发编程的基本概念。 主要区别在于,操作共享数据时,“悲观锁”认为数据出现冲突的可能性更大,而“乐观锁”则是认为大部分情况不会出现冲突,进而…

梯度下降优化算法-RMSProp

RMSProp(Root Mean Square Propagation)是一种自适应学习率的优化算法,旨在解决 AdaGrad 学习率单调递减的问题。RMSProp 通过引入衰减系数(decay rate),使得历史梯度平方和不会无限增长,从而更…

gradle和maven的区别以及怎么选择使用它们

目录 区别 1. 配置方式 2. 依赖管理 3. 构建性能 4. 灵活性和扩展性 5. 多项目构建 如何选择使用 选择 Maven 的场景 选择 Gradle 的场景 区别 1. 配置方式 Maven: 使用基于 XML 的 pom.xml 文件进行配置。所有的项目信息、依赖管理、构建插件等都在这个文…

鲁滨逊漂流记读后感

前言:学校要求出鲁滨逊漂流记的读后感啊,那么今天我就写着试试叭,好久都没更新了嘤,可能写的不好嗷。真的不是很建议参考,因为我的思想可能会与学校的要求不同,更多的是介入了自己的思考,从鲁滨逊好的地方和…

[笔记] 极狐GitLab实例 : 手动备份步骤总结

官方备份文档 : 备份和恢复极狐GitLab 一. 要求 为了能够进行备份和恢复,请确保您系统已安装 Rsync。 如果您安装了极狐GitLab: 如果您使用 Omnibus 软件包,则无需额外操作。如果您使用源代码安装,您需要确定是否安装了 rsync。…

06-机器学习-数据预处理

数据清洗 数据清洗是数据预处理的核心步骤,旨在修正或移除数据集中的错误、不完整、重复或不一致的部分,为后续分析和建模提供可靠基础。以下是数据清洗的详细流程、方法和实战示例: 一、数据清洗的核心任务 问题类型表现示例影响缺失值数值…

【统计的思想】假设检验(二)

假设检验是根据人为设定的显著水平,对被测对象的总体质量特性进行统计推断的方法。 如果我们通过假设检验否定了零假设,只是说明在设定的显著水平下,零假设成立的概率比较小,并不是说零假设就肯定不成立。如果零假设事实上是成立…

2025多目标优化创新路径汇总

多目标优化是当下非常热门且有前景的方向!作为AI领域的核心技术之一,其专注于解决多个相互冲突的目标的协同优化问题,核心理念是寻找一组“不完美但均衡”的“帕累托最优解”。在实际中,几乎处处都有它的身影。 但随着需求场景的…

DeepSeek-R1试用

最近DeepSeek太火了,对配置要求不高。刚好放假,下载试试。发现开源大模型的生态做的挺好的,几分钟就能在本地部署一个大模型。 配置 NVIDIA RTX 2060 6GB(最低要求 NVIDIA GTX 1060 6GB ) 下载Ollama Ollama是一个…

Android中Service在新进程中的启动流程2

目录 1、Service在客户端的启动入口 2、Service启动在AMS的处理 3、Service在新进程中的启动 4、Service与AMS的关系再续 上一篇文章中我们了解了Service在新进程中启动的大致流程,同时认识了与客户端进程交互的接口IApplicationThread以及与AMS交互的接口IActi…

C语言--数据在内存中的存储

在C语言中,数据在内存中的存储方式主要取决于数据的类型和存储位置。以下是C语言中数据在内存中的存储方式的详细说明: 1. 数据类型与存储方式 基本数据类型 • 整数类型(如int、short、long等): • 存储方式&#x…

【PySide6快速入门】QDialog对话框的使用

文章目录 PySide6快速入门:QDialog对话框的使用前言QDialog的基本用法创建和显示对话框 QDialog的常用函数1. exec()2. accept()3. reject()4. setWindowTitle()5. setModal()6. setFixedSize()7. resize()8. reject()9. setLayout()10. open() 总结 PySide6快速入门…

2748. 美丽下标对的数目(Beautiful Pairs)

2748. 美丽下标对的数目&#xff08;Beautiful Pairs&#xff09; 题目分析 给定一个整数数组 nums&#xff0c;我们需要找出其中符合条件的“美丽下标对”。美丽下标对是指&#xff0c;数组中的某一对数字 nums[i] 和 nums[j]&#xff08;其中 0 ≤ i < j < nums.leng…