菜鸟科技网

MySQL命令有哪些常用操作?

MySQL命令是管理和操作MySQL数据库的核心工具,通过命令行界面(CLI)或脚本执行,涵盖了数据库创建、表管理、数据操作、权限控制等全流程功能,以下从基础操作到进阶应用,结合实例和表格详细说明MySQL命令的使用方法。

MySQL命令有哪些常用操作?-图1
(图片来源网络,侵删)

基础连接与退出

首先需要连接到MySQL服务器,常用命令为mysql,可通过参数指定主机、用户、密码等:

mysql -h localhost -u root -p

参数说明:

  • -h:主机名,默认为localhost
  • -u:用户名,root为超级管理员
  • -p:提示输入密码,也可直接在命令后写密码(不安全,不推荐) 连接成功后,MySQL会显示mysql>提示符,输入exitquit可退出当前会话。

数据库操作

创建数据库

使用CREATE DATABASE命令,可指定字符集和排序规则:

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

查看数据库

  • 显示所有数据库:SHOW DATABASES;
  • 查看当前数据库:SELECT DATABASE();

    切换数据库

    USE mydb;(后续操作将在此数据库下执行)

    MySQL命令有哪些常用操作?-图2
    (图片来源网络,侵删)

    删除数据库

    DROP DATABASE mydb;(谨慎操作,不可逆)

表操作

创建表

需先选择数据库,使用CREATE TABLE,可定义字段名、类型、约束等:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    age TINYINT UNSIGNED,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

常用数据类型: | 类型 | 说明 | 示例 | |---------------|--------------------------|--------------------| | INT | 整数 | age INT | | VARCHAR(n) | 可变长度字符串 | username VARCHAR(50)| | TEXT | 长文本 | content TEXT | | DATETIME | 日期时间 | created_at DATETIME| | DECIMAL(m,d) | 定点数 | price DECIMAL(10,2)| | BOOLEAN/BOOL | 布尔值 | is_active BOOLEAN |

查看表结构

  • SHOW TABLES;:显示当前数据库的所有表
  • DESCRIBE users;SHOW COLUMNS FROM users;:查看表字段详情

修改表

  • 添加字段:ALTER TABLE users ADD COLUMN phone VARCHAR(20);
  • 修改字段:ALTER TABLE users MODIFY COLUMN age INT;
  • 删除字段:ALTER TABLE users DROP COLUMN phone;
  • 重命名表:RENAME TABLE users TO customers;

删除表

DROP TABLE users;

MySQL命令有哪些常用操作?-图3
(图片来源网络,侵删)

数据操作(CRUD)

插入数据(INSERT)

INSERT INTO users (username, email, age) VALUES ('Alice', 'alice@example.com', 25);

批量插入:

INSERT INTO users (username, email, age) 
VALUES ('Bob', 'bob@example.com', 30), ('Charlie', 'charlie@example.com', 28);

查询数据(SELECT)

基础查询:

SELECT * FROM users; -- 查询所有字段
SELECT username, email FROM users; -- 指定字段
SELECT * FROM users WHERE age > 25; -- 条件查询
SELECT * FROM users ORDER BY age DESC; -- 排序
SELECT * FROM users LIMIT 10; -- 限制结果数

聚合函数:

SELECT COUNT(*) FROM users; -- 记录数
SELECT AVG(age) FROM users; -- 平均年龄
SELECT MAX(age) FROM users; -- 最大年龄

更新数据(UPDATE)

UPDATE users SET age = 26 WHERE username = 'Alice';

注意:务必添加WHERE条件,否则会更新全表数据。

删除数据(DELETE)

DELETE FROM users WHERE username = 'Bob';

同样需谨慎使用WHERE条件,避免误删。

用户与权限管理

创建用户

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

授权

GRANT SELECT, INSERT ON mydb.* TO 'newuser'@'localhost'; -- 授予mydb库的查询和插入权限
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION; -- 超级管理员权限

刷新权限

FLUSH PRIVILEGES;(授权后需执行使权限生效)

撤销权限

REVOKE INSERT ON mydb.* FROM 'newuser'@'localhost';

删除用户

DROP USER 'newuser'@'localhost';

数据备份与恢复

备份数据库

mysqldump -u root -p mydb > mydb_backup.sql

恢复数据库

mysql -u root -p mydb < mydb_backup.sql

实用技巧

  1. 分页查询SELECT * FROM users LIMIT 10 OFFSET 20;(从第21条开始取10条)
  2. 模糊查询SELECT * FROM users WHERE email LIKE '%@example.com';
  3. 多表连接SELECT users.name, orders.amount FROM users JOIN orders ON users.id = orders.user_id;
  4. 事务处理
    START TRANSACTION;
    UPDATE accounts SET balance = balance - 100 WHERE id = 1;
    UPDATE accounts SET balance = balance + 100 WHERE id = 2;
    COMMIT; -- 或 ROLLBACK; 回滚

相关问答FAQs

Q1: 如何修改MySQL用户密码?
A1: 使用ALTER USER命令,ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';执行后需运行FLUSH PRIVILEGES;使密码生效,若忘记root密码,可通过跳过权限表的方式启动MySQL服务并重置密码。

Q2: MySQL中NULL和空字符串的区别是什么?
A2: NULL表示“未知”或“不存在”,不占用存储空间,且任何与NULL的比较结果均为NULL(需用IS NULLIS NOT NULL判断);空字符串是长度为0的有效字符串,占用存储空间,可直接参与比较(如WHERE email = '')。NULL = NULL结果为NULL,而结果为1(TRUE)。

分享:
扫描分享到社交APP
上一篇
下一篇