MySQL命令大全和实例

文章目录

      • 1. 数据库管理
      • 2. 表操作
      • 3. 数据操作(CRUD)
      • 4. 条件查询与排序
      • 5. 聚合函数和分组
      • 6. 用户权限管理
      • 7. 其他操作
      • 8. 视图操作
      • 9. 索引操作
      • 10. 子查询与连接查询
      • 11. 插入多行数据
      • 12. 删除满足特定条件的表中所有数据
      • 13. 清空表(保留表结构)
      • 14. 查看当前数据库中的所有表
      • 15. 数据库备份与恢复(在shell中执行)
      • 16. 更新多个列
      • 17. 分页查询数据
      • 18. 复制表结构(不复制数据)
      • 19. 检查表是否存在
      • 20. 删除重复行
      • 21. 修改数据库字符集
      • 22. 查看服务器状态
      • 23. 查看当前会话变量
      • 24. 创建触发器
      • 25. 删除触发器
      • 26. 创建存储过程
      • 27. 查看事件调度器(定时任务)
      • 28. 删除事件调度器
      • 29. 创建分区表
      • 30. 修改表引擎

当然,以下按照功能分类列举MySQL命令大全的部分内容及其示例:

1. 数据库管理

  • 创建数据库
CREATE DATABASE my_database CHARACTER SET utf8 COLLATE utf8_general_ci;
  • 查看所有数据库
SHOW DATABASES;
  • 选择当前工作数据库
USE my_database;
  • 删除数据库
DROP DATABASE IF EXISTS my_database;

2. 表操作

  • 创建表
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,email VARCHAR(100),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  • 查看表结构
DESCRIBE users;
  • 修改表结构
ALTER TABLE users ADD COLUMN last_login DATETIME;
  • 重命名表
RENAME TABLE users TO members;
  • 删除表
DROP TABLE users;

3. 数据操作(CRUD)

  • 插入数据
INSERT INTO users (username, email) VALUES ('JohnDoe', 'john@example.com');
  • 查询数据
SELECT * FROM users;

或者更复杂的查询:

SELECT username, COUNT(*) as total_entries FROM users GROUP BY username;
  • 更新数据
UPDATE users SET email = 'new@example.com' WHERE username = 'JohnDoe';
  • 删除数据
DELETE FROM users WHERE id = 1;

4. 条件查询与排序

  • 条件筛选
SELECT * FROM users WHERE age > 18 AND gender = 'M';
  • 排序结果
SELECT * FROM users ORDER BY username DESC;

5. 聚合函数和分组

  • 计算总数
SELECT COUNT(*) FROM users;
  • 求平均值
SELECT AVG(salary) FROM employees;
  • 分组统计
SELECT department, COUNT(*) FROM employees GROUP BY department;

6. 用户权限管理

  • 创建用户
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
  • 授予权限
GRANT SELECT, INSERT, UPDATE ON database_name.* TO 'newuser'@'%';
  • 撤销权限
REVOKE ALL PRIVILEGES ON database_name.* FROM 'newuser'@'%';
  • 更改用户密码
SET PASSWORD FOR 'newuser'@'%' = PASSWORD('new_password');

7. 其他操作

  • 事务处理
START TRANSACTION;
-- 执行一系列操作
COMMIT;
  • 备份与恢复(通常在Shell中执行):
# 备份整个数据库
mysqldump -u 用户名 -p 数据库名 > backup.sql# 恢复数据库
mysql -u 用户名 -p 数据库名 < backup.sql

8. 视图操作

  • 创建视图
CREATE VIEW user_emails AS 
SELECT username, email FROM users;
  • 查询视图
SELECT * FROM user_emails;
  • 修改视图
CREATE OR REPLACE VIEW user_emails AS 
SELECT username, email, created_at FROM users;
  • 删除视图
DROP VIEW IF EXISTS user_emails;

9. 索引操作

  • 创建索引
CREATE INDEX idx_username ON users(username);
  • 查看索引
SHOW INDEX FROM users;
  • 删除索引
DROP INDEX idx_username ON users;

10. 子查询与连接查询

  • 子查询
SELECT * FROM orders WHERE customer_id IN (SELECT id FROM customers WHERE country = 'USA');
  • 内连接查询
SELECT customers.name, orders.order_date 
FROM customers 
INNER JOIN orders ON customers.id = orders.customer_id;

11. 插入多行数据

INSERT INTO users (username, email) VALUES
('User1', 'user1@example.com'),
('User2', 'user2@example.com'),
('User3', 'user3@example.com');

12. 删除满足特定条件的表中所有数据

DELETE FROM users WHERE age < 18;

13. 清空表(保留表结构)

TRUNCATE TABLE users;

14. 查看当前数据库中的所有表

SHOW TABLES;

15. 数据库备份与恢复(在shell中执行)

  • 备份单个表
mysqldump -u 用户名 -p 数据库名 表名 > table_backup.sql
  • 恢复单个表
mysql -u 用户名 -p 数据库名 < table_backup.sql

当然,接下来再介绍几个MySQL中的其他重要命令:

16. 更新多个列

UPDATE users 
SET email = 'newemail@example.com', age = 30 
WHERE username = 'JohnDoe';

17. 分页查询数据

SELECT * FROM users 
LIMIT 10 OFFSET 20;  -- 获取第21-30条记录

18. 复制表结构(不复制数据)

CREATE TABLE new_table LIKE old_table;

19. 检查表是否存在

SHOW TABLES LIKE 'users';

或者使用SQL表达式:

SELECT COUNT(*) FROM information_schema.tables WHERE table_name = 'users' AND table_schema = DATABASE();

20. 删除重复行

DELETE t1 FROM users t1, users t2 
WHERE t1.id < t2.id AND t1.username = t2.username;

或在较新版本的MySQL中使用DISTINCT关键字结合GROUP BYHAVING删除重复项:

CREATE TABLE deduplicated_users AS 
SELECT MIN(id) as id, username, email 
FROM users 
GROUP BY username, email 
HAVING COUNT(*) = 1;-- 确认无误后,替换原表
DROP TABLE users;
RENAME TABLE deduplicated_users TO users;

21. 修改数据库字符集

ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

22. 查看服务器状态

SHOW STATUS;

23. 查看当前会话变量

SHOW SESSION VARIABLES;

当然,接下来再介绍几个MySQL中其他高级功能的命令示例:

24. 创建触发器

CREATE TRIGGER before_insert_users
BEFORE INSERT ON users
FOR EACH ROW
BEGINSET NEW.email = LOWER(NEW.email);
END;

此触发器在插入新用户前自动将email字段转换为小写。

25. 删除触发器

DROP TRIGGER IF EXISTS before_insert_users;

26. 创建存储过程

DELIMITER //
CREATE PROCEDURE get_user_info(IN user_id INT)
BEGINSELECT * FROM users WHERE id = user_id;
END //
DELIMITER ;

调用存储过程:

CALL get_user_info(1);

27. 查看事件调度器(定时任务)

SHOW EVENTS;
  • 创建事件调度器,每天凌晨1点更新所有用户的last_login时间:
CREATE EVENT update_last_login
ON SCHEDULE EVERY 1 DAY STARTS '2022-01-01 01:00:00'
DO 
UPDATE users SET last_login = CURRENT_TIMESTAMP;-- 若要立即启用该事件(默认创建时禁用)
ALTER EVENT update_last_login ENABLE;

28. 删除事件调度器

DROP EVENT IF EXISTS update_last_login;

29. 创建分区表

CREATE TABLE sales (id INT NOT NULL,sale_date DATE,amount DECIMAL(10,2),PRIMARY KEY (id)
)
PARTITION BY RANGE (YEAR(sale_date)) (PARTITION p0 VALUES LESS THAN (2010),PARTITION p1 VALUES LESS THAN (2020),PARTITION p2 VALUES LESS THAN MAXVALUE
);

以上是在MySQL中使用分区表对数据进行逻辑分隔的例子。

30. 修改表引擎

ALTER TABLE table_name ENGINE=InnoDB;

更改表的存储引擎,例如从MyISAM改为InnoDB。

以上只是MySQL部分高级功能的简单展示,实际使用时请根据具体需求和场景选择合适的功能,并结合官方文档深入学习。

python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)

50个开发必备的Python经典脚本(11-20)

50个开发必备的Python经典脚本(21-30)

50个开发必备的Python经典脚本(31-40)

50个开发必备的Python经典脚本(41-50)
————————————————

​最后我们放松一下眼睛
在这里插入图片描述

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

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

相关文章

rust跟我学五:是否安装双系统

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么得到检测双系统的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[我的Ru…

IOS-高德地图路径绘制显示交通状况-Swift

本文基于&#xff1a;高德地图路径绘制进行了路径绘制的优化&#xff0c;添加了根据交通信息&#xff08;是否拥堵&#xff09;来显示路况&#xff0c;效果如图&#xff1a; 图标资源&#xff1a; custtexture_bad custtexture_green custtexture_slow custtexture_serio…

关于C语言整型提升的讲解

目录 1.什么是整型提升 2.整型提升的意义 3.整型提升是怎么提升的 4.整型提升的实例 1.什么是整型提升 C语言中的整型算术运算总是以缺省&#xff08;默认&#xff09;整型类型的精度来进行的。为了获得这个精度&#xff0c;表达式中的字符和短整型操作数在使用之前会被转换…

web练习2

需求 1.计算用户指定的数值内的奇数和。例如用户输入的是10则计算13579的和 <!doctype html> <html lang"en"> <head><meta charset"utf-8"><title>作业1</title></head> <body> <script>//计算用…

使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第十五章到第十八章

十五、反转棋游戏 原文&#xff1a;inventwithpython.com/invent4thed/chapter15.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 在本章中&#xff0c;我们将制作反转棋&#xff0c;也称为黑白棋或奥赛罗。这个双人棋盘游戏是在网格上进行的&#xff0c;因此我们…

2024“华数杯”(A题)放射性 Tritium 污染问题国际大学生数学建模竞赛| 建模秘籍文章代码思路大全

铛铛&#xff01;小秘籍来咯&#xff01; 小秘籍希望大家都能轻松建模呀&#xff0c;华数杯也会持续给大家放送思路滴~ 抓紧小秘籍&#xff0c;我们出发吧~ 完整内容可以在文章末尾领取&#xff01; 问题重述&#xff1a; 2024 “Huashu Cup” 国际数学建模大赛 - Proble…

机器学习平台建设(一)

一、概述 下图是较简化的机器学习平台架构&#xff0c;概括了机器学习平台的主要功能和流程。本章会进行简要介绍&#xff0c;在功能章节再展开详述。机器学习最主要的三个步骤可概括为&#xff1a;数据处理、建模以及部署。 数据处理&#xff0c;即所有和数据相关的工作&…

一种基于YOLO改进的高效且轻量级的表面缺陷检测网络, NEU-DET和GC10-DET涨点明显

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文摘要&#xff1a;一种基于YOLO改进的高效且轻量级的表面缺陷检测&#xff0c; 在NEU-DET和GC10-DET任务中涨点明显 目录 1.轻量且高效的YOLO 1.1 SCRB介绍 1.1.1 ScConv介绍 1.2 GSConvns 1.3 od_mobilenetv2_050 1.4 对应ya…

linux多进程基础(6):setitimer(间隔定时器)和signal(信号处理函数)

1.setitimer函数 setitimer函数用于设置一个间隔定时器,它会在指定的时间间隔到达时向进程发送一个信号。其定义如下: #include <sys/time.h> int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value); 该函数一共有三个参数,其…

2024年华数杯国际赛A题赛题

问题A&#xff1a;来自日本的放射性废水 背景 2011年3月&#xff0c;日本东海岸发生的地震引发了福岛第一核电站的事故。一场大规模海啸摧毁了该核电站的冷却系统&#xff0c;导致三个核反应堆熔毁&#xff0c;核燃料碎片熔化。为了冷却熔化的核燃料&#xff0c;海水不断地注入…

SQL性能分析手段

SQL执行频率 MySQL 客户端连接成功后&#xff0c;通过 show [session|global] status 命令可以提供整个服务器执行sql的状态信息。通过如下指令&#xff0c;可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次&#xff1a; -- session 是查看当前会话 ; -- globa…

uni-app引用矢量库图标

矢量库引用 导入黑色图标 1.生成连接&#xff0c;下载样式 2.导入项目&#xff08;字体样式&#xff09; 3.引入css样式 4.替换font-face 5.使用图标&#xff08;字体图标&#xff0c;只有黑色&#xff09; 导入彩色图标 1.安装插件 npm install -g iconfont-tools2.…

IDEA 在本地启动多个 SpringBoot 后端服务模拟集群

目录 方式一&#xff1a;使用 IDEA 界面在多个后端端口运行同一个项目 方式二&#xff1a;通过控制台在运行项目 jar 包时传入端口配置 方式一&#xff1a;使用 IDEA 界面在多个后端端口运行同一个项目 1. 点击 Run / Debug 在默认端口启动项目 2. 点击 Services&#xff0…

【CSDN博客系列】自定义模块

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

学习k8s的应用(三)

一、k8s部署ngnix 1、一些查看命令 1-1、所有命令空间 kubectl get pod --all-namespaces kubectl get svc --all-namespaces1-2、指定命令空间 kubectl get pod -n yabin kubectl get svc -n yabin2、单节点集群兼容 # 因为目前只有一个master节点&#xff0c;默认安装后…

设计Twitter时间线和搜索功能

设计Twitter时间线和搜索功能 设计 facebook feed 和 设计 facebook search是相同的问题 第一步&#xff1a;定义用例和约束 定义问题的需求和范围&#xff0c;询问问题去声明用例和约束&#xff0c;讨论假设 ps: 没有一个面试官会展示详细的问题&#xff0c;我们需要定义一些用…

数据结构与算法-二叉树-层次遍历I

二叉树层次遍历I 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]]思路&…

【征服redis1】基础数据类型详解和应用案例

博客计划 &#xff0c;我们从redis开始&#xff0c;主要是因为这一块内容的重要性不亚于数据库&#xff0c;但是很多人往往对redis的问题感到陌生&#xff0c;所以我们先来研究一下。 本篇&#xff0c;我们先看一下redis的基础数据类型详解和应用案例。 1.redis概述 以mysql为…

车载音频EMI的产生及典型音频功放AW836XX的解决方案

之前针对 eCall的文章中有提到D类音频功放需要关注EMI问题&#xff08;点击文章回看《车载eCall系统音频应用解决方案》&#xff09;&#xff0c;在此展开此问题并寻求解决方案。 1. EMI定义与分类 电磁干扰&#xff08;Electromagnetic Interference&#xff0c;EMI&#xff…

基于STM32的HX711示值放大器接口与驱动程序设计

将HX711示值放大器接口与STM32微控制器进行连接和驱动需要一定的硬件连接和软件编程。在这篇文章中&#xff0c;我们将介绍如何设计基于STM32的HX711示值放大器接口与驱动程序&#xff0c;并提供相应的代码示例。 1. 硬件连接 首先&#xff0c;我们需要将HX711示值放大器与STM…