MySQL怎样进行基础数据操作 增删改查(CRUD)入门教程

MySQL怎样进行基础数据操作 增删改查(CRUD)入门教程
最新回答
时光让我们忘记模样

2021-08-23 19:52:22

MySQL基础数据操作(CRUD)入门教程MySQL的CRUD(Create、Read、Update、Delete)是数据库操作的核心,涵盖数据的插入、查询、更新和删除。以下是详细操作指南:

1. 创建(Create):插入数据

使用INSERT INTO语句向表中添加新记录,支持单条或多条插入,需确保字段与值类型匹配。

  • 基本语法

    INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
  • 示例:假设表users包含id(自增主键)、name、email字段,插入单条记录:

    INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');

    若id非自增,需显式提供值:

    INSERT INTO users (id, name, email) VALUES (1, '张三', 'zhangsan@example.com');
  • 多条插入

    INSERT INTO users (name, email) VALUES ('李四', 'lisi@example.com'), ('王五', 'wangwu@example.com');

2. 读取(Read):查询数据

使用SELECT语句检索数据,支持条件筛选、排序和分页。

  • 查询所有列

    SELECT * FROM users;

    (不推荐,可能返回冗余数据,影响性能)

  • 指定列查询

    SELECT name, email FROM users;
  • 条件查询(WHERE)

    SELECT name, email FROM users WHERE id = 1;

    支持运算符:=、>、<、>=、<=、!=、LIKE、IN、BETWEEN等。

    查询名字包含“张”的用户:SELECT name, email FROM users WHERE name LIKE '%张%';

    查询id在1到3之间的用户:SELECT name, email FROM users WHERE id BETWEEN 1 AND 3;

  • 排序(ORDER BY)

    SELECT name, email FROM users ORDER BY id DESC;

    DESC为降序,默认升序(ASC)

  • 分页(LIMIT + OFFSET)

    SELECT name, email FROM users LIMIT 10; -- 前10条SELECT name, email FROM users LIMIT 10 OFFSET 20; -- 第21-30条

3. 更新(Update):修改数据

使用UPDATE语句修改已有记录,必须配合WHERE条件,避免误改全表。

  • 基本语法

    UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件;
  • 示例:将id=1的用户的email修改为new_email@example.com:

    UPDATE users SET email = 'new_email@example.com' WHERE id = 1;

    同时更新多个列:

    UPDATE users SET email = 'new_email@example.com', name = '新名字' WHERE id = 1;
4. 删除(Delete):删除数据

使用DELETE语句移除记录,必须配合WHERE条件,否则会清空全表。若需清空表,推荐TRUNCATE TABLE以提升效率。

  • 基本语法

    DELETE FROM 表名 WHERE 条件;
  • 示例:删除id=1的用户:

    DELETE FROM users WHERE id = 1;
  • 清空表

    TRUNCATE TABLE users; -- 更快,但会重置自增主键
5. 安全与性能优化
  • 防止SQL注入:使用参数化查询(如PHP的PDO预处理语句):

    $stmt = $pdo->prepare("SELECT * FROM users WHERE name = ? AND password = ?");$stmt->execute([$username, $password]);
  • 事务(Transaction):保证一组操作的原子性(全部成功或全部失败),通过START TRANSACTION、COMMIT和ROLLBACK实现。

    START TRANSACTION;UPDATE accounts SET balance = balance - 100 WHERE id = 'A';UPDATE accounts SET balance = balance + 100 WHERE id = 'B';COMMIT; -- 或 ROLLBACK 回滚
  • 查询性能优化

    索引:为常用查询列创建索引,但避免滥用。

    避免SELECT *:仅查询需要的列。

    使用EXPLAIN分析:识别性能瓶颈。

    优化表结构:减少冗余数据,选择合适的数据类型。

    硬件与缓存:升级硬件(CPU、内存、磁盘),使用缓存系统(如Redis)。

通过掌握CRUD操作及安全、性能优化技巧,可高效管理MySQL数据库。