• MySQL之DML


    INSERT语句

    针对数据的插入
    语法:

    INSERT INTO 表名 [(列名,[列名....])] VALUES (值,[值]), (值,[值]), (值,[值])....;
    
    • 1

    如果为每列都指定值,则表名后不需要列出插入的列名。
    如果不想在表名后列出列名,可以为那些无法指定的值插入NULL。

    一次性插入多条记录

    INSERT INTO 表名 [列名,[列名....]] VALUES (值,[值]), (值,[值]), (值,[值])....;
    
    • 1

    例如:新建一个表并插入记录
    新建表:

    CREATE TABLE newstudent(
      StudentNo int(10),
      StudentName varchar(20),
      Address varchar(100)
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5

    插入记录:
    ①单条插入

    INSERT INTO newstudent (StudentNo, StudentName, Address) VALUES (10, '张三', '陕西省延安市');
    
    • 1

    ②多条插入

    INSERT INTO newstudent (StudentNo, StudentName, Address) VALUES (11, '李四', '陕西省延安市'),(12,'王五','陕西省西安市');
    
    • 1

    ③使用SELECT插入

    INSERT INTO newstudent
    SELECT StudentNo,StudentName,Address FROM student;
    
    • 1
    • 2

    REPLACE语句

    也是新增数据。
    主要有三种语法:
    语法格式1:

    REPLACE INTO 表名 [(字段列表)] VALUES (值列表);
    
    • 1

    语法格式2:

    REPLACE [INTO] 目标表名[(字段列表1)] SELECT (字段列表2) FROM 源表 [WHERE 条件表达式];
    
    • 1

    语法格式3:

    REPLACE [INTO] 表名 SET 字段1=值1,字段2=值2;
    
    • 1

    REPLACE和INSERT语句的区别

    REPLACE语句的功能和INSERT语句的功能基本相同,不同之处在于:使用REPLACE语句向表中插入新纪录时,如果新纪录的主键值或者唯一性约束的字段值与已有记录相同,则已有记录先被删除(注意:已有记录删除时也不能违背外键约束条件),然后再插入新记录。
    使用REPLACE的最大好处就是可以将DELETE和INSERT语句合二为一(效果相当于更新),形成一个原子操作,这样就无需将DELETE操作与INSERT操作置于事务中了。

    DELETE语句

    语法:

    DELETE FROM 表名 [WHERE 条件];
    
    • 1

    注意:如果没有WHERE 条件则整表记录删除

    例如:

    DELETE FROM newstudent WHERE StudentNo=1111;
    
    • 1

    TRUNCATE语句

    语法:

    TRUNCATE FROM 表名 [WHERE 条件];
    
    • 1

    例如:

    TRUNCATE FROM newstudent StudentNo=1111;
    
    • 1

    DROP、TRUNCATE、DELETE的区别

    DROP: 删除数据和表结构,删除速度最快。
    **TRUNCATE:**删除所有数据,保留表结构,不可以回滚,一次全部删除所有数据,速度相对很快。
    **DELETE:**删除数据,保留表结构,可以回滚,如果数据量大,很慢。

    UPDATE语句

    语法:

    UPDATE 表名 
    SET 列名1=值1,[列名2=值2...]
    [WHERE 条件];
    
    • 1
    • 2
    • 3

    例如:修改李文才的名字为李四

    UPDATE newstudent
    SET StudentName="李四"
    WHERE StudentName="李文才";
    
    • 1
    • 2
    • 3
  • 相关阅读:
    Gmail:如何快速将邮件全部已读
    IDA* AcWing 181. 回转游戏
    实现微信机器人开发,个微api
    Mybatis-动态 SQL详解
    HBuilder X 未检测到手机或模拟器(安卓端)
    Python Flask Web:博客登录和注册页面实现代码
    Pytorch Bert 中文分类 运行代码时候遇到的问题
    【仿真动画】ABB IRB 8700 机器人搬运(ruckig在线轨迹生成)动画欣赏
    Mysql通用日志(general)文件太大,如何定期清理与备份
    C++面向对象程序设计(第2版)第六章(多态性与虚函数)知识点总结
  • 原文地址:https://blog.csdn.net/qq_60286636/article/details/133362220