命令行操作数据库是开发者和管理员日常工作中不可或缺的技能,它通过文本界面直接与数据库交互,具有高效、灵活且自动化程度高的特点,无论是快速查询数据、管理数据库结构,还是执行批量操作,命令行都能提供比图形化界面更直接的控制力,本文将以MySQL为例,详细介绍命令行操作数据库的核心步骤、常用命令及实用技巧,帮助读者掌握这一高效工具。

连接与退出数据库
需要通过命令行连接到MySQL服务器,打开终端(Windows下使用CMD或PowerShell,Linux/macOS使用Terminal),输入以下命令:mysql -u 用户名 -p
系统会提示输入密码,正确验证后即可进入MySQL命令行环境,若需连接到远程服务器,可添加-h参数指定主机地址,例如mysql -u root -p -h 192.168.1.100,退出数据库则使用exit或quit命令,或按Ctrl+D快捷键。
数据库的基本操作
连接成功后,首先需要选择或创建数据库,使用SHOW DATABASES;命令可查看所有数据库列表,创建数据库通过CREATE DATABASE 数据库名;实现,例如CREATE DATABASE mydb;,若需避免重复创建,可使用CREATE DATABASE IF NOT EXISTS mydb;,选择数据库则使用USE 数据库名;,例如USE mydb;,之后的所有操作都将针对该数据库。
表的创建与管理
数据库的核心是表,创建表需定义字段名、数据类型和约束,创建一个用户表:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);INT为整数类型,VARCHAR为可变字符串,AUTO_INCREMENT表示自增主键,UNIQUE确保字段值唯一,查看表结构使用DESCRIBE users;,修改表结构通过ALTER TABLE命令,例如添加字段:ALTER TABLE users ADD COLUMN age INT;,删除表则使用DROP TABLE users;。

数据的增删改查(CRUD)
数据的增删改查是数据库操作的核心。
- 插入数据(INSERT):
INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com');
若需批量插入,可使用多值列表:INSERT INTO users (username, email) VALUES ('bob', 'bob@example.com'), ('charlie', 'charlie@example.com'); - 查询数据(SELECT):
基础查询:SELECT * FROM users;查询所有字段;条件查询:SELECT * FROM users WHERE age > 18;;排序查询:SELECT * FROM users ORDER BY created_at DESC;(按创建时间降序)。 - 更新数据(UPDATE):
UPDATE users SET age = 25 WHERE username = 'alice';注意:务必添加WHERE条件,否则会更新全表数据。 - 删除数据(DELETE):
DELETE FROM users WHERE username = 'bob';同样需谨慎使用WHERE,避免误删数据。
高级查询与实用技巧
复杂查询通常需要结合多个条件或函数,使用LIKE进行模糊查询:SELECT * FROM users WHERE email LIKE '%@gmail.com';(查询所有Gmail用户),聚合函数如COUNT()、SUM()、AVG()可用于统计,例如SELECT COUNT(*) FROM users;统计用户总数,多表查询通过JOIN实现,
SELECT users.username, orders.total FROM users JOIN orders ON users.id = orders.user_id;
命令行支持脚本执行,通过source命令运行SQL文件:source /path/to/script.sql;,适合批量执行操作。
常用命令速查表
| 功能 | 命令示例 |
|---|---|
| 查看所有数据库 | SHOW DATABASES; |
| 创建数据库 | CREATE DATABASE mydb; |
| 选择数据库 | USE mydb; |
| 查看所有表 | SHOW TABLES; |
| 查看表结构 | DESCRIBE users; |
| 插入数据 | INSERT INTO users VALUES (1, 'name'); |
| 查询数据 | SELECT * FROM users WHERE id = 1; |
| 更新数据 | UPDATE users SET name = 'new' WHERE id = 1; |
| 删除数据 | DELETE FROM users WHERE id = 1; |
| 删除表 | DROP TABLE users; |
相关问答FAQs
Q1: 忘记MySQL root密码怎么办?
A1: 可通过以下步骤重置密码:

- 停止MySQL服务:
sudo systemctl stop mysql(Linux)或通过任务管理器停止(Windows)。 - 以安全模式启动MySQL:
sudo mysqld_safe --skip-grant-tables。 - 另开终端,无密码登录:
mysql -u root。 - 执行以下命令更新密码(替换’new_password’):
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES; - 重启MySQL服务,使用新密码登录。
Q2: 如何在命令行中导出和导入数据库?
A2: 导出数据库使用mysqldump命令,
- 导出整个数据库:
mysqldump -u root -p mydb > mydb_backup.sql - 导出特定表:
mysqldump -u root -p mydb users > users_backup.sql
导入数据库则使用mysql命令:mysql -u root -p mydb < mydb_backup.sql,注意:导入时目标数据库需已存在。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/416849.html<
