SQL
1. 增(INSERT)
1.1 插入单行数据
INSERT INTO 表名(列名1, 列名2, 列名3) VALUES (值1, 值2, 值3);
示例:
INSERT INTO students (id, name, age) VALUES (1, 'Alice', 20);
1.2 插入多行数据
INSERT INTO 表名 (列名1, 列名2, 列名3) VALUES (值1, 值2, 值3), (值4, 值5, 值6), (值7, 值8, 值9);
示例:
INSERT INTO students (id, name, age) VALUES (2, 'Bob', 21), (3, 'Charlie', 22), (4, 'David', 23);
1.3 从另一个表插入数据
INSERT INTO 表名 (列名1, 列名2)
SELECT 列名1, 列名2 FROM 另一个表 WHERE 条件;
示例:
INSERT INTO students_backup (id, name)
SELECT id, name FROM students WHERE age > 21;
2. 删(DELETE)
2.1 删除特定条件的数据
DELETE FROM 表名 WHERE 列名 = 特定值;
示例:
DELETE FROM students WHERE id = 1;
2.2 删除所有行
DELETE FROM students;
2.3 使用子查询删除数据
DELETE FROM 表名 WHERE 列名 IN (SELECT 列名 FROM 另一个表 WHERE 条件);
示例:
DELETE FROM students WHERE id IN (SELECT student_id FROM courses WHERE course_name = 'Math');
2.4 清空表数据
truncate table FROM 表名
3. 改(UPDATE)
3.1 更新单个列
UPDATE 表名 SET 要改的列名 = 值 WHERE 列名 = 值;
示例:
UPDATE students SET age = 21 WHERE id = 2;
3.2 更新多个列
UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2 WHERE 条件;
示例:
UPDATE students SET name = 'Alice Smith', age = 21 WHERE id = 1;
3.3 使用子查询更新数据
UPDATE 表名 SET 列名 = (SELECT 列名 FROM 另一个表 WHERE 条件) WHERE 条件;
示例:
UPDATE students SET age = (SELECT AVG(age) FROM students) WHERE name = 'Bob';
3.4 安全更新
在进行批量更新操作时,可以先使用 SELECT 语句确认需要更新的数据。
SELECT * FROM students WHERE age < 18;
-- 确认后再执行更新
UPDATE students SET age = 18 WHERE age < 18;
4. 查(SELECT)
4.1 综合查询例子
/*
多行注释写法
多行注释写法
*/
-- 单行注释写法
SELECT DISTINCT `index_1`,`index_2`,SUM(`value_1`) AS 求和, SUM(`value_1`)*2 AS 求和*2, --SELECT选择字段
CASE
WHEN prop_status = 0 THEN '开店申请'
WHEN prop_status = 1 THEN '正式'
WHEN prop_status = 2 THEN '立项终止'
ELSE '关闭'
END 网点状态 --注意最后一个要去掉,
FROM db.tabel --FROM选择库表
WHERE `index_1` = "condition" AND `index_1` LIKE '%A' -- WHERE添加筛选条件
GROUP BY `index_1`,`index_2` -- 聚合分组
HAVING SUM(`value_1`) > 100 -- 聚合后添加筛选条件
ORDER BY SUM(`value_1`) DESC -- 排序 DESC降序
LIMIT 3 OFFSET 1 -- 返回三条记录,跳过一条记录,简写:LIMIT 3,1