首页 > 网站搭建 > 技术分享内容详情

MySQL常用命令汇总 2025-01-18 浏览量: 来源:网络

       本文为IT技术爱好者提供详细的服务器管理与操作系统知识,特别聚焦于Linux及其常用命令。我们将深入探讨Linux系统的操作技巧、服务器维护和优化方法,并汇总MySQL常用命令,帮助开发者提升数据库管理能力。无论是新手还是资深技术人员,了解这些基础和进阶命令对于提高工作效率、优化服务器性能至关重要。通过掌握这些命令,你将能够更好地管理Linux服务器,并实现数据库操作的自动化和高效管理。

1. 登录与退出

登录 MySQL

mysql [OPTIONS]

mysql -uroot -p

选项说明示例
-u指定用户名-u root
-p提示输入密码(密码可跟在后面但不安全)-p1234 或 -p
-h指定主机名(默认 localhost)-h 192.168.1.100
-P指定端口(默认 3306)-P 3307
--ssl启用 SSL 安全连接--ssl
--socket指定套接字文件--socket=/tmp/mysql.sock
--database登录后直接使用指定数据库--database=testdb

退出 MySQL

SQL> exit;

或:

SQL> quit;

2. 数据库管理

查看数据库列表

show databases;

创建数据库

CREATE DATABASE 数据库名 [OPTIONS];

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
选项说明示例
DEFAULT CHARACTER SET设置数据库的默认字符集DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE设置数据库的排序规则(与字符集匹配)DEFAULT COLLATE utf8mb4_general_ci

删除数据库

drop databases 数据库名;

使用指定数据库

USE 数据库名;
use mysql;

查看当前使用的数据库

SELECT DATABASE();

查看数据库大小

SELECT table_schema AS 数据库名,
       ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 大小_MB
FROM information_schema.tables
GROUP BY table_schema;

3. 表管理

查看当前数据库的所有表

SHOW TABLES;

查看表结构

DESC 表名;

或:

SHOW COLUMNS FROM 表名;

创建表

CREATE TABLE 表名 (
    列名 数据类型 [约束条件],
    ...
) [OPTIONS];

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

选项说明示例
ENGINE设置存储引擎(如 InnoDB、MyISAM)ENGINE=InnoDB
DEFAULT CHARSET设置表的默认字符集DEFAULT CHARSET=utf8mb4
AUTO_INCREMENT指定自增主键id INT AUTO_INCREMENT PRIMARY KEY

查看表的创建语句

SHOW CREATE TABLE 表名;

修改表结构

添加列:

ALTER TABLE 表名 ADD 列名 数据类型 [位置];

位置:FIRST(在最前),AFTER 列名(在指定列后)。

修改列:

ALTER TABLE 表名 MODIFY 列名 数据类型;

删除列:

ALTER TABLE 表名 DROP 列名;

重命名列:

ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型;

删除表

DROP TABLE 表名;

清空表(保留结构)

TRUNCATE TABLE 表名;

4. 数据操作

插入数据

INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);

INSERT INTO users (name, email) VALUES ('Alice''liyb@example.com');

批量插入

INSERT INTO 表名 (列名1, 列名2) VALUES
(值1, 值2),
(值3, 值4),
(值5, 值6);

查询数据

SELECT 列名1, 列名2, ... FROM 表名 [WHERE 条件] [ORDER BY 列名 ASC|DESC] [LIMIT 偏移量, 行数];

SELECT * FROM users WHERE email LIKE '%example.com' ORDER BY created_at DESC LIMIT 10;

常用子句:

子句说明示例
WHERE指定条件WHERE age > 30
ORDER BY排序结果集ORDER BY name ASC
LIMIT限制返回行数,支持偏移量LIMIT 5 OFFSET 10
GROUP BY按列分组GROUP BY department
HAVING筛选分组结果HAVING COUNT(*) > 1

更新数据

UPDATE 表名 SET 列名1=值1, 列名2=值2 WHERE 条件;

示例:

UPDATE users SET email='new_email@example.com' WHERE name='Alice';

删除数据

DELETE FROM 表名 WHERE 条件;

DELETE FROM users WHERE id=10;

5. 用户管理

创建用户

CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'mypassword';
参数说明示例
'用户名'用户名'testuser'
'主机'用户允许访问的主机(% 表示任意主机)'localhost' 或 '%'
'密码'用户密码'password123'

修改用户密码

ALTER USER '用户名'@'主机' IDENTIFIED BY '新密码';

ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'newpassword123';

删除用户

DROP USER '用户名'@'主机';

授予权限

GRANT 权限列表 ON 数据库.表 TO '用户名'@'主机';
权限说明
ALL PRIVILEGES授予所有权限
SELECT允许读取表中的数据
INSERT允许向表中插入数据
UPDATE允许修改表中的数据
DELETE允许删除表中的数据
CREATE允许创建数据库和表
DROP允许删除数据库和表
GRANT SELECT, INSERT ON mydb.* TO 'testuser'@'localhost';

撤销权限

REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'主机';

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

刷新权限

FLUSH PRIVILEGES;

6. 性能优化

查看查询执行计划

EXPLAIN SELECT 查询语句;
EXPLAIN SELECT * FROM users WHERE email='test@example.com';

优化表

OPTIMIZE TABLE 表名;

查看慢查询

SHOW VARIABLES LIKE 'slow_query_log';

启用慢查询:

SET GLOBAL slow_query_log=1;

检查表

CHECK TABLE 表名;

修复表

REPAIR TABLE 表名;


相关标签: IT技术分享 服务器 操作系统 Linux Linux命令

Copyright © 2016-2025 帆笛跨境网 · 版权所有

联系我们

全国服务热线

4008105666

E-mail:support@myfindy.com‬

地 址:中国 · 成都

帆笛跨境客服微信二维码
扫一扫,加微信

Copyright © 2016-2025 帆笛跨境网 · 版权所有