当前位置: 首页 > news >正文

SQL - 增、改、删

  • 插入 (insert into)
    • 插入单行
      • insert into 表名 values ( 对应列的值,用','号间隔) //一般主键值用default,不可填null的不要填null
      • insert into 表名 (需要提供值的列名) values (与之对应的提供的值) //其他的值只需mysql默认提供
      • insert into 表名 子查询
        • 复制部分表信息,将部分表信息复制到另一个表中,这里就用选择语句当做子查询,将结果集复制到另一个表中
    • 插入多行
      • insert into shippers (name) values ('a1'),('a2'),('a3') //用','号间隔就能实现多行插入
    • 插入分层行
      • 如何往多表插入数据
      • 对一个表进行插入数据,通过MySQL内置功能 last_insert_id() 提供这个新生成的值,可以将相关的表中添加数据。
      • -- 多表插入数据
        insert into orders (customer_id,order_date)
        values ('1','2010-01-02');
        insert into order_items (order_id,product_id,quantity,unit_price)
        values (last_insert_id(),'1',2,2.2)

      • 创建表复制
        • create table order_archived as select * from orders //但是这样复制的表,MySQL会忽略一些属性如主键,自增等
        • -- 创建表复制
          create table order_archived as	
          select * from orders

      • 复制部分表信息
        • 将部分表信息复制到另一个表中,这里就用选择语句当做子查询,将结果集复制到另一个表中
        • -- 创建表复制部分表信息
          create table `invoices archive` as
          select invoice_id,number,c.name as client_id,invoice_total,payment_total
          invoice_date,due_date,payment_date
          from invoices i
          join clients c on i.client_id=c.client_id
          where payment_date is not null;
          -- 复制部分表信息
          insert into order_archived
          select * 
          from orders
          where order_date<'2019-01-01';

  • 更新(update)
    • 更新单行
      • update 表名 set 更改信息 where (确定哪行)
    • 更新多行
      • update 表名 set 更改信息 where (这个条件要更为通用,也就是可以指向多条记录)
    • 使用子查询
      • where client_id in (子查询返回结果集,可以是一个值,可以是一个字段的多个值,可以是多行记录)
      • -- 用子查询作为条件筛选
        update invoices
        set payment_total=invoice_total*0.5,
        payment_date='1111-01-01'
        where client_id in (
        select client_id 
        from clients
        where state in ('NY','CA'))

  • 删除(delete)
    • 删除行
      • delete from 表名 where (作为筛选条件,不加就删除表中所有记录)
      • 删除名字为'Myworks'的顾客的订单
        delete 
        from invoices
        where client_id in (
        select client_id 
        from clients
        where name='Myworks')

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Vue UI 组件库
  • Cordova打包apk
  • 虚拟网络设备和端口概念:Bridge(桥)和Tap
  • Windows系统命令
  • 【Rust光年纪】超越并发:Rust数据流处理库全面解读
  • Unity动画模块 之 3D模型导入基础设置Animation页签
  • Java填充PDF并返回填充后PDF文件及对应base64码
  • Leetcode JAVA刷刷站(38)外观数列
  • 大白话解释TCP的三次握手和四次挥手
  • 视频号AI美女跳舞,轻松月入30000+,蓝海赛道,流量池巨大,起号猛
  • 【编程知识】如何有趣的理解变量的数据类型和数值
  • 东南大学:Wi-Fi 6搭档全光以太,打造“数智东南”信息高速路
  • 【ARM 芯片 安全与攻击 5.2.1 -- 侧信道与隐蔽信道的区别】
  • 代码随想录算法训练营第二十天(二叉树 七)
  • C语言之“ 数组 ”
  • 自己简单写的 事件订阅机制
  • [译] 怎样写一个基础的编译器
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Gradle 5.0 正式版发布
  • JavaScript新鲜事·第5期
  • mysql 数据库四种事务隔离级别
  • SSH 免密登录
  • 闭包--闭包之tab栏切换(四)
  • 对象管理器(defineProperty)学习笔记
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端面试总结(at, md)
  • hi-nginx-1.3.4编译安装
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​Spring Boot 分片上传文件
  • # 达梦数据库知识点
  • #define与typedef区别
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #图像处理
  • $.ajax()
  • $L^p$ 调和函数恒为零
  • (21)起落架/可伸缩相机支架
  • (8)STL算法之替换
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (PADS学习)第二章:原理图绘制 第一部分
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)插入排序
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)c++ std::pair 与 std::make
  • (转)iOS字体
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET Framework与.NET Framework SDK有什么不同?