MySQL-DML(Data Manipulation Language)数据操作语言

文章目录

    • 1. DML定义
    • 2. 添加数据(Insert)
    • 3. 删除数据(Delete)
    • 4. 修改数据(Update)

1. DML定义

  • DML(Data Manipulation Language):数据操作语言,用来定义数据库对象(数据库,表, 字段),主要包括以下几种命令:
    1. INSERT:向表中插入新数据
    2. UPDATE:更新表中的数据
    3. DELETE:删除表中的数据

2. 添加数据(Insert)

  • 指定字段添加数据:

    insert into 表名 (字段名1, 字段名2) values (值1, 值2);
    
  • 全部字段添加数据:

    insert into 表名 values (值1, 值2, ...);
    
  • 批量添加数据(指定字段):

    insert into 表名 (字段名1, 字段名2) values (值1, 值2), (值1, 值2);
    
  • 批量添加数据(全部字段):

    insert into 表名 values (值1, 值2, ...), (值1, 值2, ...);
    
  • 使用 INSERT INTO…FROM 语句复制表数据:SELECT 子句返回的是一个查询到的结果集,INSERT 语句将这个结果集插入指定表中,结果集中的每行数据的字段数字段的数据类型都必须与被操作的表完全一致。

    INSERT INTO tb_courses_new
    (course_id,course_name,course_grade,course_info)
    SELECT course_id,course_name,course_grade,course_info
    FROM tb_courses;
    

3. 删除数据(Delete)

  • 删除数据:

    DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
    

    在不使用 WHERE 条件的时候,将删除所有数据。

  • 清空表数据:

    TRUNCATE [TABLE] 表名
    
  • TRUNCATE 和 DELETE 的区别:

    • DELETE 是 DML 类型的语句;TRUNCATE 是 DDL 类型的语句。它们都用来清空表中的数据。
    • DELETE 是逐行一条一条删除记录的;TRUNCATE 则是直接删除原来的表,再重新创建一个一模一样的新表,而不是逐行删除表中的数据,执行数据比 DELETE 快。因此需要删除表中全部的数据行时,尽量使用 TRUNCATE 语句, 可以缩短执行时间。
    • DELETE 删除数据后,配合事件回滚可以找回数据;TRUNCATE 不支持事务的回滚,数据删除后无法找回。
    • DELETE 删除数据后,系统不会重新设置自增字段的计数器;TRUNCATE 清空表记录后,系统会重新设置自增字段的计数器。
    • DELETE 会返回删除数据的行数,但是 TRUNCATE 只会返回 0,没有任何意义。

4. 修改数据(Update)

  • 修改数据:

    UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ]
    [ORDER BY 子句] [LIMIT 子句]
    

    如果忽略 WHERE 子句,MySQL 将更新表中所有的行。

你可能感兴趣的:(MySQL,mysql,数据库)