MySQL学习笔记(七)——数据处理之增删改

1. 插入数据

1.1 方式一

  • 为表的所有字段按默认顺序插入数据

    INSERT INTO 表名 VALUES (value1,value2,....);
    
  • 为表的指定字段插入数据(推荐)

    INSERT INTO 表名(column1 [, column2, …, columnn]) VALUES (value1 [,value2, …, valuen]);
    
  • 同时插入多条记录(推荐)

    INSERT INTO table_name(column1 [, column2, …, columnn])
    VALUES
    (value1 [,value2, …, valuen]),
    (value1 [,value2, …, valuen]),
    ……
    (value1 [,value2, …, valuen]);
    
  • 总结

    • 一个同时插入多行记录的INSERT语句等同于多个单行插入的INSERT语句,但是多行的INSERT语句在处理过程中 效率更高 。因为MySQL执行单条INSERT语句插入多行数据比使用多条INSERT语句快,所以在插入多条记录时最好选择使用单条INSERT语句的方式插入
    • 字符和日期型数据应包含在单引号中。

1.2 方式二

  • 将查询结果插入到表中

    INSERT INTO 目标表名
    (tar_column1 [, tar_column2, …, tar_columnn])
    SELECT
    (src_column1 [, src_column2, …, src_columnn])
    FROM 源表名
    [WHERE condition]
    
    • 在 INSERT 语句中加入子查询。
    • 不必书写 VALUES 子句。
    • 子查询中的值列表应与 INSERT 子句中的列名对应。
  • 说明:目标表中要添加数据的字段的长度不能低于源表中查询的字段的长度。如果目标表中要添加数据的字段的长度低于源表中查询的字段的长度的话,就有添加不成功的风险。

2. 更新数据

  • 语法

    UPDATE table_name
    SET column1=value1, column2=value2, … , column=valuen
    [WHERE condition]
    
  • 可以一次更新多条数据。

  • 如果需要回滚数据,需要保证在DML前,进行设置:SET AUTOCOMMIT = FALSE;

  • 更新数据时有可能更新不成功(可能是由于约束的影响造成的)

3. 删除数据

  • 语法

    DELETE FROM table_name [WHERE <condition>];
    
  • 删除数据时,也有可能因为约束的影响,导致删除失败

4. MySQL8新特性:计算列

  • 计算列

    • 简单来说就是某一列的值是通过别的列计算得来的。例如,a列值为1、b列值为2,c列不需要手动插入,定义a+b的结果为c的值,那么c就是计算列,是通过别的列计算得来的。
  • 在MySQL 8.0中,CREATE TABLE 和 ALTER TABLE 中都支持增加计算列。下面以CREATE TABLE为例进行讲解。

  • 举例

    USE atguigudb;
    
    CREATE TABLE test1(
    a INT,
    b INT,
    c INT GENERATED ALWAYS AS (a + b) VIRTUAL  #字段c即为计算列
    );
    
    INSERT INTO test1(a,b)
    VALUES(10,20);
    
    SELECT * FROM test1;
    
    # 结果
    
    +------+------+------+------+
    | id | a | b | c |
    +------+------+------+------+
    | NULL | 100 | 200 | 300 |
    +------+------+------+------+
    

参考

https://www.bilibili.com/video/BV1iq4y1u7vj/?spm_id_from=333.337.search-card.all.click&vd_source=25b05e9bd8b4bdac16ca2f47bbeb7990

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值