关于MySQL数据库2

news2024/12/29 14:37:44

目录

前言:

1.mysql中常用的数据类型:

1.1数值类型:

1.1.1INT:

1.1.2FLOAT 和 DOUBLE:

1.1.3DECIMAL (或 NUMERIC):

1.2日期和时间类型:

1.2.1DATE:

1.2.2TIME:

1.2.3DATETIME:

1.2.4TIMESTAMP:

1.2.5YEAR:

1.3字符串类型:

1.3.1CHAR:

1.3.1VARCHAR:

1.3.1TEXT:

1.3.1BINARY 和 VARBINARY:

1.3.1BLOB:

1.4空间类型: 

1.4.1GEOMETRY:

1.4.2POINT:

1.4.3LINESTRING:

1.4.4POLYGON:

1.4.5MULTIPOINT、MULTILINESTRING、MULTIPOLYGON:

1.4.6GEOMETRYCOLLECTION:

1.4.7不过关于使用这个空间类型的时候还有几个点要注意一下:

1.5枚举和集合类型:

1.5.1枚举(ENUM)类型:

1.5.1.1定义:

1.5.1.2使用场景:

1.5.1.3特点:

1.5.1.3.1只能选择列表中的一个值。

1.5.1.3.1如果尝试插入不在列表中的值,MySQL会报错(除非该字段被设置为可NULL,并且插入了NULL值)。

1.5.1.3.1存储效率高,因为实际存储的是值的索引而不是完整的字符串。

1.5.2集合(SET)类型:

1.5.2.3.1可以选择列表中的零个或多个值。

1.5.2.3.1值在SET列中以逗号分隔的字符串形式存储。

1.5.2.3.1MySQL提供了一些特定的函数来操作和查询SET类型的数据,如FIND_IN_SET()等。

1.5.2.3.1与ENUM相比,SET类型更加灵活,但存储效率可能稍低一些,因为需要存储多个值的索引。

1.6JSON类型:

1.6.1JSON数据类型的优势:

1.6.1.1验证:

1.6.1​​​​​​​.1查询:

1.6.1​​​​​​​.1索引:

1.6.1​​​​​​​.1更新:

2主键primary key:

3.DDL之表操作:table:

3.1创建表(CREATE TABLE):

3.2删除表(DROP TABLE):

3.3 修改表结构(ALTER TABLE):

3.3.1修改表名:

3.3.2添加字段:

3.3.3删除字段:

3.3.4修改字段名和数据类型:

3.3.5或者只修改数据类型:

3.4.查询表结构(DESCRIBE 或 DESC):

结语:


前言:

在昨天我们已经对MySQL数据库有了一些基础的认识,接下来我们将继续去分享关于MySQL数据库的一些内容.由于这是我个人的一点学习笔记,难免会有所遗漏希望大家能够多多包涵,同时也希望大家在评论区和谐讨论.

1.mysql中常用的数据类型:

1.1数值类型:

1.1.1INT:

用于整数。有符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。还有其他大小的整数类型,如TINYINT, SMALLINT, MEDIUMINT, BIGINT。

1.1.2FLOAT 和 DOUBLE:

用于浮点数。DOUBLE的精度比FLOAT高。

1.1.3DECIMAL (或 NUMERIC):

用于存储精确的小数,如货币数据。

1.2日期和时间类型:

1.2.1DATE:

日期,格式为'YYYY-MM-DD'。

1.2.2TIME:

时间,格式为'HH:MM:SS'。

1.2.3DATETIME:

日期和时间组合,格式为'YYYY-MM-DD HH:MM:SS'。

1.2.4TIMESTAMP:

时间戳,与UNIX时间戳相似,但表示为'YYYY-MM-DD HH:MM:SS'格式。它会自动存储时区信息,并根据MySQL服务器的时区进行转换。

1.2.5YEAR:

年份,可以用2位('YY')或4位('YYYY')格式表示。

1.3字符串类型:

1.3.1CHAR:

定长字符串。如果存储的字符串长度小于定义的长度,MySQL会用空格填充剩余的空间。

1.3.1VARCHAR:

变长字符串。只使用必要的空间来存储字符串,不会像CHAR那样填充空格。

1.3.1TEXT:

用于存储长文本数据。还有其他大小的文本类型,如TINYTEXT, MEDIUMTEXT, LONGTEXT。

1.3.1BINARY 和 VARBINARY:

类似于CHAR和VARCHAR,但存储的是二进制数据。

1.3.1BLOB:

用于存储二进制大对象。还有其他大小的BLOB类型,如TINYBLOB, MEDIUMBLOB, LONGBLOB。

1.4空间类型

空间数据类型包括:

1.4.1GEOMETRY

这是一个基础的空间数据类型,用于表示任何类型的空间对象。实际上,它并不经常直接用于列定义,而是作为其他空间数据类型的超类存在。

1.4.2POINT

表示一个二维空间中的点,由X和Y坐标组成。

1.4.3LINESTRING

表示一条由两个或多个点构成的线。这些点按顺序连接。

1.4.4POLYGON

表示一个多边形,由一条或多条封闭的线(即环)组成。多边形内部可以包含洞(由内部环表示)。

1.4.5MULTIPOINTMULTILINESTRINGMULTIPOLYGON

这些类型分别表示点、线、多边形的集合。

1.4.6GEOMETRYCOLLECTION

表示任何类型的空间对象的集合。

1.4.7不过关于使用这个空间类型的时候还有几个点要注意一下:

MySQL提供了空间函数来与这些空间数据类型一起使用,如ST_Distance()来计算两个空间对象之间的距离,ST_Area()来计算多边形的面积等。此外,MySQL还支持空间索引,这可以大大加速涉及空间数据的查询。

需要注意的是,为了使用空间数据类型和函数,MySQL服务器必须配置有对空间扩展的支持,这通常是默认情况。在创建表时,您可以使用上述数据类型之一来定义列,然后使用空间函数来查询和操作这些数据。

1.5枚举和集合类型:

1.5.1枚举(ENUM)类型:

1.5.1.1定义

ENUM是一个字符串对象,它的值必须从预定义的值列表中选取。在创建表时,需要明确指定这个列表。

1.5.1.2使用场景

通常用于表示固定的、不可更改的值集合,例如性别(男、女)、订单状态(待支付、已支付、已发货、已完成)等。

1.5.1.3特点
1.5.1.3.1只能选择列表中的一个值。
1.5.1.3.1如果尝试插入不在列表中的值,MySQL会报错(除非该字段被设置为可NULL,并且插入了NULL值)。
1.5.1.3.1存储效率高,因为实际存储的是值的索引而不是完整的字符串。

1.5.2集合(SET)类型:

1.5.2.1定义SET也是一个字符串对象,但它的值可以从预定义的值列表中选取多个。与ENUM类似,在创建表时需要指定这个列表。

1.5.2.2使用场景:通常用于表示可以具有多个选项的字段,例如用户的兴趣爱好(阅读、旅行、音乐等)。

1.5.2.3特点

1.5.2.3.1可以选择列表中的零个或多个值。
1.5.2.3.1值在SET列中以逗号分隔的字符串形式存储。
1.5.2.3.1MySQL提供了一些特定的函数来操作和查询SET类型的数据,如FIND_IN_SET()等。
1.5.2.3.1ENUM相比,SET类型更加灵活,但存储效率可能稍低一些,因为需要存储多个值的索引。

1.6JSON类型:

用于存储JSON格式的数据。MySQL提供了许多函数来查询和操作JSON数据。

1.6.1JSON数据类型的优势:

1.6.1.1灵活性

JSON数据类型允许您存储各种结构的数据,包括数组、对象和嵌套结构。

1.6.1​​​​​​​.1验证

MySQL提供了函数来验证JSON数据的格式是否正确。

1.6.1​​​​​​​.1查询

您可以使用MySQL提供的JSON函数来查询JSON数据中的特定值或子文档。

1.6.1​​​​​​​.1索引

MySQL支持对JSON数据中的特定字段创建索引,以加快查询速度。

1.6.1​​​​​​​.1更新

您可以使用JSON函数来更新JSON数据中的特定值,而无需重写整个JSON对象。

2主键primary key:

2.1唯一性

主键的值必须是唯一的。这意味着在整个表中,没有任何两个记录可以有相同的主键值。

2.1非空(Not Null)

主键字段不能存储空值(NULL)。每个记录都必须有一个对应的主键值。

2.2稳定性

一旦为某个记录分配了主键值,就不应该更改它。主键值的稳定性对于维护数据完整性和关系数据库的参照完整性至关重要。

2.3单字段或多字段

主键可以由表中的单个字段组成,这种情况下称为单字段主键(或简单主键)。它也可以由多个字段组合而成,称为复合主键。在复合主键中,组合起来的字段值在整个表中必须是唯一的,尽管单独的字段可能包含重复值。

2.4自动增长

在某些数据库管理系统中,主键字段可以被设置为自动增长,这样每当向表中插入新记录时,数据库会自动为新记录分配一个唯一的主键值。这通常用于整型主键。

2.5数据完整性

主键的存在有助于维护数据的完整性和准确性,因为主键约束确保了每个记录的唯一标识。

2.6性能优化

由于主键约束创建了索引,因此在基于主键值的查询上,数据库检索速度通常会更快

3.DDL之表操作:table:

3.1创建表(CREATE TABLE):

这个命令用于创建一个新的数据表。语法结构通常为CREATE TABLE 表名 (字段名1 数据类型, 字段名2 数据类型, ...);例如,CREATE TABLE Students (ID int, Name varchar(255), Age int);就会创建一个包含ID、Name和Age三个字段的Students表。

 

3.2删除表(DROP TABLE):

这个命令用于删除一个已存在的数据表。语法结构为DROP TABLE 表名;例如,DROP TABLE Students;就会删除名为Students的表。注意,这个操作会永久删除表及其所有数据,且无法恢复。

3.3 修改表结构(ALTER TABLE):

这个命令用于修改已存在数据表的结构。具体的操作包括:

3.3.1修改表名:

ALTER TABLE 旧表名 RENAME TO 新表名;

3.3.2添加字段:

ALTER TABLE 表名 ADD 列名 数据类型;

3.3.3删除字段:

ALTER TABLE 表名 DROP COLUMN 列名;

3.3.4修改字段名和数据类型:

ALTER TABLE 表名 CHANGE 旧列名 新列名 新数据类型;

3.3.5或者只修改数据类型:

ALTER TABLE 表名 MODIFY 列名 新数据类型;

3.4.查询表结构(DESCRIBE 或 DESC):

这个命令用于查询已存在数据表的结构。语法结构为DESCRIBE 表名;DESC 表名;执行后,将返回表的所有字段、数据类型和索引等信息。

结语:

今天关于MySQL数据库的内容就写到这里了,这些都是我自己学习的一些成果,同时也欢迎大家的斧正.

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

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

相关文章

java kafka客户端何时设置的kafka消费者默认值

kafka为什么有些属性没有配置却能正常工作,那是因为kafka-clients对有些消费者设置了默认值,具体看下ConsumerConfig类的静态模块,具体如下所示: kafka为什么有些属性没有配置却能正常工作,那是因为kafka-clients对有…

【软考】UML中的图之对象图

目录 1. 说明2. 图示3. 特性 1. 说明 1.对象图即object diagram2.展现了某一时刻一组对象以及它们之间的关系3.描述了在类图中所建立的事物的实例的静态快照4.对象图一般包括对象和链5.对象图展示的是对象之间关系,不存在交互,所以不是交互图 2. 图示 …

给电脑加硬件的办法 先找电脑支持的接口,再买相同接口的

需求:我硬盘太小,换或加一个大硬盘 结论:接口是NVMe PCIe 3.0 x4 1.找到硬盘型号 主硬盘 三星 MZALQ512HALU-000L2 (512 GB / 固态硬盘) 2.上官网查 或用bing查 非官方渠道信息,不确定。

智能物流新纪元:分布式I/O模块重塑仓储自动化

随着工业4.0概念的深入人心,物流行业正在经历前所未有的变革。在这个过程中,物流企业必须积极走向工业自动化、智能化,进而提高物流效率,降低物流成本,以便更好地满足客户和市场的需求。智能物流、仓库自动化已然是趋势…

云端巨擘:大数据与云计算的时代航向

文章目录 大数据时代大数据特点(4v1C大数据与云计算的关系 云计算云计算定义云计算特点云计算分类(服务类型)云计算实现机制云计算体系结构云计算的管理中间件层 大数据时代 大数据定义:海量数据或巨量数据,其规模巨大到无法通过…

经典排序算法之计数排序|c++代码实现

引言 排序算法c实现系列第8弹——计数排序。 计数排序是理解起来相对简单的一个排序算法, 计数排序 计数排序(Counting Sort)是一种非比较型的排序算法,它的基本思想是统计待排序数组中每个元素的出现次数,然后根据…

河南大学数据结构实验-顺序栈和链栈的实现

计算机与信息工程学院实验报告 姓名:杨馥瑞 学号:2212080042 专业:数据科学与大数据技术 年级:2022 课程:数据结构 主讲教师:袁彩虹老师 辅导教师:_______ 实验时间&…

【STL】set容器、pair队组与map容器

目录 1.修改set容器排序规则 2. set容器的各种函数 3.set构造函数multiset 4.创建pair队组 5.map容器 1.修改set容器排序规则 set容器会自动以升序的方式进行排序&#xff0c;想要改变可以制定排序规则&#xff0c;set<int,排序规则> s&#xff1b; 但需要注意&am…

Notepad++从文件夹查找文本内容

目录 一、背景二、Notepad搜索2.1 测试用例2.2 操作说明 一、背景 在日常的办公、学习或编程中&#xff0c;我们时长会遇到需要在大量文件中搜索特定文本内容的情况&#xff1a; 无论是快速定位某个项目中的代码片段&#xff1b;还是检索文档资料库中的相关信息等。 掌握如何…

【Python数据结构与判断5/7】列表的便捷操作

目录 目标 追加 列表的追加 列表的插入 生活场景应用 列表删除元素 变量作为列表元素 Debug 总结 目标 昨天&#xff0c;我们学习了列表&#xff0c;使用索引修改列表中的元素&#xff0c;以及通过切片获取指定元素。 今天我们会学习&#xff0c;如何在列表中追加元素、…

mysql数据库备份学习笔记

数据库备份 方法1 物理备份&#xff1a;xtrabackup 方法2 逻辑备份 mysqldump 参考备份与恢复的方法&#xff1a; 【MySql】Mysql之备份与恢复_mysql数据库备份与还原-CSDN博客 可以借鉴的物理备份&#xff1a; 思路是 先做一次全量备份&#xff0c;然后每天做一次增量备份…

Flask 专题

[CISCN2019 总决赛 Day1 Web3]Flask Message Board 查看session解密 但不知道密钥&#xff0c;题目说FLASK,那肯定就是找密钥,发现输入什么都没有显示&#xff0c;只有author那里有回显在版上&#xff0c;所以尝试sstl&#xff0c;{{config}}找到密钥 扫目录发现有admin进入…

AttributeError: cannot assign module before Module.__init__() call

原因 调用了自定义的类&#xff0c;但是在自定义的类的__init__函数下面没有写super( XXX, self ).init() 错误案例 import torch import torch.nn as nnclass SelfAttention(nn.Module):""" Self-Attention """def __init__(self, n_head, d…

四、MySQL

MySQL MySQL1.初识网站2.安装MySQL2.1 下载&#xff08;最重要的一点是路径中不能有中文&#xff0c;哪怕是同级目录也不行&#xff09;2.2安装补丁2.3安装2.4创建配置文件2.5初始化 3.启动MySQL4.连接测试4.1 设置密码4.2 查看已有的文件夹&#xff08;数据库&#xff09;4.3 …

深入浅出:Objective-C中使用MWFeedParser下载豆瓣RSS

摘要 本文旨在介绍如何在Objective-C中使用MWFeedParser库下载豆瓣RSS内容&#xff0c;同时展示如何通过爬虫代理IP技术和多线程提高爬虫的效率和安全性。 背景 随着信息量的激增&#xff0c;爬虫技术成为了获取和处理大量网络数据的重要手段。Objective-C作为一种成熟的编程…

速卖通安全测评补单技术提升运营安全性

对于一个新品来说&#xff0c;最大的问题就是评论。没有评论&#xff0c;你的广告就不能打的很靠前&#xff0c;那样你的转化率就会非常低&#xff0c;数据也很差。新品运气不好的来两个一星差评&#xff0c;链接可能就此废掉&#xff0c;做不上去了。所以虽然平台管的非常的严…

使用R语言计算模拟二项分布

二项分布理论 二项分布是一种离散概率分布&#xff0c;描述了在n次独立重复的伯努利试验中成功的次数的概率分布。其中&#xff0c;每次试验的结果只有两个可能&#xff1a;成功或失败&#xff0c;且每次试验的成功概率p是相同的。 具体来说&#xff0c;如果随机变量X表示在n次…

牛牛的凑数游戏 --- 题解

目录 牛牛的凑数游戏&#xff1a; 题目大意&#xff1a; 思路解析&#xff1a; 代码实现&#xff1a; 牛牛的凑数游戏&#xff1a; 题目大意&#xff1a; 思路解析&#xff1a; 我们可以很容易一个区间是否会存在1&#xff0c;那么我们想如果存在1&#xff0c;且有3个1&…

HANA VIEW 用 ABAP 创建CDS VIEW,在生成ODATA

这里我们做ADT来创建 场景介绍&#xff1a;把hana中的一个底表&#xff0c;创建成ABAP的 CDS VIEW &#xff0c;在把CDS VIEW 生成 OData 服务。 一、创建CDS Table Function 红框内根据自身情况填写 选择 Define Table Function with Parameters 创建 Data Definition 完整…

python项目开发——总结笔记(csv excel读取 服务端端口进程 拟合预测 时间格式转化 服务端程序维护)

目录 部署服务端程序 主服务端控制程序main.py 子目录的计算程序 jisuan.py 读取数据 读取csv数据读取 读取excel 时间格式转换 时间戳转datetime并且生成时间序列最后格式化时间 常用函数 拟合预测 服务端程序控制与维护 部署服务端程序 主服务端控制程序main.py …