MySQL按照,库的操作,表的约束 --- MySQL总结(一)

news2024/9/22 17:24:34

MySQL

文章目录

  • MySQL
    • MySQL的安装
    • MySQL组成架构
      • 连接池
      • 软件层
      • 引擎层
      • 储存层
    • 库的操作
      • 创建库
      • 修改数据库
      • 删除数据库
      • 备份数据库
      • 还原数据库
      • 查看链接情况
    • 表操作
      • 创建表
      • 查看表结构
      • 修改表结构
        • 添加字段
        • 修改字段类型长度
        • 更改表名
        • 修改属性
        • 删除表
      • 数据类型
      • 表的约束
        • 空属性(not null)
        • 默认值
        • 列描述
        • zerofill
        • 主键
        • image-20230418204637770
        • 复合主键
        • 唯一键
        • 外键
      • 表的增删改查
        • 数据的插入

MySQL的安装

按照mysql最简单的方法使用宝塔面板进行安装(需要直接安装宝塔面板,非常方便)

image-20230416085421427

选择mysql版本进行安装

IMG_1045AF0237A2-1

这样设置mysql密码,

IMG_65918F05D133-1

使用XShell进行连接,root可以更改用户名称,使用不同的用户进行登陆。

MySQL组成架构

mysql本质就是一个数据管理的软件

分成四成,对应数据进行控制。

c463af8e092da063e8aff443b58aa061

连接池

客户端与用户端连接,直接需要安全验证等内容,防止被攻击,出现危险情况,防止数据pass掉。

软件层

对应搜索引擎语句进行控制,进行输入MySQL语句的修改(进行修饰)。

其他的图在上面有解释

引擎层

根据使用频率等相关的操作,设置不同的储存引擎

create table student(
id int(10)
)engine = Merge;

比如这里把引擎设置成为Merge,可以使用其他的搜索引擎搜索。

储存层

将数据储存到硬盘之中的数据,进行相应的处理。

库的操作

创建库

create database if no exists databases_name charset=utf8 collate=utf8_general_ci;

后面的charset与collate为设置字符集与校验集,一般系统默认生产(决定性元素 :浅黄色文字:数据库本身的字符集,到OS本身的字符集 )。设置仅仅在需要更换操作系统的时候。

修改数据库

这一件事情最主要的时间就是alter(修改的意思),专门对应数据库内容的修改(不是 表的内容修改,是数据库的属性修改)。

alter database database_name/*数据库名称*/ charset= gbk;

这里将字符集将更改为gbk。数据库其他的属性也可以进行设置。

删除数据库

drop database if exists databases_name;

直接删除所有的数据的东西,包括对应的联机删除,里面的数据全部都被删除

备份数据库

mysqldump -P3306/*端口,可以自己进行设置*/ -uroot -p  password/*需要自己进行属性*/ -B database_name/*数据库名称*/ > 储存位置/*以.sql为结尾*/

image-20230416171210209

这里的.sql储存,之前书写过的sql语句

还原数据库

source 储存位置/*以.sql结尾*/ 

可以直接还原数据库的内容,这里的操作是在mysql数据库里面,

查看链接情况

IMG_0F5C55CEA4A6-1

表操作

创建表

create table if not exit table_name(
属性...
)character=utf8 engine=MyISAM;

不同的储存引擎,创建表的文件不相同。

查看表结构

image-20230416185131799

desc table_name;

IMG_52BFB7AD47A7-1

这里查看属性信息,具体的信息上面都进行解释。

修改表结构

这里最经常使用的alter(改变)进行表的结构改变。

添加字段

alter table table_name add id int(100) after id1;

这里增添一个名字叫做id,类型为int,大小为100字节,其他的类型添加也差不多。把id的字段添加到id1字段后面(after),也可以使用before设置咋某一个字段前面。

修改字段类型长度

alter table table_name modify column_name 类型长度

修改column 的类型长度与类型

image-20230416193719980

更改表名

alter table t1 rename to name2;

更改名字从t1变成name2。

修改属性

alter table table_name column1 change name column2 varchar(32); 

把column1改成 column2 类型为varchar(32)。

删除表

drop table table_name 

删除表名为table_name进行删除。

数据类型

IMG_77AA7371CBA3-1

tinyint 有符号的整形(-128 - 128),tinyint[unsigned]无符号整形,(255),bit[m] 表述有m个比特位。

flost(m,d) [unsinged]m为总的位数,小数点后面d位 进行标准

decimal比较flost之前有非常多区别,decimal精度更高char(L)固定的字符串,L为字符数量

char字符串为255 varchar()动态字符串类型 可以动态决定插入的字符串的范围。数据长度都是相同的就是使用定长,数据长度不相同使用变长(效率低)。

date类(日期类)yyyy-mm-dd

timestamp时间戳

datastamp 时间日期格式 yyyy-mm-dd HH:ii:ss 表示范围从1000到9999 自动获取现在的时间

enum枚举只可以属性选择其中的一个这里面储存的是相应的数字,而不是属性。

set集合可以选择多个属性使用位图进行储存相关的信息为0就是这个属性不存在,为就是这个属性存在。find_in_set(s)。

表的约束

空属性(not null)

create table table_name(
id int(10) not null
);

这里将id设置不为空,如果插入的时候为空,没有办法进行插入

默认值

IMG_CFBC6B893BCD-1

某一个属性的后面增加default 可以设置默认值,t1没有被填充的时候会自动填充为“空人”

列描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tkzlUX64-1681990945043)(https://raw.githubusercontent.com/assibe/Drawing-bed/master/%E6%88%AA%E5%B1%8F2023-04-18%2020.35.44.png)]

这里的comment进行注释,使用desc查看不到comment之后的注释。对应程序员进行限制。

show create table table_name ;

image-20230418203826112

zerofill

IMG_21D0954BB444-1

这里直接将id的所有的东西补充满

主键

一个表只有一个主键,主键对应的元素不可以重复,可以后序进行追加主键

这个一般是与其他的表无关的

image-20230418204637770

这里使用的primary key进行修饰id

这里与唯一键的最大是在业务上的,不是在语法上吗的区别

复合主键

image-20230418212328285

这里使用primary key(column1,column2),组成了复合主键,只要插入的元素与这两个同时不同就可以了。

image-20230418212617178

自增长

在这里插入图片描述

这里使用了自增长要与primary key(主键)进行联合使用。

这里插入数据之后缺少主键的值,就会自动进行增长。(缺省插入)

image-20230418214028126

如果插入与主键不同顺序的数字,之后的增长就会从自己插入的数字进行增长。

唯一键

image-20230418214357893

与主键的不同之处在于,这个唯一键为了满足业务本身而生成的唯一键,主键本身与业务无关。其他基本相同。

外键

定义主表与从表之间的关系,进行分表,增加查询的速度。

要保证使用的都是同一个数据库,主表必须是有主键或者唯一键约束。

image-20230419085715629

这里创建两个表,t1为第一个表,t2为第二个从表。他们相连的元素是主表(t1)的id,从表(t2)的pid。

这里利用的是他们的进行约束,基本上就是业务上面进行相连,例如

一个学校的班级表,与学校里面的学生表。学生表里面的班级就可以上学校的班级做为约束。

表的增删改查

数据的插入

简单的数据插入

image-20230420193034465

对应有主键的数据表进行插入,与普通插入不同,下面总结具体的插入的过程。

insert into table_name values(数据) ON DUPLICATE KEY UPDATE 数据;

这里既是是主键相同也可以进行插入,进行同步更新

replace into table_name(类型) values(数据);

主键重复(或者唯一键)没有冲突,则直接插入

主键重复(或者唯一键)有冲突,删除之后再插入

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

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

相关文章

typescript全局安装卸载以及npm相关问题

全局安装 npm install -g typescript 全局安装之后,如果想要卸载要使用 npm uninstall -g typescript 全局安装之后可以在终端使用 tsc xxx 编译ts文件 本地安装,也就是在项目目录下安装 npm install typescript 本地卸载 npm uninstall type…

【LeetCode】刷题数据结构(1)[反转链表]

【LeetCode】刷题数据结构(1) 1.题目来源2.题目描述3.解题思路4.代码展示 所属专栏:玩转数据结构题型 博主首页:初阳785 代码托管:chuyang785 感谢大家的支持,您的点赞和关注是对我最大的支持!&…

Elasticsearch ILM DSL 索引生命周期管理

1、冷热集群架构 冷热架构也叫冷暖架构,是“Hot-Warm” Architecture的中文翻译。 冷热架构本质是给节点设置不同的属性,让每个节点具备了不同的属性。为演示 ILM,需要首先配置冷热架构,三个节点在 elasticsearch.yml 分别设置的…

4月21号软件更新资讯合集.....

PlayEdu v1.0-beta.3 发布,视频培训解决方案 PlayEdu 是基于 SpringBoot3 Java17 React18 开发的企业内部培训系统。它专注于提供私有化部署方案,包括视频,图片等资源的内网部署。目前主要支持有本地视频上传播放、学员邮箱登录、无限级部门…

如何使用JMeter和Ant生成高效测试报告?

Jmeter接口自动化测试项目实战视频教程地址:https://www.bilibili.com/video/BV1e44y1X78S/? 目录:导读 引言 一、安装ant 二、ant关联jmeter工具 三、执行 结语 引言 你曾经在进行软件测试时遇到过测试结果难以分析,甚至花费大量时间…

机器学习基础知识之相关性分析

文章目录 相关性分析定义1、图表相关性分析2、协方差分析3、相关系数分析4、回归分析 相关性分析定义 相关性分析一般是指通过对两种或两种以上的变量数据进行数学分析来确定两种或两种以上的变量数据之间的相关密切程度。由此定义我们可以得知相关性分析的目的在于衡量变量数…

算法leetcode|48. 旋转图像(rust重拳出击)

文章目录 48. 旋转图像:样例 1:样例 2:提示: 分析:题解:rust:go:c:c:python:java: 48. 旋转图像: 给定一个 n n 的二维矩…

我国风电叶片行业分析:行业技术创新白热化竞争来临 后续回收再利用是行业可持续发展的关键

1、风电叶片行业定义及产业链 风电叶片是一个复合材料制成的薄壳结构,一般由外壳、腹板和主梁三部分组成,复合材料在整个风电叶片中的重量一般占到90%以上。风电叶片是风力发电机将风能转化为机械能的重要部件之一,其设计、制造及运行状态直…

易点易动设备管理系统帮助钢铁厂实现智能设备巡检

随着工业自动化和智能化的不断推进,越来越多的企业开始采用智能设备来提高生产效率和质量。然而,随之而来的是设备管理的复杂性和挑战性的增加。为了解决这一问题,易点易动设备管理系统应运而生,该系统可以帮助钢铁厂实现智能设备…

从C出发 28 --- 指针与数组

int a[ ] {1, 2, 3, 4, 0}; //定义了一个数组,这个数组有5个元素,每个元素是一个 int 类型变量 这里的地址是相同的,是相同的意味着数组的地址和 0 号元素的地址是一样的 结论: 数值上相同但是意义上不同,一个是数组整体…

有仰拍相机和俯拍相机时,俯拍相机中心和吸嘴中心的标定

俯拍相机中心和吸嘴中心的标定 文章目录 俯拍相机中心和吸嘴中心的标定 前言适用模型如下:一、使用一个标定片进行标定1.关键注意:2.标定步骤: 二、使用一个L型的工件1.关键注意:2.标定步骤: 总结 前言 在自动化设备领…

centos7查看磁盘io

1.查看所使用到的命令为iostat,centos7没有自带iostat,需要安装一下 2.安装iostat命令 yum -y install sysstat 3.使用iostat命令 iostat %user:表示用户空间进程使用 CPU 时间的百分比 %nice:表示用户空间进程以降低优先级的…

索引失效了?看看这几个常见的原因

索引是 MySQL 数据库中优化查询性能的重要工具,通过对查询条件和表数据的索引,MySQL可以快速定位数据,提高查询效率。但是,在实际的数据库开发和维护中,我们经常会遇到一些情况,导致索引失效,从…

Vue安装

Vue安装 一、安装二、使用步骤1.在项目中使用vue2.使用命令创建vue项目 一、安装 安装vue之前需要安装nodeJS 1.需要安装Node.js。可以从官方网站进行下载并安装。 2.这篇博客有详细的步骤 Node.js安装详解 3.或者在官网安装最新版本的不用配置Node.js下载官网 安装完成Nod…

Python每日一练(20230424)

目录 1. 滑动窗口最大值 🌟🌟🌟 2. 用栈实现队列 🌟 3. 直线上最多的点数 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一…

准确率,精确率,召回率,F1,AUC

以西瓜数据集为例,我们来详细解释一下什么是TP、TN、FP以及FN。 一、基础概念 TP:被模型预测为正类的正样本 TN:被模型预测为负类的负样本 FP:被模型预测为正类的负样本 FN:被模型预测为负类的正样本 二、通俗理解&am…

如何在 Linux 中查找文件所有者?

在 Linux 系统中,每个文件和目录都有一个所有者(owner)和一个所属组(group)。所有者通常是创建该文件或目录的用户,而所属组通常是文件或目录所属的组。在某些情况下,您可能需要查找特定文件或目…

前端学习--Ajax(5) Http

一、Http简介 1.1 通信 信息的传递和交换 通信三要素:主体(双方)、内容、方式 1.2 通信协议 通信双方通信遵守的规则 http--超文本传输协议:客户端与服务器之间进行网页内容传输时必须遵守的传输格式 1.3 HTTP 交互模型&a…

C++矩阵运算QT应用之Eigen库

前言 本文主要描述在c中应用Eigen进行矩阵(向量)的表示运算,以及Eigen库的下载和配置。 一. Eigen库介绍、下载及配置 Eigen是C中可以用来调用并进行矩阵计算的一个库,里面封装了一些类,需要的头文件和功能如下&…

Vue:Ajax跨域和axios简单使用

1、 第三方库方式, 基于 Promise 的 HTTP 库:axios (对 XMLHttpRequest进行的封装) 即: axios.get().then() 2、跨域访问 定义:在 a 页面中想获取 b 页面中的资源,如果 a 页面和 b 页面…