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
相关推荐
fangzhanpeng1683 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心6 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552711 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552712 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝13 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552713 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552714 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552716 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552717 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552718 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节