编辑
2024-11-07
数据库
00
请注意,本文编写于 164 天前,最后修改于 161 天前,其中某些信息可能已经过时。

目录

1. 数据库管理
2. 表管理
3. 数据操作
4. 条件查询
5. 排序和分组
6. 表连接
7. 索引
8. 用户管理
9. 备份与恢复
10. 事务管理
11. 系统管理
12. 其他常用命令

1. 数据库管理

  • 查看所有数据库:
SHOW DATABASES;

作用:列出 MySQL 中所有的数据库。

  • 创建数据库
CREATE DATABASE database_name;

作用:创建一个新的数据库,database_name 是你要创建的数据库名称。

  • 删除数据库:
DROP DATABASE database_name;

作用:删除指定的数据库及其中的所有数据。

  • 选择使用数据库:
USE database_name;

作用:选择并激活一个数据库,后续的操作将针对该数据库进行。

2. 表管理

  • 查看当前数据库中的所有表:
SHOW TABLES;

作用:显示当前选择数据库中的所有表。

  • 创建表:
CREATE TABLE table_name ( column1 datatype, column2 datatype, ...);

作用:创建一个新表,并定义其列的名称和数据类型。每列必须指定数据类型(如:INT、VARCHAR、DATE 等)。

  • 查看表结构:
DESCRIBE table_name;

作用:显示表 table_name 的结构,包括字段名、数据类型、是否为 NULL、默认值等信息。

  • 删除表:
DROP TABLE table_name;

作用:删除表及其包含的数据。

  • 修改表(如添加字段):
ALTER TABLE table_name ADD column_name datatype;

作用:向已有表中添加新的列。

  • 删除表中的字段:
ALTER TABLE table_name DROP COLUMN column_name;

作用:删除表中指定的列。

3. 数据操作

  • 查看数据(查询表):
SELECT * FROM table_name;

作用:查询并显示表 table_name 中的所有数据。

  • 插入数据:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

作用:向表中插入一条新记录。column1, column2 是列名,value1, value2 是对应列的值。

  • 更新数据:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;

作用:更新表 table_name 中符合条件的记录。SET 指定要更新的字段和值,WHERE 是条件,确保只更新特定记录。

  • 删除数据:
DELETE FROM table_name WHERE condition;

作用:删除表 table_name 中符合条件的记录。WHERE 是删除条件。

4. 条件查询

  • 使用条件查询数据:
SELECT * FROM table_name WHERE column_name = value;

作用:查询 column_name 列的值为 value 的所有记录。

  • 使用 AND 和 OR 连接多个条件:
SELECT * FROM table_name WHERE column1 = value1 AND column2 = value2;

作用:同时满足多个条件的记录,AND 表示所有条件必须为真,OR 表示至少一个条件为真。

  • 模糊查询 (LIKE):
SELECT * FROM table_name WHERE column_name LIKE 'pattern';

作用:模糊匹配 column_name 中符合 pattern 的值,% 代表任意字符。例如,LIKE 'A%' 表示以 A 开头的值。

  • 查询数据范围(BETWEEN):
SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;

作用:查询 column_name 在 value1 和 value2 范围之间的数据,包括边界值。

  • 查询为空或非空数据:
SELECT * FROM table_name WHERE column_name IS NULL;

作用:查询 column_name 值为 NULL 的记录。

  • 查询前几条记录:
SELECT * FROM table_name LIMIT n;

作用:限制查询结果的行数,n 是要查询的记录数量。

5. 排序和分组

  • 排序数据:
SELECT * FROM table_name ORDER BY column_name ASC;

作用:根据某一列排序查询结果,ASC 表示升序,DESC 表示降序。

  • 分组查询:
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;

作用:将数据按照 column_name 列分组,并对每组数据进行统计(例如,COUNT 计算每组的记录数)。

  • 使用 HAVING 筛选分组后的数据:
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 1;

作用:对分组后的数据进行进一步筛选。HAVING 用于条件过滤,而 WHERE 只能用于行级过滤。

6. 表连接

  • 内连接(INNER JOIN):
SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;

作用:从两个表中返回符合条件的行,只有当 table1 和 table2 中的列值匹配时才返回记录。

  • 左连接(LEFT JOIN):
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;

作用:返回左表所有记录以及右表中匹配的记录。如果右表没有匹配的记录,右表列会返回 NULL。

  • 右连接(RIGHT JOIN):
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;

作用:返回右表所有记录以及左表中匹配的记录。如果左表没有匹配的记录,左表列会返回 NULL。

7. 索引

创建索引:

CREATE INDEX index_name ON table_name (column_name);

作用:创建一个索引,提高查询效率。index_name 是索引的名称,column_name 是要加索引的列。

  • 删除索引:
DROP INDEX index_name ON table_name;

作用:删除指定的索引。

8. 用户管理

  • 创建用户:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

作用:创建一个新的用户并指定密码,username 是用户名,hostname 是主机名(如 % 表示任意主机)。

  • 修改用户密码:
ALTER USER 'username'@'hostname' IDENTIFIED BY 'new_password';

作用:修改指定用户的密码。

  • 赋予用户权限:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'hostname';

作用:授予用户对指定数据库的所有权限。

  • 撤销用户权限:
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'hostname';

作用:撤销指定用户对指定数据库的所有权限。

  • 删除用户:
DROP USER 'username'@'hostname';

作用:删除指定的用户。

9. 备份与恢复

  • 备份数据库:
mysqldump -u username -p database_name > backup_file.sql

作用:使用 mysqldump 工具将指定数据库导出为 SQL 文件,backup_file.sql 是保存备份的文件名。

  • 恢复数据库:
mysql -u username -p database_name < backup_file.sql

作用:从 SQL 文件中恢复数据库。

10. 事务管理

  • 开始事务:
START TRANSACTION;

作用:开始一个事务,所有操作将在事务结束时一起提交或回滚。

  • 提交事务:
COMMIT;

作用:提交当前事务,确保事务内的所有修改生效。

  • 回滚事务:
ROLLBACK;

作用:撤销事务内的所有操作,恢复事务开始前的数据状态。

11. 系统管理

  • 查看当前数据库服务器状态:
SHOW STATUS;

作用:显示数据库服务器的运行状态。

  • 查看当前数据库连接信息:
SHOW PROCESSLIST;

作用:显示当前正在执行的所有查询。

  • 显示当前数据库的信息:
SHOW VARIABLES;

作用:显示 MySQL 配置变量和服务器参数的当前值。

12. 其他常用命令

  • 查询数据库版本:
SELECT VERSION();

作用:查询 MySQL 服务器的版本。

  • 查看当前数据库字符集:
SHOW VARIABLES LIKE 'character_set%';

作用:查看数据库当前的字符集设置。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay