news 2026/7/6 2:18:46

MySQL 8.0 命令行连接与基础操作:5分钟掌握10个核心命令

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL 8.0 命令行连接与基础操作:5分钟掌握10个核心命令

MySQL 8.0 命令行高效操作指南:从零基础到实战精通

1. 环境准备与快速连接

在开始操作MySQL之前,我们需要确保环境配置正确。MySQL 8.0在安全机制上做了重要升级,这会影响传统的连接方式。

Windows系统连接步骤:

  1. 以管理员身份启动CMD(避免权限问题)
  2. 切换到MySQL安装目录的bin文件夹:
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
  1. 使用以下命令连接(注意密码插件变化):
mysql -u root -p --default-auth=mysql_native_password

Linux/macOS连接方式:

mysql -u 用户名 -p

注意:MySQL 8.0默认使用caching_sha2_password插件,如果遇到认证问题,可在my.cnf中添加default_authentication_plugin=mysql_native_password

连接成功后,你会看到MySQL提示符:

mysql>

2. 数据库核心操作命令

2.1 数据库管理

查看所有数据库:

SHOW DATABASES;

创建新数据库(推荐UTF8MB4字符集):

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

切换当前数据库:

USE mydb;

删除数据库(谨慎操作):

DROP DATABASE mydb;

2.2 表结构操作

创建表(带完整约束示例):

CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(100) CHECK (email LIKE '%@%.%'), age TINYINT UNSIGNED, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB;

查看表结构:

DESCRIBE users; -- 或 SHOW CREATE TABLE users;

修改表结构:

-- 添加列 ALTER TABLE users ADD COLUMN phone VARCHAR(15) AFTER email; -- 修改列类型 ALTER TABLE users MODIFY COLUMN age SMALLINT; -- 重命名列 ALTER TABLE users CHANGE COLUMN phone mobile VARCHAR(15);

3. 数据CRUD实战技巧

3.1 高效插入数据

单条插入:

INSERT INTO users (username, email, age) VALUES ('john_doe', 'john@example.com', 28);

批量插入(性能更优):

INSERT INTO users (username, email, age) VALUES ('alice', 'alice@example.com', 25), ('bob', 'bob@example.com', 30), ('charlie', 'charlie@example.com', 22);

从文件导入数据:

LOAD DATA LOCAL INFILE '/path/to/users.csv' INTO TABLE users FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

3.2 查询优化技巧

基础查询:

SELECT * FROM users WHERE age > 25;

分页查询(大数据量必备):

SELECT * FROM users ORDER BY id LIMIT 10 OFFSET 20; -- MySQL 8.0+ 简化写法 SELECT * FROM users ORDER BY id LIMIT 20, 10;

JSON数据处理(MySQL 8.0新特性):

-- 创建包含JSON列的表 CREATE TABLE products ( id INT AUTO_INCREMENT PRIMARY KEY, details JSON, price DECIMAL(10,2) ); -- 插入JSON数据 INSERT INTO products (details, price) VALUES ('{"name": "Laptop", "specs": {"cpu": "i7", "ram": "16GB"}}', 1299.99); -- 查询JSON字段 SELECT details->>"$.name" AS product_name, details->>"$.specs.cpu" AS cpu_type FROM products;

3.3 更新与删除最佳实践

条件更新:

UPDATE users SET email = 'new_email@example.com', updated_at = NOW() WHERE username = 'john_doe';

安全删除(务必带WHERE条件):

DELETE FROM users WHERE id = 100;

清空表数据(不可回滚):

TRUNCATE TABLE log_data;

4. 高级功能与性能优化

4.1 索引管理

创建索引:

-- 单列索引 CREATE INDEX idx_age ON users(age); -- 复合索引 CREATE INDEX idx_name_email ON users(username, email); -- 全文索引(文本搜索) CREATE FULLTEXT INDEX idx_content ON articles(content);

查看索引:

SHOW INDEX FROM users;

删除索引:

DROP INDEX idx_age ON users;

4.2 事务处理

事务基本操作:

START TRANSACTION; INSERT INTO orders (user_id, amount) VALUES (1, 99.99); UPDATE accounts SET balance = balance - 99.99 WHERE user_id = 1; COMMIT; -- 如果出错可执行 ROLLBACK;

设置事务隔离级别:

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

4.3 存储过程示例

创建简单存储过程:

DELIMITER // CREATE PROCEDURE get_user_stats(IN user_id INT) BEGIN SELECT COUNT(*) AS total_orders, SUM(amount) AS total_spent FROM orders WHERE user_id = user_id; END // DELIMITER ;

调用存储过程:

CALL get_user_stats(1);

5. 安全与维护

5.1 用户权限管理

创建用户:

CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPassword123!';

授予权限:

GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'app_user'@'%';

撤销权限:

REVOKE DELETE ON mydb.* FROM 'app_user'@'%';

5.2 备份与恢复

使用mysqldump备份:

mysqldump -u root -p --single-transaction --routines --triggers mydb > mydb_backup.sql

恢复备份:

mysql -u root -p mydb < mydb_backup.sql

5.3 性能监控

查看运行进程:

SHOW PROCESSLIST;

查看服务器状态:

SHOW STATUS LIKE 'Threads_connected'; SHOW STATUS LIKE 'Innodb_row_lock%';

分析查询性能:

EXPLAIN SELECT * FROM users WHERE age > 25;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 2:16:43

SWIPENet 与 YOLOv5/YOLOv8 对比评测:小目标检测精度与推理速度的3组数据

SWIPENet 与 YOLOv5/YOLOv8 对比评测&#xff1a;小目标检测精度与推理速度的3组数据在水下目标检测领域&#xff0c;算法的选择往往需要在精度和速度之间做出权衡。本文将深入对比学术界的SWIPENet与工业界广泛应用的YOLOv5/YOLOv8在小目标检测场景下的表现&#xff0c;通过三…

作者头像 李华
网站建设 2026/7/6 2:13:57

LMCache-mindspore架构详解:从原理到实践的完整指南

LMCache-mindspore架构详解&#xff1a;从原理到实践的完整指南 【免费下载链接】LMCache-mindspore An LMCache extension for mindspore-based inference. 项目地址: https://gitcode.com/openeuler/LMCache-mindspore 前往项目官网免费下载&#xff1a;https://ar.op…

作者头像 李华
网站建设 2026/7/6 2:11:52

QAM调制原理与Python仿真:从16-QAM到4096-QAM的误码率曲线绘制

QAM调制原理与Python仿真&#xff1a;从16-QAM到4096-QAM的误码率曲线绘制通信工程师们常把调制技术比作"数字世界的摩尔斯电码"——通过精心设计的波形变化&#xff0c;将二进制数据转化为电磁波的艺术。在众多调制方式中&#xff0c;正交幅度调制(QAM)因其高效的频…

作者头像 李华
网站建设 2026/7/6 2:09:05

Windows Hypervisor Platform (WHP) API 解析:VMWare 15.5.5 如何绕过 Hyper-V 冲突

Windows Hypervisor Platform (WHP) 技术解析&#xff1a;VMware 与 Hyper-V 共存的底层逻辑 虚拟化技术爱好者们可能还记得那个令人头疼的问题——在启用了 Hyper-V 的 Windows 系统上运行 VMware Workstation 时&#xff0c;总会弹出那个令人沮丧的兼容性错误提示。这个持续多…

作者头像 李华