【数据库】Mysql精简回顾复习
一、概念
- 数据库(DB):数据存储的仓库
- 数据库管理系统(DBMS):操纵和管理数据库的大型软件
- SQL:操作关系型数据库的编程语言,是一套标准
- 关系型数据库(RDBMS):建立在关系模型基础上,由多张相互连接的二维表组成的数据库
二、DDL数据库操作
1.查询
查询所有数据库 show databases();
查询当前数据库 select database();
2.创建
create database if not exists+数据库名+default charset(字符集) + collate(排序规则);
3.删除
drop database if exists + 数据库名;
4.使用
use + 数据库名;
三、DDL表操作--查询
1.查询当前数据库所有表
show tables;
2.查询表结构
desc + 表名;
3.查询指定表的建表语句
show create table + 表名;
四、DDL表操作--创建
create table + 表名(
字段1 + 字段1类型 + comment + 字段1注释;
...
字段n + 字段n类型 + comment + 字段n注释;
)comment 表注释;
五、DDL表操作--修改
1.添加字段
alter+table+表名+add+字段名+类型(长度)+comment+注释;
2.修改数据类型
alter+table+表名+modify+字段名+新数据类型(长度);
3.修改字段名和字段类型
alter+table+表名+change+旧字段名+新字段名+类型(长度)+comment+注释;
4.删除字段
alter+table+表名+drop+字段名;
5.修改表名
alter+table+表名+rename to + 新表名;
6.删除表
drop+table(if exists)+表名;
7.删除指定表,并重新创建该表
truncate + table + 表名;
六、DML--添加数据
1.给指定字段添加数据
insert into+表名(字段名1,字段名2)+ values(值1,值2);
2.给全部字段添加数据
insert into+表名+ values(值1,值2);
注意:插入时字符串和日期型数据应该包含在引号中
七、DML--修改数据
update + 表名 + set + 字段名1 = 值1,字段名2 = 值2,... ,where + 条件;
八、DML--删除数据
delete from + 表名 + where + 条件;
九、DQL--基本查询
1.查询多个字段
select 字段1,字段2,字段3 ... from 表名;
select * from + 表名;
2.设置别名
select 字段1 as 别名1 from 表名;
3.去重
select distinct 字段列表 + from + 表名 ;
十、DQL--条件查询
select + 字段列表 + from + 表名 + where + 条件列表(like + 占位符);
十一、DQL--聚集函数
注意:聚集函数只能用于select子句和group by中的having子句
- count
- max
- min
- avg
- sum
select + 聚集函数(字段列表)+ from + 表名;
十二、DQL--分组查询
select + 字段列表 + from + 表名 + where条件 + group by分组字段名 + having 分组后过滤条件;
//查询平均成绩大于等于90分的学生学号和平均成绩Select Sno,AVG(Grade)
from SC group by Sno
having AVG(Grade) >= 90;
十三、DQL--排序查询
- asc 升序(默认)
- desc 降序
select + 字段列表 + from + 表名 + order by + 字段1 排序方式1,字段2 排序方式2;
十四、DQL--分页查询
select + 字段列表 + from + 表名 + limit + 起始索引,查询记录数;
起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数
十五、DCL--管理用户
1.查询用户
use mysql;
select * from user;
2.创建用户
create user '用户名' @ ‘主机名’ identified by '密码';
3.修改用户密码
alter user '用户名' @ ‘主机名’ identified with mysql_native_password by '新密码';
4.删除用户
drop user '用户名' @ ‘主机名’
十六、DCL--权限控制
1.查询权限
show grants for '用户名' @ ‘主机名’ ;
2.授予权限
grant 权限列表 on 数据库名.表名 to '用户名' @ ‘主机名’ ;
3.撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名' @ ‘主机名’;
十七、外键约束
1.添加外键
create table 表名(
字段名 数据类型,
...
[constraint] [外键名称] foreign key (外键字段名) references 主表(主表列名)
);
alter table 表名 add constraint 外键名称 foreign key (外键字段名) references 主表(主表列名);
2.删除外键
alter table 表名 drop foreign key 外键名称;
3.删除/更新行为
no action / restrict
当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新
cascade
当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则强制删除/更新外键在子表中的记录
set null
当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null
set default
父表有变更时,子表将外键列设置成一个默认的值
十八、多表查询--笛卡尔积
select * from emp,dept where emp.dept_id = dept_id;
十九、连接查询--内连接
内连接查询的是两张表交集的部分
1.隐式内连接
select 字段列表 from 表1,表2 where 条件 ... ;
例:select emp.name,dept.name from emp,dept where emp.dept_id = dept.id;
2.显式内连接
select 字段列表 from 表1 [inner] join 表2 on 连接条件;
例:select e.name,d.name from emp e inner join dept d on e.dept_id = d.id;
二十、连接查询--外连接
1.左外连接
select 字段列表 from 表1 left [outer] join 表2 on 条件... ;
相当于表A的所有数据以及包含表A和表B交集部分的数据
2.右外连接
select 字段列表 from 表1 right [outer] join 表2 on 条件 ... ;
相当于表B的所有数据以及包含表A和表B交集部分的数据
二十一、连接查询--自连接
可以是内连接,也可以是外连接
select 字段列表 from 表A 别名A join 表A 别名B on 条件...;
二十二、联合查询--union,union all
就是将多次查询的结果合并起来,形成一个新的查询结果集
对于联合查询的多张表的列数必须保持一致,字段类型也需要保持一致
select 字段列表 from 表A ...
union [all]
select 字段列表 from 表B ... ;
union all会将全部的数据直接合并在一起,union会对合并之后的数据去重
二十三、子查询
SQL语句中嵌套的select语句,称为嵌套查询,又称子查询
- 标量子查询:返回的结果是单个值
- 列子查询:返回的结果是一列(可以是多行)
- 行子查询:返回的结果是一行(可以是多列)
- 表子查询:返回的结果是多行多列
二十四、带有exists谓词的子查询
其不返回任何数据,只产生逻辑真值“true”,或逻辑假值“false”
//例:查询所有选修了1号课程的学生姓名select Sname
from Student
where exists(
select *
from SC
where Sno = Student.Sno AND Cno = '1'
);
//例:查询选修了全部课程的学生姓名select Sname
from Student
where not exists(
select *
from Course
where not exists
(select *
from SC
where Sno = Student.Sno AND Cno = Course.Cno
)
);
二十五、事务
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体,一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败
1.事务操作(其一)
1.查看/设置事务的提交方式
select @@autocommit;
set @@autocommit = 0;
2.提交事务
commit;
3.回滚事务
rollback;
2.事务操作(其二)
1.开启事务
start transaction / begin
2.提交事务
commit;
3.回滚事务
rollback;
3.事务四大特性
- 原子性:事务是不可分割的最小单元
- 一致性:事务完成时,必须使所有的数据都保持一致状态
- 隔离性:保证事务在不受外部并发操作影响的独立环境下运行
- 持久性:事务一旦提交或回滚,它对数据的改变是永久的
二十六、索引
是帮助数据库高效获取数据的数据结构
1.结构
默认为B+ Tree结构组织的索引
B+ Tree(多路平衡搜索树)
- 每一个节点,都可以存储多个key(有n个key,就有n个指针)
- 所有的数据都存储在叶子节点,非叶子节点仅用于索引数据
- 叶子节点形成了一个双向链表,便于数据的排序及区间范围查询
2.语法
(1)创建索引
create [unique] index 索引名 on 表名 (字段名,...);
(2)查看索引
show index from 表名;
(3)删除索引
drop index 索引名 on 表名;
注意:
在建表时,主键字段会自动创建主键索引
添加唯一约束时,数据库实际上会添加唯一索引
相关文章:
【数据库】Mysql精简回顾复习
一、概念 数据库(DB):数据存储的仓库数据库管理系统(DBMS):操纵和管理数据库的大型软件SQL:操作关系型数据库的编程语言,是一套标准关系型数据库(RDBMS)&…...
深入理解 HTTP 的 GET、POST 方法与 Request 和 Response
HTTP 协议是构建 Web 应用的基石,GET 和 POST 是其中最常用的请求方法。无论是前端开发、后端开发,还是接口测试,对它们的深入理解都显得尤为重要。在本文中,我们将介绍 GET 和 POST 方法,以及 Request 和 Response 的…...
MySQL 中联合索引相比单索引性能提升在哪?
首先我们要清楚所以也是要占用磁盘空间的,随着表中数据量越来越多,索引的空间也是随之提升的,因而单表不建议定义过多的索引,所以使用联合索引可以在一定程度上可以减少索引的空间占用其次,使用联合索引的情况下&#…...
第34天:安全开发-JavaEE应用反射机制攻击链类对象成员变量方法构造方法
时间轴: Java反射相关类图解: 反射: 1、什么是 Java 反射 参考: https://xz.aliyun.com/t/9117 Java 提供了一套反射 API ,该 API 由 Class 类与 java.lang.reflect 类库组成。 该类库包含了 Field 、 Me…...
C++笔记之数据单位与C语言变量类型和范围
C++笔记之数据单位与C语言变量类型和范围 code review! 文章目录 C++笔记之数据单位与C语言变量类型和范围一、数据单位1. 数据单位表:按单位的递增顺序排列2. 关于换算关系的说明3. 一般用法及注意事项4. 扩展内容5. 理解和使用建议二、C 语言变量类型和范围基本数据类型标准…...
算法-拆分数位后四位数字的最小和
力扣题目2160. 拆分数位后四位数字的最小和 - 力扣(LeetCode) 给你一个四位 正 整数 num 。请你使用 num 中的 数位 ,将 num 拆成两个新的整数 new1 和 new2 。new1 和 new2 中可以有 前导 0 ,且 num 中 所有 数位都必须使用。 …...
Python 管理 GitHub Secrets 和 Workflows
在现代软件开发中,自动化配置管理变得越来越重要。本文将介绍如何使用 Python 脚本来管理 GitHub 仓库的 Secrets 和 Workflows,这对于需要频繁更新配置或管理多个仓库的团队来说尤为有用。我们将分三个部分进行讨论:设置 GitHub 权限、创建 GitHub Secret 和创建 GitHub Wo…...
指令的修饰符
指令的修饰符 参考文献: Vue的快速上手 Vue指令上 Vue指令下 Vue指令的综合案例 文章目录 指令的修饰符指令修饰符 结语 博客主页: He guolin-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力&…...
C# 正则表达式完全指南
C# 正则表达式完全指南 C#通过 System.Text.RegularExpressions 命名空间提供强大的正则表达式支持。本指南将详细介绍C#中正则表达式的使用方法、性能优化和最佳实践。 1. 基础知识 1.1 命名空间导入 using System.Text.RegularExpressions;1.2 基本使用 public class Re…...
【笔记整理】记录参加骁龙AIPC开发者技术沙龙的笔记
AIoT 首先了解了一个概念叫AIoT,我的理解就是AI IoT 5G,通过AI的发展使得边缘计算、数据整合和处理变得快捷方便,不仅限于传统的云端数据处理,在边缘的IoT设备上也可以进行智能化打造,通过5G的通信能力扩展可以实现…...
论文解析 | 基于语言模型的自主代理调查
论文 《A Survey on Large Language Model-based Autonomous Agents》 对基于大型语言模型(LLM)的自主智能体(Autonomous Agents)进行了全面调查。随着大型语言模型(如 GPT 系列、BERT、T5 等)的快速发展&a…...
面试加分项:Android Framework AMS 全面概述和知识要点
第一章:AMS 的架构与组件 1.1 AMS 整体架构 在 Android 系统的庞大体系中,AMS(Activity Manager Service)就如同一个中枢神经系统,是整个系统的核心服务之一,对应用的性能和用户体验有着直接且关键的影响 。它的整体架构由 Client 端和 Service 端两大部分组成,这两端相…...
EasyCVR视频汇聚平台如何配置webrtc播放地址?
EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。平台支持多协议接入,能将接入到视频流转码为多格式进行分发,包括RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、W…...
用户界面软件04
后果 使用这种架构很容易对两个层面的非功能性需求进行优化,但是你仍然需要小心不要将功能 需求重复实现。 现在,两个层面可能有完全不同的设计。比如,用户界面层可能使用配件模型(Widget Model), 以大量的…...
C#,数值计算,矩阵相乘的斯特拉森(Strassen’s Matrix Multiplication)分治算法与源代码
Volker Strassen 1 矩阵乘法 矩阵乘法是机器学习中最基本的运算之一,对其进行优化是多种优化的关键。通常,将两个大小为N X N的矩阵相乘需要N^3次运算。从那以后,我们在更好、更聪明的矩阵乘法算法方面取得了长足的进步。沃尔克斯特拉森于1…...
linux:文件的创建/删除/复制/移动/查看/查找/权限/类型/压缩/打包
关于文件的关键词 创建 touch 删除 rm 复制 cp 权限 chmod 移动 mv 查看内容 cat(全部); head(前10行); tail(末尾10行); more,less 查找 find 压缩 gzip ; bzip 打包 tar 编辑 sed 创建文件 格式: touch 文件名 删除文件 复制文件 移动文件 查看文…...
SQL Server查询计划操作符——查询计划相关操作符(3)
7.3. 查询计划相关操作符 19)Collapse:该操作符对更改处理进行优化。当执行一个更改时,其能被劈成(用Split操作符)一个删除和一个插入。其参数列包含一个确定一系列键值字段的GROUP BY:()子句。如果查询处理器遇到删除和插入相同键值的毗邻行,其将用一个更高效的更改操作…...
【Notepad++】Notepad++如何删除包含某个字符串所在的行
Notepad如何删除包含某个字符串所在的行 一,简介二,操作方法三,总结 一,简介 在使用beyoundcompare软件进行对比的时候,常常会出现一些无关紧要的地方,且所在行的内容是变化的,不方便进行比较&…...
Android 来电白名单 只允许联系人呼入电话
客户需求只允许通讯录中联系人可以呼入电话。参考自带的黑名单实现 CallsManager.java类中的onSuccessfulIncomingCall方法有一些过滤器,可以仿照黑名单的方式添加自己的过滤器。 packages/services/Telecomm/src/com/android/server/telecom/CallsManager.java …...
【计算机网络】lab3 802.11 (无线网络帧)
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀计算机网络_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2.…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
字符串哈希+KMP
P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...
结构化文件管理实战:实现目录自动创建与归类
手动操作容易因疲劳或疏忽导致命名错误、路径混乱等问题,进而引发后续程序异常。使用工具进行标准化操作,能有效降低出错概率。 需要快速整理大量文件的技术用户而言,这款工具提供了一种轻便高效的解决方案。程序体积仅有 156KB,…...
