当前位置: 首页 > news >正文

MySQL命令

目录

1、初级

一、连接和退出

1. 连接到 MySQL

2. 退出 MySQL

二、数据库操作

1. 显示数据库列表

2. 创建数据库

3. 使用数据库

4. 删除数据库

三、表操作

1. 显示当前数据库中的表

2. 创建表

3. 查看表结构

4. 删除表

5. 修改表

四、数据操作

1. 插入数据

2. 查询数据

3. 更新数据

4. 删除数据

五、用户管理

1. 创建用户

2. 授予权限

3. 查看用户权限

4. 撤销权限

5. 删除用户

六、备份和恢复

1. 备份数据库

2. 恢复数据库

七、常用高级命令

1. 查看正在运行的查询

2. 杀死一个查询

3. 查看表状态

4. 查看服务器状态

2、高级

一、分页查询

1. 使用 LIMIT 和 OFFSET

2. 示例

二、嵌套查询(子查询)

1. 基本嵌套查询

2. 示例

3. 使用 IN 和子查询

4. 示例

三、联合查询(JOIN)

1. 内连接 (INNER JOIN)

2. 左连接 (LEFT JOIN)

3. 右连接 (RIGHT JOIN)

4. 示例

四、其他高级查询

1. 计算字段(计算列)

2. 使用 CASE 实现条件逻辑

3. 分组和聚合


1、初级

MySQL 提供了丰富的命令集用于数据库管理和操作。以下是一些常用的 MySQL 命令,按功能分类:

一、连接和退出

1. 连接到 MySQL
mysql -u username -p

提示输入密码后,输入你指定的用户名和密码。

2. 退出 MySQL
exit;

二、数据库操作

1. 显示数据库列表
SHOW DATABASES;
2. 创建数据库
CREATE DATABASE database_name;
3. 使用数据库
USE database_name;
4. 删除数据库
DROP DATABASE database_name;

三、表操作

1. 显示当前数据库中的表
SHOW TABLES;
2. 创建表
CREATE TABLE table_name (column1_name column1_datatype,column2_name column2_datatype,...
);
3. 查看表结构
DESCRIBE table_name;
4. 删除表
DROP TABLE table_name;
5. 修改表
  • 添加列:

    ALTER TABLE table_name ADD column_name column_datatype;
  • 删除列:

    ALTER TABLE table_name DROP COLUMN column_name;
  • 修改列:

    ALTER TABLE table_name MODIFY COLUMN column_name column_datatype;

四、数据操作

1. 插入数据
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
2. 查询数据
SELECT column1, column2, ... FROM table_name;
  • 查询所有列:

    SELECT * FROM table_name;
  • 带条件查询:

    SELECT * FROM table_name WHERE condition;
3. 更新数据
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
4. 删除数据
DELETE FROM table_name WHERE condition;

五、用户管理

1. 创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
2. 授予权限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';
  • 刷新权限:

    FLUSH PRIVILEGES;
3. 查看用户权限
SHOW GRANTS FOR 'username'@'host';
4. 撤销权限
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';
5. 删除用户
DROP USER 'username'@'host';

六、备份和恢复

1. 备份数据库

在命令行中使用 mysqldump 工具:

mysqldump -u username -p database_name > backup_file.sql
2. 恢复数据库

在命令行中使用 mysql 工具:

mysql -u username -p database_name < backup_file.sql

七、常用高级命令

1. 查看正在运行的查询
SHOW PROCESSLIST;
2. 杀死一个查询
KILL query_id;
3. 查看表状态
SHOW TABLE STATUS LIKE 'table_name';
4. 查看服务器状态
SHOW STATUS;

MySQL 的分页查询和嵌套查询是常用的高级查询操作。以下是这些查询的详细说明和示例。

2、高级

一、分页查询

分页查询用于从大量数据中分段获取数据,从而提高查询效率和用户体验。

1. 使用 LIMITOFFSET

LIMIT 用于指定返回记录的最大数量,OFFSET 用于指定起始位置。

SELECT column1, column2, ...
FROM table_name
LIMIT limit OFFSET offset;
2. 示例

假设你有一个名为 employees 的表,包含员工信息,每页显示 10 条记录:

  • 第一页:

    SELECT * FROM employees
    LIMIT 10 OFFSET 0;
  • 第二页:

    SELECT * FROM employees
    LIMIT 10 OFFSET 10;
  • 第三页:

    SELECT * FROM employees
    LIMIT 10 OFFSET 20;

二、嵌套查询(子查询)

嵌套查询是指在一个 SQL 查询中嵌套另一个查询,通常用于条件过滤、数据筛选等场景。

1. 基本嵌套查询

WHERE 子句中使用子查询:

SELECT column1, column2, ...
FROM table_name
WHERE column_name = (SELECT column_name FROM another_table WHERE condition);
2. 示例

假设你有两个表 employeesdepartments,分别存储员工和部门信息,你希望查找属于特定部门的所有员工。

  • 查找部门名称为 "Sales" 的部门 ID:

    SELECT department_id
    FROM departments
    WHERE department_name = 'Sales';
  • 使用子查询查找属于 "Sales" 部门的所有员工:

    SELECT employee_name
    FROM employees
    WHERE department_id = (SELECT department_id FROM departments WHERE department_name = 'Sales');
3. 使用 IN 和子查询

当子查询返回多个结果时,可以使用 IN 关键字:

SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (SELECT column_name FROM another_table WHERE condition);
4. 示例

查找属于多个部门的员工:

SELECT employee_name
FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE department_name IN ('Sales', 'Marketing'));

三、联合查询(JOIN)

联合查询用于从多个表中查询相关数据。

1. 内连接 (INNER JOIN)

返回两个表中满足连接条件的记录。

SELECT a.column1, b.column2, ...
FROM table1 a
INNER JOIN table2 b ON a.common_column = b.common_column;
2. 左连接 (LEFT JOIN)

返回左表的所有记录及其匹配的右表记录。

SELECT a.column1, b.column2, ...
FROM table1 a
LEFT JOIN table2 b ON a.common_column = b.common_column;
3. 右连接 (RIGHT JOIN)

返回右表的所有记录及其匹配的左表记录。

SELECT a.column1, b.column2, ...
FROM table1 a
RIGHT JOIN table2 b ON a.common_column = b.common_column;
4. 示例

假设有两个表 employeesdepartments,分别存储员工和部门信息:

  • 内连接查询员工及其所在部门:

    SELECT e.employee_name, d.department_name
    FROM employees e
    INNER JOIN departments d ON e.department_id = d.department_id;
  • 左连接查询所有员工及其所在部门(包括没有分配部门的员工):

    SELECT e.employee_name, d.department_name
    FROM employees e
    LEFT JOIN departments d ON e.department_id = d.department_id;
  • 右连接查询所有部门及其员工(包括没有员工的部门):

    SELECT e.employee_name, d.department_name
    FROM employees e
    RIGHT JOIN departments d ON e.department_id = d.department_id;

四、其他高级查询

1. 计算字段(计算列)

在查询中对字段进行计算:

SELECT column1, (column2 * column3) AS computed_column
FROM table_name;
2. 使用 CASE 实现条件逻辑
SELECT employee_name,CASE WHEN salary >= 50000 THEN 'High'WHEN salary >= 30000 THEN 'Medium'ELSE 'Low'END AS salary_level
FROM employees;
3. 分组和聚合

使用 GROUP BY 和聚合函数(如 COUNT, SUM, AVG):

SELECT department_id, COUNT(*)
FROM employees
GROUP BY department_id;

http://www.lryc.cn/news/354194.html

相关文章:

  • 装本地知识库
  • Django模板层——模板引擎配置
  • Leetcode刷题笔记2:数组基础2
  • 整理好了!2024年最常见 20 道 Redis面试题(八)
  • 【STM32项目】基于stm32智能鱼缸控制系统的设计与实现(完整工程资料源码)
  • 深入理解 Mysql 分层架构:从存储引擎到查询优化器的内部机制解析
  • Java筑基(三)
  • Zoho Campaigns邮件营销怎么发邮件?
  • Qt 界面上字体自适应控件大小 - 随控件缩放
  • 【Python】 使用SMOTE解决数据不平衡问题
  • Redis第18讲——Redis和Redission实现延迟消息
  • 返回枚举类给前端
  • A. Maximize?
  • RBAC 动态权限
  • c语言:模拟strlen(三种方法)最全版本
  • 线性模型--普通最小二乘法
  • 移动云以深度融合之服务,令“大”智慧贯穿云端
  • 簡述vue常用指令
  • 【建议收藏】用AI快速生成一个网页(名侦探柯南~灰原哀主题网页),适合大学生web期末大作业
  • 用c++用4个凸函数(觉得啥好用用啥)去测试adam,rmsprop,adagrad算法的性能(谁先找到最优点)
  • AJAX初级
  • 重载大于号运算符,比较复数大小
  • go ast语义分析实现指标计算器
  • 【Vue】组件间传参与方法调用
  • 类和对象2
  • Linux系统命令traceroute详解(语法、选项、原理和实例)
  • 中兴通讯助力中国移动,推动SPN AI节能技术于23省规模部署
  • SQL Server--死锁
  • 中科蓝讯AB32VG1中文寄存器说明GPIO端口操作
  • 如何查看热门GPT应用?