当前位置: 首页 > news >正文

MySQL 常用命令大全:增删改查与更多操作

MySQL 是一种广泛使用的关系型数据库管理系统,掌握其常用命令是进行数据库操作的基础

本文将介绍 MySQL 中常用的增删改查(CRUD)命令以及其他实用操作,帮助你快速上手 MySQL

同时,还会详细讨论在创建表时如何选择合适的字段类型


1. 数据库操作

创建数据库
CREATE DATABASE database_name;

示例:

CREATE DATABASE mydb;
删除数据库
DROP DATABASE database_name;

示例:

DROP DATABASE mydb;
切换数据库
USE database_name;

示例:

USE mydb;
查看所有数据库
SHOW DATABASES;

2. 表操作

创建表

在创建表时,选择合适的字段类型非常重要。以下是常见的字段类型及其适用场景:

  • 整数类型

    • TINYINT:小整数,范围 -128 到 127(有符号)或 0 到 255(无符号)
    • SMALLINT:较小整数,范围 -32768 到 32767(有符号)或 0 到 65535(无符号)
    • INT:常用整数类型,范围 -2147483648 到 2147483647(有符号)或 0 到 4294967295(无符号)
    • BIGINT:大整数,范围更大

    示例:

    id INT AUTO_INCREMENT PRIMARY KEY
    
  • 浮点数类型

    • FLOAT:单精度浮点数,适合存储小数
    • DOUBLE:双精度浮点数,精度更高
    • DECIMAL:精确小数,适合存储货币等需要高精度的数据

    示例:

    price DECIMAL(10, 2)
    
  • 字符串类型

    • CHAR:固定长度字符串,适合存储长度固定的数据(如国家代码)
    • VARCHAR:可变长度字符串,适合存储长度不固定的数据(如用户名)
    • TEXT:大文本数据,适合存储长文本(如文章内容)

    示例:

    name VARCHAR(50)
    
  • 日期和时间类型

    • DATE:存储日期,格式为 YYYY-MM-DD
    • TIME:存储时间,格式为 HH:MM:SS
    • DATETIME:存储日期和时间,格式为 YYYY-MM-DD HH:MM:SS
    • TIMESTAMP:存储时间戳,自动记录数据插入或更新时间

    示例:

    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    
  • 布尔类型

    • BOOLEANBOOL:存储布尔值(TRUEFALSE)。

    示例:

    is_active BOOLEAN DEFAULT TRUE
    
创建表示例
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    age TINYINT UNSIGNED,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
删除表
DROP TABLE table_name;

示例:

DROP TABLE users;
查看表结构
DESCRIBE table_name;

示例:

DESCRIBE users;
查看所有表
SHOW TABLES;

3. 数据操作(增删改查)

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

示例:

INSERT INTO users (name, email, age)
VALUES ('Alice', 'alice@example.com', 25);
查询数据(SELECT)
SELECT column1, column2, ...
FROM table_name
WHERE condition;

示例:

SELECT * FROM users;
SELECT name, email FROM users WHERE id = 1;
更新数据(UPDATE)
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

示例:

UPDATE users
SET email = 'alice_new@example.com'
WHERE id = 1;
删除数据(DELETE)
DELETE FROM table_name
WHERE condition;

示例:

DELETE FROM users
WHERE id = 1;

4. 条件查询与排序

条件查询(WHERE)
SELECT * FROM users WHERE age > 18;
排序(ORDER BY)
SELECT * FROM users ORDER BY name ASC;  -- 升序
SELECT * FROM users ORDER BY age DESC;  -- 降序
限制结果数量(LIMIT)
SELECT * FROM users LIMIT 10;  -- 返回前 10 条记录

5. 表结构修改

添加列
ALTER TABLE table_name
ADD column_name datatype;

示例:

ALTER TABLE users
ADD age INT;
修改列
ALTER TABLE table_name
MODIFY column_name new_datatype;

示例:

ALTER TABLE users
MODIFY age TINYINT;
删除列
ALTER TABLE table_name
DROP COLUMN column_name;

示例:

ALTER TABLE users
DROP COLUMN age;
重命名表
RENAME TABLE old_table_name TO new_table_name;

示例:

RENAME TABLE users TO customers;

6. 索引操作

创建索引
CREATE INDEX index_name
ON table_name (column1, column2, ...);

示例:

CREATE INDEX idx_email
ON users (email);
删除索引
DROP INDEX index_name
ON table_name;

示例:

DROP INDEX idx_email
ON users;

7. 事务操作

开启事务
START TRANSACTION;
提交事务
COMMIT;
回滚事务
ROLLBACK;

8. 用户与权限管理

创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

示例:

CREATE USER 'admin'@'localhost' IDENTIFIED BY '123456';
授予权限
GRANT permission_type ON database_name.table_name TO 'username'@'host';

示例:

GRANT ALL PRIVILEGES ON mydb.* TO 'admin'@'localhost';
撤销权限
REVOKE permission_type ON database_name.table_name FROM 'username'@'host';

示例:

REVOKE ALL PRIVILEGES ON mydb.* FROM 'admin'@'localhost';
删除用户
DROP USER 'username'@'host';

示例:

DROP USER 'admin'@'localhost';

9. 备份与恢复

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

示例:

mysqldump -u root -p mydb > mydb_backup.sql
恢复数据库
mysql -u username -p database_name < backup_file.sql

示例:

mysql -u root -p mydb < mydb_backup.sql

总结

本文介绍了 MySQL 中常用的命令,涵盖了数据库操作、表操作、数据操作(增删改查)、条件查询、表结构修改、索引操作、事务管理、用户权限管理以及备份恢复等内容

相关文章:

  • B站上优质的Java和SpringBoot相关视频教程
  • mysql中事务的基本概念
  • Docker 学习(一)
  • 7. 从网络获取数据
  • 三十五周学习周报
  • MaxCompute x DataWorks × DeepSeek,实现使用自定义数据集微调DeepSeek-R1蒸馏模型
  • 011 rocketmq过滤消息
  • 若依框架修改为多租户
  • 从分层到微服务:构建高可扩展的 ERP 系统架构之道
  • Excel基础(详细篇):总结易忽视的知识点,有用的细节操作
  • (一)Java虚拟机——JVM的组成
  • 构建高可用和高防御力的云服务架构第五部分:PolarDB(55)
  • 【Word2Vec】Skip-gram 的直观理解(深入浅出)
  • Redis 的几个热点知识
  • (十 一)趣学设计模式 之 组合模式!
  • 【Mac】git使用再学习
  • 基于SpringBoot的“母婴护理知识共享系统”的设计与实现(源码+数据库+文档+PPT)
  • LeetCode 124:二叉树中的最大路径和
  • Spring Boot 入门 与 无法解析符号 springframework 的解决
  • Three.js 快速入门教程【十一】天空盒的多种实现方式
  • 普京调整俄陆军高层人事任命
  • 巴基斯坦与印度停火延长至18日
  • 浙江省台州市政协原副主席林虹被“双开”
  • 端午假期购票日历发布,今日可购买5月29日火车票
  • 马上评|安排见义勇为学生补考,善意与善意的双向奔赴
  • 呼吸医学专家杜晓华博士逝世,终年50岁