MySQL学习大纲
了解 MySQL 的基础知识和命令是使用此数据库的前提。以下是一些必须了解的 MySQL 概念和命令,包括基础的 CRUD(创建,读取,更新,删除)操作,以及一些高级功能:
1. 安装和启动
- 命令
sudo apt-get install mysql-server sudo service mysql start
- 解析:
这些命令在基于 Debian 的系统上安装 MySQL 服务器,并启动服务。
2. 登录数据库
- 命令
mysql -u root -p
- 解析:
使用 root 用户登录 MySQL 数据库。系统将提示您输入密码。
3. 数据库操作
a) 创建数据库
- 命令
CREATE DATABASE mydatabase;
- 解析:
创建一个名为 “mydatabase”的新数据库。
b) 选择数据库
- 命令
USE mydatabase;
- 解析:
选择先前创建的 “mydatabase” 数据库以进行进一步操作。
c) 查看所有数据库
- 命令
SHOW DATABASES;
- 解析:
列出服务器上存在的所有数据库。
4. 表操作
a) 创建表
- 命令
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),email VARCHAR(100) );
- 解析:
在当前数据库中创建一个名为“users”的新表,包含 id、name 和 email 列。
b) 查看所有表
- 命令
SHOW TABLES;
- 解析:
列出当前数据库中存在的所有表。
c) 查看表结构
- 命令
DESCRIBE users;
- 解析:
显示“users”表的结构,包括列名、数据类型等。
5. 记录操作
a) 插入记录
- 命令
INSERT INTO users (name, email) VALUES ('John Doe', 'john.doe@example.com');
- 解析:
在“users”表中插入一条新记录。
b) 查询记录
- 命令
SELECT * FROM users;
- 解析:
从“users”表中检索所有记录。
c) 更新记录
- 命令
UPDATE users SET email = 'john.new@example.com' WHERE name = 'John Doe';
- 解析:
更新“users”表中特定记录的 email 地址。
d) 删除记录
- 命令
DELETE FROM users WHERE name = 'John Doe';
- 解析:
从“users”表中删除特定的记录。
6. 索引
- 命令
CREATE INDEX idx_users_name ON users(name);
- 解析:
在“users”表的 name 列上创建索引,以加快查询速度。
7. 用户和权限
a) 创建用户
- 命令
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
- 解析:
创建一个新的 MySQL 用户并设置密码。
b) 授予权限
- 命令
GRANT ALL PRIVILEGES ON mydatabase.* TO 'newuser'@'localhost';
- 解析:
授予新用户访问特定数据库的所有权限。
8. 备份与恢复
a) 备份数据库
- 命令
mysqldump -u root -p mydatabase > mydatabase.sql
- 解析:
将特定数据库备份到 SQL 文件。
b) 恢复数据库
- 命令
mysql -u root -p mydatabase < mydatabase.sql
- 解析:
从 SQL 文件恢复数据库。
9. 优化与维护
a) 优化表
- 命令
OPTIMIZE TABLE users;
- 解析:
优化特定表以回收未使用的空间,并改善性能。
b) 检查表
- 命令
CHECK TABLE users;
- 解析:
检查表的完整性,查找错误。
这些基础知识和命令是入门 MySQL 的基础,但 MySQL 还有更多高级功能和优化技术,值得深入学习和了解。
1. 分区表
- 命令
CREATE TABLE employees (id INT,name VARCHAR(50),hired DATE ) PARTITION BY RANGE( YEAR(hired) ) (PARTITION p0 VALUES LESS THAN (1991),PARTITION p1 VALUES LESS THAN (1999),PARTITION p2 VALUES LESS THAN MAXVALUE );
- 解析
这个命令创建了一个分区表,根据“hired”列的年份值将数据分成不同的部分。这可以优化查询性能,尤其是在处理大量数据时。
2. 子查询
- 命令
SELECT name FROM employees WHERE id IN (SELECT id FROM department WHERE name = 'HR');
- 解析
这个命令执行了一个子查询,查找属于HR部门的所有员工的名字。子查询可以用于构建更复杂的查询。
3. 视图
- 命令
CREATE VIEW hr_employees AS SELECT name FROM employees WHERE department = 'HR';
- 解析
这个命令创建了一个视图,列出了所有属于HR部门的员工。视图是基于SQL查询的虚拟表,可用于简化复杂的查询。
4. 存储过程
- 命令
DELIMITER // CREATE PROCEDURE GetEmployeeCount(IN dept_name VARCHAR(50), OUT count INT) BEGINSELECT COUNT(*) INTO count FROM employees WHERE department = dept_name; END // DELIMITER ; CALL GetEmployeeCount('HR', @count); SELECT @count;
- 解析
这个命令定义了一个存储过程,用于获取特定部门的员工数量。存储过程是存储在数据库中的一组SQL语句,可以通过单个调用来执行。
5. 触发器
- 命令
DELIMITER // CREATE TRIGGER before_employee_update BEFORE UPDATE ON employees FOR EACH ROW BEGINSET NEW.updated_at = NOW(); END; // DELIMITER ;
- 解析
这个命令创建了一个触发器,在每次更新“employees”表之前自动设置“updated_at”字段。触发器可以用于自动执行数据库操作。
6. 事务
- 命令
START TRANSACTION; UPDATE account SET balance = balance - 100 WHERE name = 'John'; UPDATE account SET balance = balance + 100 WHERE name = 'Jane'; COMMIT;
- 解析
这个命令执行了一个事务,将一笔金额从John的账户转到Jane的账户。事务可以确保一组操作的原子性,要么全部成功,要么全部失败。
7. 索引优化
- 命令
ALTER TABLE employees ADD INDEX idx_department (department);
- 解析
通过为经常用于搜索和排序的列添加索引,可以显著提高查询性能。
8. 查询缓存
- 解析
MySQL有内建的查询缓存。当启用查询缓存时,MySQL会存储SELECT查询的结果,当收到完全相同的查询时,它会从缓存中直接返回结果,而不是重新执行查询。
9. 性能分析
- 命令
EXPLAIN SELECT * FROM employees WHERE department = 'HR';
- 解析
使用EXPLAIN命令,可以看到MySQL是如何执行查询的,这对于优化查询性能非常有用。
10. 数据库归档
- 解析
为了提高性能和管理大量数据,您可以定期归档旧的数据记录。
11. 全文搜索
- 命令
ALTER TABLE articles ADD FULLTEXT(title, content); SELECT * FROM articles WHERE MATCH(title, content) AGAINST('keyword');
- 解析
MySQL 支持对 CHAR、VARCHAR 和 TEXT 列执行全文搜索。全文索引可用于快速查找包含特定单词或短语的记录。
12. 外键和参照完整性
- 命令
ALTER TABLE orders ADD FOREIGN KEY (customer_id) REFERENCES customers(id);
- 解析
外键用于确保表之间的数据完整性。在这个例子中,orders
表中的customer_id
列被定义为customers
表中id
列的外键。
13. 事件调度器
- 命令
SET GLOBAL event_scheduler = ON; CREATE EVENT myevent ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DOUPDATE mytable SET mycolumn = mycolumn + 1;
- 解析
事件调度器用于定时执行数据库命令或操作。这个例子中,一个事件被创建来在一个小时后更新表中的一个列。
14. 表空间和分区管理
- 解析
表空间允许您管理数据库的物理结构。分区可以将一个物理表分割成多个小的子表,这可以优化大表的查询性能。
15. 在线DDL操作
- 命令
ALTER TABLE tablename ADD COLUMN newcol INT, ALGORITHM=INPLACE, LOCK=NONE;
- 解析
在线 DDL 操作允许您在不阻塞对现有表的访问的情况下,修改表的结构。
16. 窗口函数
- 命令
SELECT name, salary, AVG(salary) OVER(PARTITION BY department) as avg_salary_department FROM employees;
- 解析
窗口函数允许您在每行的基础上执行计算,这在计算聚合值时特别有用,例如每个部门的平均工资。
17. Common Table Expressions (CTE)
- 命令
WITH cte_name AS (SELECT department, AVG(salary) as avg_salaryFROM employeesGROUP BY department ) SELECT * FROM cte_name;
- 解析
CTE 提供了定义临时结果集的方法,这个结果集可以在一个 SELECT、INSERT、UPDATE 或 DELETE 查询中引用。
18. 优化器
- 解析
MySQL 查询优化器会自动选择最有效的查询执行计划。您可以使用提示和索引来影响优化器的决策,以及使用EXPLAIN
命令来查看优化器的选择。
19. 资源组
- 命令
CREATE RESOURCE GROUP rg1 TYPE = USER VCPU = 2,4 PRIORITY = 10;
- 解析
资源组允许您将系统资源分配给特定的查询,以便在多租户环境中管理工作负载。
这些是 MySQL 的一些额外高级功能和优化技术,这些功能和技术有助于高效地管理和查询数据库。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
MySQL学习大纲
了解 MySQL 的基础知识和命令是使用此数据库的前提。以下是一些必须了解的 MySQL 概念和命令,包括基础的 CRUD(创建,读取,更新,删除)操作,以及一些高级功能: 1. 安装和启动 命令su…...
![](https://img-blog.csdnimg.cn/img_convert/b6592ab25a41dcb293d25ffcb30f5fac.png)
【Ambari】银河麒麟V10 ARM64架构_安装Ambari2.7.6HDP3.3.1(HiDataPlus)
🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐开着拖拉机回家_大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的帮助🌸文…...
![](https://img-blog.csdnimg.cn/f9197261127343fcba2bcd9c296e7590.jpeg)
驱动开发练习,platform实现如下功能
实验要求 驱动代码 #include <linux/init.h> #include <linux/module.h> #include <linux/platform_device.h> #include <linux/mod_devicetable.h> #include <linux/of_gpio.h> #include <linux/unistd.h> #include <linux/interrupt…...
![](https://www.ngui.cc/images/no-images.jpg)
QT之QString的用法介绍
QT之QString的用法介绍 成员函数常见用法 成员函数 1)QString &append(const QString &str) 将 str 字符串追加到当前字符串末尾,并返回修改后的 QString 对象的引用。 2)QString &prepend(const QString &str) 将 str 字符…...
![](https://img-blog.csdnimg.cn/e9eb0a0d29e64a3a94cffdb152c8443f.png)
基于Java+SpringBoot+Vue3+Uniapp前后端分离考试学习一体机设计与实现2.0版本(视频讲解,已发布上线)
博主介绍:✌全网粉丝4W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…...
![](https://img-blog.csdnimg.cn/0cb4d0a24ef14d52817fbfdf92822a04.png)
springboot 获取参数
1.获取简单参数 2.实体对象参数...
![](https://img-blog.csdnimg.cn/3ae4e37900db414f9ce88a53828e8856.png)
【笔记】离线Ubuntu20.04+mysql 5.7.36 + xtrabackup定时增量备份脚本
一、环境 ● Ubuntu版本查看 lsb_release -a● mysql 版本查看 mysql --version我的是ubuntu 20.04,mysql是5.7.36,所以要用 install_percona-xtrabackup-24 二、原理 备份 通过ubuntu自带的定时器运行增量备份脚本备份文件可以存储在映射后的其他…...
![](https://www.ngui.cc/images/no-images.jpg)
树哈希与换根dp:CF763D
采用的树哈希函数是: d p x w x ∑ y ∈ x d p y 2 w x 2 \Large dp_xw_x\times \sum_{y\in x}dp_y^2w_x^2 dpxwxy∈x∑dpy2wx2 发现从 x x x 到 y y y 时只有 x x x 与 y y y 的哈希值会变化,分别维护即可 #include<bits/stdc.h&…...
![](https://img-blog.csdnimg.cn/img_convert/9441b781c5451cdb2aa59dc7d02573c3.png)
npm、yarn、pnpm如何清除缓存?
前端工程化创建项目会经常使用各种安装包管理工具,安装各种前端依赖包。例如,npm、yarn、pnpm等。时间一长,各种安装包管理工具的在安装依赖时,留下的缓存文件就会变得很大,以至于影响系统的运行,因此必要时…...
![](https://img-blog.csdnimg.cn/0c032c56d74f4183addb366df1218531.png)
12款最火的AI画图软件,助你探索创新设计
ChatGPT火爆出圈,AI画图软件也如雨后春笋般流行起来。各类AI画图的软件工具横空出世,设计师与其焦虑工作会不会被人工智能取代,不如践行“工欲善其事必先利其器”,开拓思路,打开格局,好好地探索下如何利用好…...
![](https://img-blog.csdnimg.cn/img_convert/0bb07cbd10e1706a54f260b551690c47.png)
cookie信息无法获取问题研究
背景 在oneapi这个前后端都有的开源项目中,我想接入chatnextweb到oneapi的后端。 由于需要二开chatnextweb,添加登录注册功能,考虑到java后端的性能问题和内存占用,决定不重启写个服务,而是将登录注册接入到oneapi的…...
![](https://img-blog.csdnimg.cn/7d1558fb00214ff9905195b5cf02343a.png)
Linux:冯诺依曼系统和操作系统的概念
文章目录 冯诺依曼体系结构冯诺依曼体系的理解 操作系统操作系统的基本定位操作系统的理解1 操作系统的理解2总结 本篇主要总结的是操作系统的基本认知和一些概念 冯诺依曼体系结构 那么上图表示的就是冯诺依曼体系结构,那这个体系结构是什么?为什么要先…...
![](https://img-blog.csdnimg.cn/1a8c810a943e4bb49f07cac966d23a7d.png)
【操作系统笔记十一】进程间通信
Linux文件系统 inode 节点 (index node):给每个文件赋予一个称为 i 节点的数据结构。 inode 一开始是存储在硬盘中的,只有当文件被打开的时候,其对应的 i 节点才加载到内存中。 总结: Linux 中,…...
![](https://www.ngui.cc/images/no-images.jpg)
【操作系统】聊聊Linux软中断
什么是中断 中断是系统用来响应硬件设备请求的一种机制,会打断进程的正常调度和执行,转而去执行内核中的中断处理程序。 比如你正在看书,你女朋友叫你出去逛街。你就需要先放下手里的事情,然后逛街。回来之后,在接着看…...
![](https://img-blog.csdnimg.cn/img_convert/d55ad9d3cafd401a1c0db2ac2f108280.jpeg)
公众号迁移个人可以迁移吗?
公众号账号迁移的作用是什么?只能变更主体吗?很多小伙伴想做公众号迁移,但是不知道公众号迁移有什么作用,今天跟大家具体讲解一下。首先公众号迁移最主要的就是修改公众号的主体了,比如我们公众号原来是A公司的&#x…...
![](https://img-blog.csdnimg.cn/efebd83fb0874933bfbe7335ec13eece.png)
全国职业技能大赛云计算--高职组赛题卷⑤(容器云)
全国职业技能大赛云计算--高职组赛题卷⑤(容器云) 第二场次题目:容器云平台部署与运维任务2 基于容器的web应用系统部署任务(15分)任务3 基于容器的持续集成部署任务(15分)任务4 Kubernetes容器…...
![](https://img-blog.csdnimg.cn/fb97278803e04a829c1c8f2d42a789e2.jpeg)
支撑位和阻力位在Renko和烛台图如何使用?FPmarkets澳福3秒回答
很多投资者都知道,Renko图表和普通日本烛台都会采用相同的交易信号,即支撑位和阻力位。那么支撑位和阻力位在Renko和烛台图如何使用?FPmarkets澳福3秒回答。 这些信号在任何时间框架上都会出现,且在蜡烛图交易中颇受欢迎。对于Renko图表而言…...
![](https://img-blog.csdnimg.cn/1df5a790efc447db9089fd024d06f55c.png)
如何在32位MCU用printf()函数打印64位数据
1. 在32位MCU上定义64位变量: unsigned long long time_base; unsigned long long temp_time;2. 调用打印函数: printf("RFID:time_base:%d\r\n",time_base); printf("RFID:temp_time:%d\r\n",temp_time); printf("RFID:Ru…...
![](https://img-blog.csdnimg.cn/8ae5f3892b98458f8e86f9d7c8151e88.png)
Python爬虫程序设置代理常见错误代码及解决方法
Python爬虫程序设置代理是爬虫程序中常用的技巧,可以有效地绕过IP限制,提高爬虫程序的稳定性和效率。然而,在设置代理时,常会出现各种错误代码,这些错误代码可能会影响程序的正常运行,甚至导致程序崩溃。本…...
![](https://img-blog.csdnimg.cn/fc4644a0f1074940acd31630715696da.png)
3D点云目标检测:Centerformer训练waymo数据集
一、环境准备 项目地址:centerformer 1.0、基础环境 python 3.8.0 torch 1.9.1cu111 waymo-open-dataset-tf-2-6-0 1.4.9 spconv 1.2.1 其余按照requirement.txt里安装就行 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt由于我本人是在…...
![](https://img-blog.csdnimg.cn/c1c0085c11754535bc7e4b12fbdf46ea.gif)
火山引擎DataLeap推出两款大模型应用: 对话式检索与开发 打破代码语言屏障
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 自上世50年代,以“计算机”作为代表性象征的信息革命开始,社会对于先进生产力的认知便开始逐步更迭——从信息化(通常认为是把企…...
![](https://img-blog.csdnimg.cn/86ff33315c524234abaae36222d0a2fd.png)
windows上配置vscode C/C++代码跳转
windows上配置vscode C/C代码跳转 安装插件 C/C 官方的 C/C 插件,必备的插件,是代码跳转、自动补全、代码大纲显示等功能的基础。 Gtags C/C GNU Global GNU Global除了安装该插件之外,还需要在本地下载安装GNU Global工具。多看下插件…...
![](https://img-blog.csdnimg.cn/fdb20f8a4c974276959affc7a0b4d217.png)
【Xilinx】基于MPSoC的OpenAMP实现(一)
【Xilinx】基于MPSoC的OpenAMP实现(一) 一、开发环境1、开发思路2、下载官方bsp包 二、编译Linux1、配置petalinux环境变量2、创建工程3、进入目录4、设置缓存目录(重点:可离线编译,加快编译速度)5、配置u-…...
![](https://img-blog.csdnimg.cn/f964e6bd900b4143b097bcca3c73f1f8.png)
代码随想录算法训练营总结篇|完结撒花
完结撒花,真不敢相信60天坚持下来了。 算法一直是我的超级超级弱项,属于小白中的小白。一开始是想自己刷的,打开leetcode第一题,吼哟好家伙,梦开始的地方直接破碎。之前刷B站的时候就有学习up推荐算法可以看看代码随想…...
![](https://img-blog.csdnimg.cn/43fb4e80efa74318928f89145cccae16.png)
uniapp、vue实现滑动拼图验证码
uniapp、vue实现滑动拼图验证码 实际开发工作中,在登陆的时候需要短信验证码,但容易引起爬虫行为,需要用到反爬虫验证码,今天介绍一下拼图验证码,解决验证码反爬虫中的滑动验证码反爬虫。滑动拼图验证码是在滑块验证码…...
![](https://img-blog.csdnimg.cn/f339db11e49b4c92ba243b3df0aedc84.png#pic_center)
【ArcGIS】土地利用变化分析详解(矢量篇)
土地利用变化分析详解-矢量篇 土地利用类型分类1 统计不同土地利用类型的面积/占比1.1 操作步骤Step1:Step2:计算面积Step3:计算占比 2 统计不同区域各类土地利用类型的面积2.1 操作步骤 3 土地利用变化转移矩阵3.1 研究思路3.2 操作步骤 4 分…...
![](https://img-blog.csdnimg.cn/d6f4cf615d2647249ad684c9f942417d.png)
VS2022创建控制台应用程序后没有Main了,如何显示Main?
文章目录 问题描述原因解决方案简单的顶级语句试用计算器 其他文章 问题描述 用VS2022创建一个控制台应用后,没有名称空间和Main函数了,只有一个WriteLine,如下所示。 // See https://aka.ms/new-console-template for more information Co…...
![](https://img-blog.csdnimg.cn/2cdf7e32ae3942eea5da7f0a5001e683.png)
当当网商品详情数据接口
当当网商品详情数据接口可以通过当当网的开放平台获取相关信息。您可以注册当当开放平台账号,并按照要求提交申请获取API接口的调用凭证。获得授权后,您将会收到一组AccessKey和SecretKey。使用编程语言(如Java)调用API接口&#…...
![](https://img-blog.csdnimg.cn/f3ad93c9cd0940328053d6ea8293e3f8.png)
ultraEdit正则匹配多行(xml用)
在ultraEdit中,我想选取<channel到</channel>之间的多行(进行删除)。在perl模式下,命令为“<channel[\s\S]?</channel>”。下面是xml文件: <!--This XML file does not appear to have any sty…...
![](https://www.ngui.cc/images/no-images.jpg)
Mac上的utools无法找到本地搜索插件
utools安装地址 utools本地搜索用法 目前本地搜索只在win下,mac无福了 Mac可用cmdspace方法使用聚焦搜索,来搜索本地文件...
![](/images/no-images.jpg)
企业服务网/vue seo优化
课前作业如果你对 promise 、reflux 还不那么熟悉,请先行了解他们是什么,有什么用。ReFlux细说大白话讲解Promise现状分析首先我们来絮叨絮叨后端同学是怎么写代码的。首先絮叨一下经典问题,MVC用户看到viewview ——————————》 cont…...
![](/images/no-images.jpg)
wordpress用户登录显示请求失败/google浏览器官方下载
Scala数据交互 Scala使用一种函数式的方式来处理数据交互,包括入参及返回值。 Option: 解决null(空指针)问题Either: 解决返回值不确定(返回两个值的其中一个)问题Try: 解决函数可能会抛出异常问题 Option/Some/None的…...
网站网站制作网/打广告的免费软件
ZeroC ICE入门学习 ZeroC ICE 是指ZeroC公司的ICE(Internet Communications Engine)中间件平台。对于客户端和服务端程序的开发提供了很大的便利。 目前ICE平台中包括Ice,Ice-E,Ice Touch。 Ice为主流平台设计,包括…...
![](https://img-blog.csdnimg.cn/853a6280370b44cd890f78097b89fdaa.png)
各人可做的外贸网站/如何推广宣传一个品牌
每个微服务:服务端口号、服务名称 payment数据库表:主键、支付流水号 前后端分离,前端可以先判断是否成功,再获取数据,所需要的实体:Json封装体CommonResult 和前端交互是CommonResult,后端自…...
![](/images/no-images.jpg)
做网站的公司怎么赚钱/谷歌浏览器免费入口
话说省选也过去好几天了……按照oi届传统补个游记吧……这可能是我第一次写游记…… DAY -n 省选之前超级心慌……于是出去培训……首先到长沙并且成功抱到了几个大佬的大腿,在那里的模拟赛非常不稳每次写题都有暴力写挂,接着马不停蹄去了杭州二中然后体…...
![](https://img-blog.csdnimg.cn/img_convert/1cf73c67174e6c427d2732ce1d963714.png)
创意福州网站建设/搜索引擎原理
题库来源:安全生产模拟考试一点通公众号小程序 建筑电工(建筑特殊工种)考试题库考前必练!安全生产模拟考试一点通每个月更新建筑电工(建筑特殊工种)考试内容题目及答案!多做几遍,其实通过建筑电工(建筑特殊工种)考试平台很简单。…...