当前位置: 首页 > 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')

http://www.lryc.cn/news/427855.html

相关文章:

  • 怎么屏蔽电脑监控软件?企业管理者的智慧选择——精准定位,合理屏蔽,让监控软件成为助力而非障碍!
  • Linux·权限与工具-make
  • C++的序列容器——数组
  • TCC 和 XA 协议之间的区别?
  • 萌啦数据插件使用情况分析,萌啦数据插件下载
  • C++初学(13)
  • 目标检测之数据增强
  • 本地下载安装WampServer结合内网穿透配置公网地址远程访问详细教程
  • 一篇文章理清Java持久化脉络(关于JDBC、JPA、Hibernate、Spring Data JPA)
  • 【数学分析笔记】第2章第1节实数系的连续性(1)
  • Speech Synthesis (LASC11062)
  • 拟合与插值|线性最小二乘拟合|非线性最小二乘拟合|一维插值|二维插值
  • 《python语言程序设计》2018版第7章第05题几何:正n边形,一个正n边形的边都有同样的长度。角度同样 设计RegularPolygon类
  • 使用Virtio Driver实现一个计算阶乘的小程序——QEMU平台
  • 【PyCharm】配置“清华镜像”地址
  • IO器件性能评估
  • 在js中判断对象是空对象的几种方法
  • 【整理】后端接口设计和优化相关思路汇总
  • docker 部署 sql server
  • 微信云开发云存储 下载全部文件
  • 1、巡线功能实现(7路数字循迹)
  • 来了...腾讯内推的软件测试面试PDF 文档(共107页)
  • Android大脑--systemserver进程
  • python项目部署:Nginx和UWSGI认识
  • 【区块链+金融服务】农业大宗供应链线上融资平台 | FISCO BCOS应用案例
  • 2025ICASSP Author Guidelines
  • Openstack 所需要的共享服务组件及核心组件
  • 解密Linux中的通用块层:加速存储系统,提升系统性能
  • 浅析国有商业银行人力资源数字化平台建设
  • 微信h5跳转消息页关注公众号,关注按钮闪一下消失