MySQL常用命令之汇总(Summary of Commonly Used Commands in MySQL)
MySQL常用命令汇总
简介
MySQL是一个广泛使用的开源关系型数据库管理系统,由瑞典的MySQL AB公司开发,现属于Oracle公司。 MySQL支持SQL(结构化查询语言),这是数据库操作的标准语言,用户可以使用SQL进行数据查询、插入、更新和删除操作。
MySQL的主要特点包括:
- 开源:用户可以免费下载、使用和修改其源代码,尽管现在属于Oracle公司,但其社区版仍然保留开源模式。
- 高性能和扩展性:MySQL能够处理从小型应用程序到大型系统的多种数据工作负载,适合高并发的在线事务处理(OLTP)系统。
- 跨平台支持:MySQL支持多种操作系统,包括Linux、Windows和macOS,这使得它可以在不同的开发环境中广泛使用。
- 多种存储引擎:MySQL支持多种存储引擎,如InnoDB和MyISAM,用户可以根据具体需求选择适合的引擎。
MySQL的应用场景非常广泛,特别是在网络应用中十分流行。许多Web开发框架(如PHP、Python的Django)都可以与MySQL无缝集成,适用于内容管理系统(CMS)、电子商务、社交媒体平台等方面。
MySQL命令是很多的,如果全面列出的话,篇幅较长,我在这里面只是罗列了一些常用的,供大家参考。
1. 登录与退出
登录 MySQL
mysql [OPTIONS]mysql -uroot -p
| 选项 | 说明 | 示例 |
|---|---|---|
| -u | 指定用户名 | -u root |
| -p | 提示输入密码(密码可跟在后面但不安全) | -p1234 或 -p |
| -h | 指定主机名(默认 localhost) | -h 192.168.1.100 |
| -P | 指定端口(默认 3306) | -P 3307 |
| --ssl | 启用 SSL 安全连接 | --ssl |
| --socket | 指定套接字文件 | --socket=/tmp/mysql.sock |
| --database | 登录后直接使用指定数据库 | --database=testdb |
退出 MySQL
SQL> exit;
或:
SQL> quit;
2. 数据库管理
查看数据库列表
show databases;
创建数据库
CREATE DATABASE 数据库名 [OPTIONS];CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
| 选项 | 说明 | 示例 |
|---|---|---|
| DEFAULT CHARACTER SET | 设置数据库的默认字符集 | DEFAULT CHARACTER SET utf8mb4 |
| DEFAULT COLLATE | 设置数据库的排序规则(与字符集匹配) | DEFAULT COLLATE utf8mb4_general_ci |
删除数据库
drop databases 数据库名;
使用指定数据库
USE 数据库名;
use mysql;
查看当前使用的数据库
SELECT DATABASE();
查看数据库大小
SELECT table_schema AS 数据库名,ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 大小_MB
FROM information_schema.tables
GROUP BY table_schema;
3. 表管理
查看当前数据库的所有表
SHOW TABLES;
查看表结构
DESC 表名;
或:
SHOW COLUMNS FROM 表名;
创建表
CREATE TABLE 表名 (列名 数据类型 [约束条件],...
) [OPTIONS];CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,email VARCHAR(100) UNIQUE,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
| 选项 | 说明 | 示例 |
|---|---|---|
| ENGINE | 设置存储引擎(如 InnoDB、MyISAM) | ENGINE=InnoDB |
| DEFAULT CHARSET | 设置表的默认字符集 | DEFAULT CHARSET=utf8mb4 |
| AUTO_INCREMENT | 指定自增主键 | id INT AUTO_INCREMENT PRIMARY KEY |
查看表的创建语句
SHOW CREATE TABLE 表名;
修改表结构
添加列:
ALTER TABLE 表名 ADD 列名 数据类型 [位置];
位置:FIRST(在最前),AFTER 列名(在指定列后)。
修改列:
ALTER TABLE 表名 MODIFY 列名 数据类型;
删除列:
ALTER TABLE 表名 DROP 列名;
重命名列:
ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型;
删除表
DROP TABLE 表名;
清空表(保留结构)
TRUNCATE TABLE 表名;
4. 数据操作
插入数据
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);INSERT INTO users (name, email) VALUES ('Alice', 'liyb@example.com');
批量插入
INSERT INTO 表名 (列名1, 列名2) VALUES
(值1, 值2),
(值3, 值4),
(值5, 值6);
查询数据
SELECT 列名1, 列名2, ... FROM 表名 [WHERE 条件] [ORDER BY 列名 ASC|DESC] [LIMIT 偏移量, 行数];SELECT * FROM users WHERE email LIKE '%example.com' ORDER BY created_at DESC LIMIT 10;
常用子句:
| 子句 | 说明 | 示例 |
|---|---|---|
| WHERE | 指定条件 | WHERE age > 30 |
| ORDER BY | 排序结果集 | ORDER BY name ASC |
| LIMIT | 限制返回行数,支持偏移量 | LIMIT 5 OFFSET 10 |
| GROUP BY | 按列分组 | GROUP BY department |
| HAVING | 筛选分组结果 | HAVING COUNT(*) > 1 |
更新数据
UPDATE 表名 SET 列名1=值1, 列名2=值2 WHERE 条件;
示例:
UPDATE users SET email='new_email@example.com' WHERE name='Alice';
删除数据
DELETE FROM 表名 WHERE 条件;DELETE FROM users WHERE id=10;
5. 用户管理
创建用户
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'mypassword';
| 参数 | 说明 | 示例 |
|---|---|---|
| '用户名' | 用户名 | 'testuser' |
| '主机' | 用户允许访问的主机(% 表示任意主机) | 'localhost' 或 '%' |
| '密码' | 用户密码 | 'password123' |
修改用户密码
ALTER USER '用户名'@'主机' IDENTIFIED BY '新密码';ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'newpassword123';
删除用户
DROP USER '用户名'@'主机';
授予权限
GRANT 权限列表 ON 数据库.表 TO '用户名'@'主机';
| 权限 | 说明 |
|---|---|
| ALL PRIVILEGES | 授予所有权限 |
| SELECT | 允许读取表中的数据 |
| INSERT | 允许向表中插入数据 |
| UPDATE | 允许修改表中的数据 |
| DELETE | 允许删除表中的数据 |
| CREATE | 允许创建数据库和表 |
| DROP | 允许删除数据库和表 |
GRANT SELECT, INSERT ON mydb.* TO 'testuser'@'localhost';
撤销权限
REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'主机';REVOKE INSERT ON mydb.* FROM 'testuser'@'localhost';
刷新权限
FLUSH PRIVILEGES;
6. 性能优化
查看查询执行计划
EXPLAIN SELECT 查询语句;
EXPLAIN SELECT * FROM users WHERE email='test@example.com';
优化表
OPTIMIZE TABLE 表名;
慢查询查看
SHOW VARIABLES LIKE 'slow_query_log';
启用慢查询:
SET GLOBAL slow_query_log=1;
检查表
CHECK TABLE 表名;
修复表
REPAIR TABLE 表名;
相关文章:
MySQL常用命令之汇总(Summary of Commonly Used Commands in MySQL)
MySQL常用命令汇总 简介 MySQL是一个广泛使用的开源关系型数据库管理系统,由瑞典的MySQL AB公司开发,现属于Oracle公司。 MySQL支持SQL(结构化查询语言),这是数据库操作的标准语言,用户可以使用SQL进…...
六年之约day10
今日开心∶今天部门开了个颁奖大会,看着别人收获的荣誉,还真有些羡慕,什么时候,我也能拥有属于自己的荣誉啊. 今日不开心∶活没干多少,对业务也不是很懂 今日思考∶很多事情,存在即合理.工作,…...
springboot和vue配置https请求
项目场景: 代码发布到线上使用https请求需要配置ssl证书,前后端都需要修改。 问题描述 如图,我们在调用接口时报如下错误,这就是未配置ssl但是用https请求产生的问题。 解决方案: 前端:在vite.config.js文…...
selenium遇见伪元素该如何处理?
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 问题发生 在很多前端页面中,大家会见到很多::before、::after 元素,比如【百度流量研究院】: 比如【百度疫情大数…...
慧集通(DataLinkX)iPaaS集成平台-数据质量
1.什么是数据质量 介绍: 数据质量的主要作用就是记录组件写入的数据,及执行时的相关信息,如执行的最终状态(成功,失败,进行中等),执行的时间(创建时间,修改时…...
微软发布AIOpsLab:一个开源的全面AI框架,用于AIOps代理
在当今这个云计算技术迅猛发展的时代,企业面临着前所未有的挑战与机遇。随着云基础设施的日益复杂化,它们成为了企业运营不可或缺的支柱。网站可靠性工程师(Site Reliability Engineers,简称SRE)和DevOps团队肩负着关键…...
ElasticSearch | Elasticsearch与Kibana页面查询语句实践
关注:CodingTechWork 引言 在当今大数据应用中,Elasticsearch(简称 ES)以其高效的全文检索、分布式处理能力和灵活的查询语法,广泛应用于各类日志分析、用户行为分析以及实时数据查询等场景。通过 ES,用户…...
12.C语言中的struct详解:定义、赋值、指针、嵌套与位字段
目录 1.简介2.struct 的复制3.struct 指针4.struct 的嵌套5.位字段6.弹性数组成员 1.简介 本篇原文为:C语言中的struct详解:定义、赋值、指针、嵌套与位字段。 更多C进阶、rust、python、逆向等等教程,可点击此链接查看:酷程网 …...
文件读写到SQLite数据库的方法
在 SQLite 数据库中,将文件读写到数据库的常见方法主要有以下几种: 1. 将文件以 BLOB 类型存储 BLOB(Binary Large Object) 是 SQLite 中的二进制数据类型,可以直接用来存储文件内容。 步骤: 创建表 创建一…...
springboot项目部署至linux
1.修改pom.xml 确认是否有以下代码,没有请进行添加,mainClass改成你的启动类 <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.ve…...
使用sed命令封装自定义dos2unix脚本
使用sed命令封装自定义dos2unix脚本 创建 `dos2unix` 脚本使用自定义的 `dos2unix` 脚本注意事项要将 sed -i 封装为一个简单的 dos2unix 脚本,你可以创建一个 Bash 脚本文件,该文件接受文件名作为参数,并使用 sed 命令来删除文件中的 DOS 回车符(\r)。以下是一个基本的实…...
调整Python+Pytest+Allure+Yaml+Pymysql框架中需要执行的用例顺序
当pytest框架中有时时候会因为用例的前后关联关系需要调整用例执行顺序时则可以跟进具体的要求调整pytest.ini配置文件中执行用例文件夹的前后顺序 当如果是需要调整某个文件夹中用例的执行顺序时,则跟进具体的文件调整对应testcases中test_*.py文件中的执行顺序...
带内管理和带外管理
带内管理(In-Band Management) 概述 带内管理是一种借助生产网络来传输管理数据的网络管理方式,其管理流量与业务流量共享相同的网络路径。 特点 共享网络路径:管理数据和业务数据一同使用现有的网络基础设施,在同…...
【操作系统】阻塞非阻塞I/O、同步异步I/O
阻塞I/O:程序发起I/O操作时,程序被挂起,直到I/O操作完成并返回结果。在这个过程中,程序会被阻塞无法执行其他任务。适用于简单、低并发的场景。 非阻塞I/O:程序发起I/O操作时,不会等待,立即返回…...
spring cloud alibaba-dubbo3 rpc运行原理
Dubbo3 运行原理 Dubbo3 是 Apache Dubbo 的最新版本,是一个高性能、轻量级的分布式服务框架,支持微服务架构。相比 Dubbo2,它在协议、扩展性、服务治理、流控等方面做了大量改进,特别是引入了 Triple 协议,使其更加适…...
【Uniapp-Vue3】computed计算属性用法及方法对比
如果我们想要将两个响应式变量进行某种运算,就可以使用computed计算属性。 比如下面这个例子中,输入名和姓合成全名,可以用直接显示的方法: 我们也可以使用computed属性: import {computed} from "vue"; le…...
web实操10——Filter和Listener
Filter介绍 web三大组件:servlet,filter, lisenter。 Filter快速入门 步骤 拦截路径:你访问什么样的资源,过滤器会生效,包括静态资源,动态资源。 配置:两种配置方式 代码实现 代码&#…...
Spring中,出现依赖不完全注入后才执行逻辑
1. Bean生命周期机制 Spring管理的Bean是通过生命周期回调进行初始化和依赖注入的。以下是典型的生命周期阶段: 实例化(Instantiation): 创建Bean对象。依赖注入(Dependency Injection): 向Be…...
如何选择 Dockerfile 的放置方式
是否将 Dockerfile 放在项目根目录下还是为每个应用服务单独创建 Dockerfile,取决于项目架构和使用场景。以下是针对不同项目类型的最佳实践和推荐方式: 一、单体应用项目 项目特点 项目是一个单体应用,只有一个运行环境,例如&a…...
用 HTML5 Canvas 和 JavaScript 实现炫酷跨年烟花特效
一、引言 跨年夜,五彩斑斓、绚丽绽放的烟花是最令人期待的视觉盛宴之一。在网页端,我们能否通过技术手段复现这一梦幻场景呢?答案是肯定的。本文将深入剖析一段使用 HTML5 Canvas 和 JavaScript 实现的跨年烟花特效源码,带你领略前端技术创造的惊艳画面。 用 HTML5 Canvas…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
