2025/12/2

开启事务:conn.setAutoCommit(false);
提交事务:conn.commit();
回滚事务:conn.rollback();

DML:对表中数据进行增删改

1.指定的列添加数据
INSERT INTO 表名(列名1,列名2,...)VALUES(值1,值2,...);
2.给全部列添加数据
3.批量添加数据
INSERT INTO 表名(列名1,列名2,...)VALUES(值1,值2,...),(值1,值2,...)...;
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...)...;(不建议这样省略列名,不然看不到修改的是哪一列)
INSERT INTO stu(id,name,sex,birth,score,email)values(2,‘李四’,‘男’,‘1999.9.9’,100,’xxx‘)

一、DDL(Data Definition Language,数据定义语言)
作用:定义 / 修改数据库、表、视图、索引等数据库对象的结构,操作后通常自动提交事务(无法回滚)。

  1. 数据库相关
    语句 功能描述 示例
    CREATE DATABASE 创建新数据库 CREATE DATABASE test_db DEFAULT CHARSET utf8mb4;
    DROP DATABASE 删除数据库(含所有数据,谨慎使用) DROP DATABASE IF EXISTS test_db;
    ALTER DATABASE 修改数据库属性(如字符集、排序规则) ALTER DATABASE test_db CHARACTER SET utf8;
    USE 切换当前操作的数据库(虽非 “定义”,但常用) USE test_db;
  2. 表相关(核心)
    语句 功能描述 示例
    CREATE TABLE 创建新表(指定字段、类型、约束) CREATE TABLE user (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age TINYINT);
    DROP TABLE 删除表(含所有数据,谨慎使用) DROP TABLE IF EXISTS user;
    ALTER TABLE 修改表结构(添加 / 删除字段、修改类型 / 约束) 1. 添加字段:ALTER TABLE user ADD email VARCHAR(100) UNIQUE;
  3. 删除字段:ALTER TABLE user DROP COLUMN age;
  4. 修改字段类型:ALTER TABLE user MODIFY name VARCHAR(80);
    TRUNCATE TABLE 清空表数据(保留表结构,速度比 DELETE 快) TRUNCATE TABLE user;
    RENAME TABLE 重命名表 RENAME TABLE user TO t_user;
  5. 其他数据库对象
    语句 功能描述 示例
    CREATE VIEW 创建视图(虚拟表,基于查询结果) CREATE VIEW v_user AS SELECT id, name FROM user WHERE age > 18;
    DROP VIEW 删除视图 DROP VIEW IF EXISTS v_user;
    CREATE INDEX 为表创建索引(提升查询效率) CREATE INDEX idx_user_name ON user(name);
    DROP INDEX 删除索引 DROP INDEX idx_user_name ON user;
    二、DML(Data Manipulation Language,数据操纵语言)
    作用:对表中的数据进行增删改,操作后需手动提交(COMMIT)或回滚(ROLLBACK)事务(默认自动提交的数据库除外,如 MySQL)。
    语句 功能描述 示例
    INSERT 插入数据(单行 / 多行) 1. 单行:INSERT INTO user(name, age) VALUES('张三', 20);
  6. 多行:INSERT INTO user(name, age) VALUES('李四', 22), ('王五', 25);
    DELETE 删除数据(可按条件,无条件则清空表) 1. 条件删除:DELETE FROM user WHERE age < 18;
  7. 清空所有:DELETE FROM user;(保留自增序列)
    UPDATE 修改数据(必须加WHERE条件,否则全表更新) UPDATE user SET age = 21 WHERE name = '张三';
    REPLACE 替换数据(存在则更新,不存在则插入) REPLACE INTO user(id, name) VALUES(1, '张三新');
    三、DQL(Data Query Language,数据查询语言)
    作用:从表中查询数据(仅读取,不修改数据),核心是 SELECT 语句,配合各种子句实现复杂查询。
  8. 基础查询
    语句 / 子句 功能描述 示例
    SELECT 指定查询字段(* 表示所有字段) 1. 查询所有:SELECT * FROM user;
  9. 指定字段:SELECT id, name FROM user;
    FROM 指定查询的表(可多表关联) SELECT u.name, o.order_no FROM user u JOIN order o ON u.id = o.user_id;
    WHERE 过滤行数据(条件查询) SELECT * FROM user WHERE age BETWEEN 18 AND 30;
    DISTINCT 去重查询(去除重复记录) SELECT DISTINCT age FROM user;
  10. 排序与限制
    子句 功能描述 示例
    ORDER BY 排序(ASC 升序,DESC 降序,默认升序) SELECT * FROM user ORDER BY age DESC;
    LIMIT 限制查询结果条数(分页常用) 1. 前 5 条:SELECT * FROM user LIMIT 5;
  11. 分页(第 2 页,每页 5 条):SELECT * FROM user LIMIT 5 OFFSET 5;(或 LIMIT 5,5)
  12. 分组与聚合
    子句 功能描述 示例
    GROUP BY 按字段分组(配合聚合函数) SELECT age, COUNT() AS user_count FROM user GROUP BY age;
    HAVING 过滤分组结果(对聚合后的数据过滤,区别于 WHERE) SELECT age, COUNT(
    ) AS user_count FROM user GROUP BY age HAVING user_count > 2;
    聚合函数 统计数据(COUNT/SUM/AVG/MAX/MIN) 1. 计数:COUNT(id)(忽略 NULL)/COUNT(*)(包含 NULL)
  13. 求和:SUM(score)
  14. 平均值:AVG(age)
  15. 多表关联查询
    关联方式 功能描述 示例
    JOIN(内连接) 只查询两表中匹配的记录 SELECT u.name, o.order_no FROM user u JOIN order o ON u.id = o.user_id;
    LEFT JOIN(左连接) 查询左表所有记录,右表匹配不到则为 NULL SELECT u.name, o.order_no FROM user u LEFT JOIN order o ON u.id = o.user_id;
    RIGHT JOIN(右连接) 查询右表所有记录,左表匹配不到则为 NULL SELECT u.name, o.order_no FROM user u RIGHT JOIN order o ON u.id = o.user_id;
    UNION/UNION ALL 合并多个查询结果(UNION 去重,UNION ALL 保留重复) SELECT name FROM user UNION ALL SELECT product_name FROM goods;
  16. 子查询
    类型 功能描述 示例
    标量子查询 子查询返回单个值(用于=/>等条件) SELECT * FROM user WHERE age > (SELECT AVG(age) FROM user);
    列子查询 子查询返回单列多行(用于IN/NOT IN) SELECT * FROM user WHERE id IN (SELECT user_id FROM order WHERE price > 100);
    表子查询 子查询返回多行多列(用于FROM子句) SELECT t.name FROM (SELECT * FROM user WHERE age > 20) t;
    核心区别总结
    类型 核心作用 事务特性 代表语句
    DDL 定义 / 修改数据库对象结构 自动提交(不可回滚) CREATE/DROP/ALTER/TRUNCATE
    DML 增删改表中数据 可提交 / 回滚 INSERT/DELETE/UPDATE
    DQL 查询表中数据 仅读取,无事务影响 SELECT(配合各种子句)

posted on 2025-12-01 20:18  才一斤  阅读(1)  评论(0)    收藏  举报

导航