MySQL - 基础增删查改

一、创建数据(Create)

INSERT语句

用于向表中添加新记录,基本语法:

sql 复制代码
INSERT INTO 表名 (字段1, 字段2, ...) 
VALUES (值1, 值2, ...);

示例

students表插入数据:

sql 复制代码
INSERT INTO students (name, age, grade) 
VALUES ('张三', 18, 'A');

批量插入

sql 复制代码
INSERT INTO students (name, age, grade) 
VALUES 
  ('李四', 19, 'B'),
  ('王五', 17, 'A+');

注意

  • 字段与值必须一一对应
  • 省略字段名时需提供所有字段的值
  • 自增字段(如ID)无需手动插入

二、读取数据(Read)

SELECT语句

基础查询结构:

sql 复制代码
SELECT 字段1, 字段2, ... FROM 表名 [WHERE 条件];

1. 全字段查询

sql 复制代码
SELECT * FROM students;

2. 条件筛选

sql 复制代码
SELECT name, grade FROM students 
WHERE age > 18;

3. 高级查询

此处ORDER....BY是排序,对BY后的字段进行排序,用ASC表示升序,DESC表示降序,默认是ASC~~

  • 排序

    sql 复制代码
    SELECT * FROM students 
    ORDER BY age DESC;
  • 限制条数

    sql 复制代码
    SELECT * FROM students 
    LIMIT 5;
  • 模糊查询

    sql 复制代码
    SELECT * FROM students 
    WHERE name LIKE '张%';

三、更新数据(Update)

UPDATE语句

sql 复制代码
UPDATE 表名 
SET 字段1=新值1, 字段2=新值2 
[WHERE 条件];

示例

将李四的年级改为'A':

sql 复制代码
UPDATE students 
SET grade = 'A' 
WHERE name = '李四';

必须使用WHERE子句,否则会更新整张表!

四、删除数据(Delete)

DELETE语句

sql 复制代码
DELETE FROM 表名 [WHERE 条件];

删除年龄小于18的学生:

sql 复制代码
DELETE FROM students 
WHERE age < 18;

清空表

sql 复制代码
TRUNCATE TABLE students; -- 不可恢复,慎用!

综合习题训练

习题1:基础操作

  1. 创建products表(含id, name, price字段)
  2. 插入3条商品数据
  3. 查询价格超过100元的商品名称
  4. 将所有商品价格打9折
  5. 删除价格低于50元的商品

习题2:复杂查询

现有订单表orders结构:

sql 复制代码
CREATE TABLE orders (
  order_id INT PRIMARY KEY,
  product_id INT,
  quantity INT,
  order_date DATE
);
  1. 查询2023年1月的订单总量
  2. 统计每个产品的总销售额(需关联产品价格表)
  3. 找出单次订购数量超过10的客户ID

习题3:安全实践

  1. 解释为什么以下语句危险:

    sql 复制代码
    UPDATE users SET password = '123456';
  2. 如何防止误删整个表?

  3. 写出带备份机制的删除语句模板


习题参考答案

习题1答案

sql 复制代码
-- 1. 建表
CREATE TABLE products (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100) NOT NULL,
  price DECIMAL(10,2) NOT NULL
);

-- 2. 插入数据
INSERT INTO products (name, price) VALUES
  ('笔记本', 5999.00),
  ('鼠标', 89.90),
  ('键盘', 299.00);

-- 3. 查询
SELECT name FROM products WHERE price > 100;

-- 4. 更新
UPDATE products SET price = price * 0.9;

-- 5. 删除
DELETE FROM products WHERE price < 50;

习题2答案

sql 复制代码
-- 1. 
SELECT SUM(quantity) FROM orders 
WHERE order_date BETWEEN '2023-01-01' AND '2023-01-31';

-- 2. 
SELECT p.name, SUM(o.quantity * p.price) AS total_sales
FROM orders o
JOIN products p ON o.product_id = p.id
GROUP BY p.name;

-- 3. 
SELECT customer_id FROM orders 
WHERE quantity > 10;

习题3答案

  1. 缺少WHERE条件会更新所有用户的密码

  2. 使用事务或先备份:

    sql 复制代码
    START TRANSACTION;
    DELETE FROM table_name WHERE ...;
    -- 确认无误后
    COMMIT;
  3. 安全删除模板:

    sql 复制代码
    CREATE TABLE backup_table AS SELECT * FROM target_table;
    DELETE FROM target_table WHERE condition;

反复练习这些基础操作,可显著提升SQL语句的准确性~~~

相关推荐
TDengine (老段)3 分钟前
中原油田引入时序数据库 TDengine:写入性能提升、存储成本下降 85%
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据
IT邦德7 分钟前
Oracle 26ai搭建ADG Far Sync日志备库
数据库·oracle
Crazy CodeCrafter15 分钟前
现在做服装,实体和电商怎么选?
大数据·数据库·人工智能·微信·开源软件·零售
一江寒逸24 分钟前
零基础从入门到精通MongoDB(下篇):进阶精通篇——吃透高级查询、事务、索引优化与集群架构,成为MongoDB实战高手
数据库·mongodb·架构
sa1002728 分钟前
一键获取淘宝天猫商品评论:API 接口实战与多语言实现教程
数据库·oracle
huanmieyaoseng100336 分钟前
Linux安装达梦数据库DM8
linux·运维·数据库
香蕉鼠片43 分钟前
Mysql进阶篇
数据库·mysql·oracle
数厘44 分钟前
2.12 sql 数据插入(INSERT INTO)
数据库·sql·oracle
薛定e的猫咪1 小时前
2026 年 4 月实测:OpenAI Codex 保姆级教程,从安装到 MCP、Skills 与多智能体协作
前端·数据库·人工智能
wgzrmlrm741 小时前
Django怎么优雅发送邮件_Python配置SMTP后端实现异步通知
jvm·数据库·python