Mysql常用命令

1. 数据库管理指令

1.1 创建数据库

sql 复制代码
CREATE DATABASE database_name [DEFAULT CHARACTER SET charset_name] [DEFAULT COLLATE collation_name];
  • 功能: 创建一个新的数据库。

  • 语法参数:

    • database_name: 数据库名称,遵循命名规则(如不能包含空格,长度限制等)。
    • DEFAULT CHARACTER SET: 可选,指定数据库的默认字符集(如 utf8utf8mb4 等)。
    • DEFAULT COLLATE: 可选,指定默认排序规则。
  • 示例:

sql 复制代码
CREATE DATABASE my_database DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;

1.2 查看数据库

sql 复制代码
SHOW DATABASES;
  • 功能: 显示当前服务器上的所有数据库。

  • 使用场景: 当你需要查看已有的数据库以选择操作时。

  • 示例:

sql 复制代码
SHOW DATABASES;

1.3 删除数据库

sql 复制代码
DROP DATABASE database_name;
  • 功能: 删除指定的数据库及其所有数据。

  • 注意: 此操作不可恢复,执行前需谨慎。

  • 示例:

sql 复制代码
DROP DATABASE my_database;

2. 表管理指令

2.1 创建表

sql 复制代码
CREATE TABLE table_name (
    column1 datatype constraints,
    column2 datatype constraints,
    ...
) ENGINE=storage_engine;
  • 功能: 创建一个新表。

  • 语法参数:

    • table_name: 表的名称。
    • column1, column2: 列的名称及数据类型(如 INT, VARCHAR(255), DATE等)。
    • constraints: 列的约束条件,如 PRIMARY KEYNOT NULLUNIQUE等。
    • ENGINE: 可选,指定存储引擎(如 InnoDB, MyISAM 等)。
  • 示例:

sql 复制代码
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

2.2 查看表结构

sql 复制代码
DESCRIBE table_name;
  • 功能: 显示表的结构,包括列名、数据类型和约束。

  • 解析 : 提供表中每列的详细信息,包括 Field(列名)、Type(数据类型)、Null(是否允许为空)、Key(索引类型)、Default(默认值)、Extra(其他信息)。

  • 示例:

sql 复制代码
DESCRIBE users;

2.3 删除表

sql 复制代码
DROP TABLE table_name;
  • 功能: 删除指定的表及其所有数据。

  • 注意: 一旦执行,表及数据将永久删除。

  • 示例:

sql 复制代码
DROP TABLE users;

2.4 修改表

sql 复制代码
ALTER TABLE table_name
ADD column_name datatype constraints; -- 添加列
ALTER TABLE table_name
MODIFY column_name new_datatype; -- 修改列的数据类型
ALTER TABLE table_name
DROP COLUMN column_name; -- 删除列
  • 功能: 修改现有表的结构。

  • 解析: 可以添加、修改或删除列。

  • 示例:

sql 复制代码
ALTER TABLE users ADD email VARCHAR(100);
ALTER TABLE users MODIFY password VARCHAR(128);
ALTER TABLE users DROP COLUMN email;

3. 数据操作指令

3.1 插入数据

sql 复制代码
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
  • 功能: 向表中插入新记录。

  • 解析: 插入的数据类型必须与列的数据类型匹配。

  • 示例:

sql 复制代码
INSERT INTO users (username, password) VALUES ('john_doe', 'securepassword');

3.2 查询数据

sql 复制代码
SELECT column1, column2 FROM table_name WHERE condition;
  • 功能: 从表中查询特定记录。

  • 解析:

    • 可以使用 * 查询所有列。
    • WHERE 子句用于过滤记录。
  • 示例:

sql 复制代码
SELECT * FROM users WHERE username = 'john_doe';
SELECT username, created_at FROM users WHERE created_at > '2024-01-01';

3.3 更新数据

sql 复制代码
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
  • 功能: 更新表中的现有记录。

  • 注意 : 若不加 WHERE 条件,将更新表中的所有记录。

  • 示例:

sql 复制代码
UPDATE users SET password = 'new_secure_password' WHERE username = 'john_doe';

3.4 删除数据

sql 复制代码
DELETE FROM table_name WHERE condition;
  • 功能: 删除表中的记录。

  • 注意 : 不加 WHERE 将删除所有记录。

  • 示例:

sql 复制代码
DELETE FROM users WHERE username = 'john_doe';

4. 索引管理指令

4.1 创建索引

sql 复制代码
CREATE INDEX index_name ON table_name (column_name);
  • 功能: 在指定列上创建索引以提高查询性能。

  • 解析: 使用索引可以加快数据检索速度。

  • 示例:

sql 复制代码
CREATE INDEX idx_username ON users (username);

4.2 删除索引

sql 复制代码
DROP INDEX index_name ON table_name;
  • 功能: 删除指定的索引。

  • 解析: 删除后索引将不再存在,可能会影响查询性能。

  • 示例:

sql 复制代码
DROP INDEX idx_username ON users;

5. 事务管理指令

5.1 开始事务

sql 复制代码
START TRANSACTION;
  • 功能: 开始一个新的事务。

  • 使用场景: 当需要保证多条操作的原子性时。

  • 示例:

sql 复制代码
START TRANSACTION;

5.2 提交事务

sql 复制代码
COMMIT;
  • 功能: 提交当前事务的所有更改。

  • 解析: 在事务中所有操作成功后,持久化更改。

  • 示例:

sql 复制代码
COMMIT;

5.3 回滚事务

sql 复制代码
ROLLBACK;
  • 功能: 撤销当前事务中的所有更改。

  • 解析: 用于恢复到事务开始前的状态。

  • 示例:

sql 复制代码
ROLLBACK;

6. 用户管理指令

6.1 创建用户

sql 复制代码
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
  • 功能: 创建一个新用户。

  • 解析: 用户权限设置在后续授权中完成。

  • 示例:

sql 复制代码
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'user_password';

6.2 授权用户

sql 复制代码
GRANT privileges ON database.table TO 'username'@'host';
  • 功能: 授权用户在指定数据库和表上的权限。

  • 解析:

    • privileges: 权限类型(如 SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES 等)。
    • database.table: 指定的数据库和表。
  • 示例:

sql 复制代码
GRANT SELECT, INSERT ON my_database.* TO 'new_user'@'localhost';

6.3 撤销用户权限

sql 复制代码
REVOKE privileges ON database.table FROM 'username'@'host';
  • 功能: 撤销用户在指定数据库和表上的权限。
  • 示例:
sql 复制代码
REVOKE INSERT ON my_database.* FROM 'new_user'@'localhost';

6.4 查看用户权限

sql 复制代码
SHOW GRANTS FOR 'username'@'host';
  • 功能: 显示指定用户的权限。
  • 示例:
sql 复制代码
SHOW GRANTS FOR 'new_user'@'localhost';

7. 其他常用指令

7.1 备份数据库

bash 复制代码
mysqldump -u username -p database_name > backup.sql
  • 功能: 备份指定数据库到一个 SQL 文件。

  • 解析:

    • -u username: 数据库用户名。
    • -p: 提示输入密码。
    • database_name: 要备份的数据库名称。
  • 示例:

bash 复制代码
mysqldump -u username -p database_name > backup.sql
相关推荐
清风-云烟9 小时前
使用redis-cli命令实现redis crud操作
java·linux·数据库·redis·spring·缓存·1024程序员节
Joeysoda14 小时前
Java数据结构 (链表反转(LinkedList----Leetcode206))
java·linux·开发语言·数据结构·链表·1024程序员节
比特在路上17 小时前
StackOrQueueOJ3:用栈实现队列
c语言·开发语言·数据结构·1024程序员节
0xCC说逆向2 天前
Windows图形界面(GUI)-QT-C/C++ - Qt键盘与鼠标事件处理详解
c语言·开发语言·c++·windows·qt·win32·1024程序员节
明明真系叻4 天前
2025.1.18机器学习笔记:PINN文献精读
人工智能·笔记·深度学习·机器学习·1024程序员节
0xCC说逆向4 天前
Windows图形界面(GUI)-QT-C/C++ - Qt List Widget详解与应用
c语言·开发语言·c++·windows·qt·win32·1024程序员节
明明真系叻6 天前
2025.1.12机器学习笔记:GAN文献阅读
人工智能·笔记·深度学习·机器学习·1024程序员节
比特在路上7 天前
OJ12:160. 相交链表
c语言·数据结构·算法·链表·1024程序员节
earthzhang20218 天前
《深入浅出HTTPS》读书笔记(28):DSA数字签名
开发语言·网络协议·算法·https·1024程序员节
比特在路上9 天前
初阶数据结构【栈及其接口的实现】
c语言·开发语言·数据结构·1024程序员节