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;表达式中的字符和短整型操作数在使用之前会被转换…

Vue键盘按键别名/事件说明及案例

Vue中的按键别名&#xff08;&#xff09;&#xff1a; 回车 > enter 删除 > delete &#xff08;退格 、 删除 按键&#xff09; 退出 > esc 空格 > space 换行 > tab &#xff08;必须配合keydown去使用&#xff09; 上 > up 下 > down 左 > …

ChatGPT和文心一言哪个好用?

#ChatGPT 和文心一言哪个更好用&#xff1f;# 在当今信息爆炸的时代&#xff0c;人们对于文本生成和创作工具的需求越来越高。在这个背景下&#xff0c;ChatGPT和文心一言作为备受瞩目的工具&#xff0c;各自拥有独特的功能和用途。在本文中&#xff0c;我们将深入探讨这两个工…

stm32 - GPIO高级用法

stm32 - GPIO高级用法 PWMPWM / LEDPWM / 电机 PWM PWM / LED PWM波通过改变占空比可以改变LED的亮度 PWM信号调节LED亮度时&#xff0c;信号频率保持不变&#xff0c;即一个周期时间不变&#xff0c;改变的是脉冲的高电平的时间&#xff0c;即LED的导通时间&#xff0c;占空比…

web练习2

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

AIGC商用实例—大模型技术助力AI测谎仪,实现视频通话实施测谎!

大家好&#xff0c;我是千寻哥&#xff0c;最近一段时间&#xff0c;给大家分享了不少的AI绘画相关的项目教程&#xff0c;很多星友都反映真的不错&#xff0c;我自己也是感觉很有意义&#xff01; 哈哈哈&#xff0c;今天我在看到了一个项目柑感觉是一个不错的idea&#xff0…

什么是池化层?

池化层&#xff08;Pooling Layer&#xff09;是卷积神经网络&#xff08;CNN&#xff09;中的一个重要组件&#xff0c;用于减少特征图&#xff08;feature maps&#xff09;的维度&#xff0c;同时保留重要的特征信息。以下是池化层的几个关键特点&#xff1a; 降低维度&…

为什么要用B+树

B树的优势 支持范围查询&#xff1a;B树在进行范围查询时&#xff0c;只需要从根节点一直遍历到叶子节点&#xff0c;因为数据都存储在叶子节点上&#xff0c;而且叶子节点之间有指针连接&#xff0c;可以很方便的进行范围查询 支持排序&#xff1a;B树的叶子节点按照关键字顺…

Mybatis配置两个数据源

1.配置两个数据源 # 数据源1配置 datasource1.urljdbc:oracle:thin://your_oracle_host1:your_oracle_port1/your_oracle_sid1 datasource1.usernameYourSchema1 datasource1.passwordyour_password1# 数据源2配置 datasource2.urljdbc:oracle:thin://your_oracle_host2:your_…

使用 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); 该函数一共有三个参数,其…

什么是ChatGPT,什么是大模型prompt

什么是ChatGpt ChatGPT是一个由美国的OpenAI公司开发的聊天机器人&#xff0c;它使用了大型语言模型&#xff0c;现在有GPT-3、GPT-3.5、GPT-4.0多个版本&#xff0c;目前还在快速发展&#xff0c;通过监督学习和强化学习进行了微调。它可以根据用户的提示执行各种语言任务&am…

【SimPy系列博客之官方example学习与解读】—— Example 3: Car Wash

Hello&#xff0c;CSDN的各位小伙伴们&#xff0c;又见面啦&#xff01;今天我们要学习的例程是&#xff1a;Car Wash&#xff01;我们开始吧&#xff01; 例程背景 这个例程相对于example 2来说会简单一些&#xff0c;有一个洗车厂&#xff0c;里面有若干台洗车机器&#xf…

【Python】P3 循环语句

循环语句 Python 中的通过 for、while 建立循环。 for 循环&#xff1a; 每次循环时&#xff0c;变量会被赋值为迭代对象中的下一个元素&#xff0c;然后执行缩进的代码块。 for i in range(5): # i为变量&#xff0c;range(5)为迭代对象print(i)while循环&#xff1a; 如…

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

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