基本操作
单表
多表
语法示例
多表添加
批量更细sql
UPDATE table_b
SET age = CASE
WHEN id = 1 THEN 10
WHEN id = 2 THEN 1
WHEN id = 3 THEN 11
ELSE age
END
WHERE id IN (1, 2, 3);
- 当
id
等于 1 时,将age
更新为 10。 - 当
id
等于 2 时,将age
更新为 1。 - 当
id
等于 3 时,将age
更新为 11。 - 对于不在上述列表中的
id
,保持age
字段的当前值不变。
最后,WHERE
子句限制了只对 id
在 (1, 2, 3) 中的记录进行更新操作。
所以,这个更新语句的作用是将 table_b
表中 id
分别为 1、2、3 的记录的年龄更新为 10、1、11,其他记录的年龄保持不变。
条件添加sql
INSERT INTO table_a (id, name) SELECT id, name FROM table_b WHERE age > 12;
这个 SQL 语句是一个 INSERT INTO 语句,它的作用是将符合条件的数据从一个表 (table_b
) 插入到另一个表 (table_a
) 中。具体来说:
INSERT INTO table_a (id, name)
: 这部分指定了要将数据插入到哪个表中以及插入哪些列。在这里,我们要将数据插入到table_a
表,并指定了要插入的两列为id
和name
。SELECT id, name FROM table_b WHERE age > 12
: 这部分是一个 SELECT 查询,它选择了符合条件的数据。具体地,它选择了table_b
表中满足age > 12
条件的记录,并且选择了这些记录的id
和name
字段的值。
因此,整个 SQL 语句的作用是将 table_b
表中 age
大于 12 的记录的 id
和 name
字段的值插入到 table_a
表中的相应字段。
-- 创建 table_a 表
CREATE TABLE table_a (
id INT PRIMARY KEY,
name VARCHAR(50)
);
-- 创建 table_b 表
CREATE TABLE table_b (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
-- 插入一些测试数据到 table_b
INSERT INTO table_b (id, name, age) VALUES
(1, '张三', 10),
(2, '李四', 15),
(3, '王五', 20),
(4, '赵六', 8);