• # 数据的删除、插入和复制


    数据的删除、插入和复制

    数据的删除

    使用DELETE语句删除数据。与DROP不同的是DELETE是以行(记录)为单位删除,并不会删除数据表,最多也只能做到清空整张数据表。

    语法格式像是这样DELETE FROM 表名 WHERE 条件。当然,筛选条件不是必须的,当他存在时,我们称这条删除语句为搜索型DELETE。当我们不指定搜索条件而只指明那张表的时候,DELETE会做的时清空整张表的数据。

    不少数据库管理系统还存在一种被称为TRUNCATE的舍弃语句,它可以清空整张数据表,并且比DELETE更快。

    数据的插入

    使用INSERT INTO ... VALUES ...语句插入数据,他的语法格式像是这样子的INSERT INTO 表名 列名 VALUES 数据。对于列名和数据的提供,INSERT语句使用一种叫清单的格式。

    INSERT INTO ProductIns ``(product_id, product_name, product_type, purchase_price, regist_date)
    VALUES ('007', '擦菜板', '厨房用具', 790, '20009-04-28');
    

    可以注意到数据和列名是存在一一对应的关系的。但是有时候会没有提供完整的数据清单。这时候对于确实的项目会使用NULL作为默认值。

    同时,当一些数据具有默认值约束的时候,我们插入数据的时候,没有提供他的值的话,那么就会使用定义数据列时使用的默认值来作为值。

    CREATE TABLE ProductIns
    (
        product_id CHAR(4) NOT NULL,
        sale_price INTEGER DEFAULT 0, --设置销售的单价的默认值
        PRIMARY KEY (product_id)
    );
    

    同时需要知道的是,一般来说一条INSERT语句就插入一条数据,虽然也可以实现一条INSERT语句插入多条数据,但是大多数情况下,这样做不太好。

    数据的复制

    有时候我们会想要将一些数据复制到另外的一张数据表。这时候我们可以使用INSERT INTO ... SELECT ...语句。

    从这个语法我们可以很明显的指导将会发生什么,选取一些数据,并将他们插入到某个地方。例如:

    INSERT INTO ProductCopy (product_id, product_name, product_type, sale_price, purchase_price, regist_date)
    SELECT product_id, product_name, product_type, sale_price, purchase_price, regist_date
    FROM Product;
    

    我们很容易就发现了这个和基本的INSERT语句并无多大的差别,只不过是使用了SELECT子句的返回值作为数据的来源同时省略了VALUES关键字。这里SELECT语句的使用并无其他的限制,像是GROUP BYWHERE等关键字依然能够使用。

    只不过是ORDER BY语句在这里可以使用,但是是没有什么意义的。因为你并不能够保证正如数据的顺序。

    同时,因为上面的是复制整个数据表,所以实际上可以简写:

    INSERT INTO ProductCopy SELECT * FROM Product;
    
  • 相关阅读:
    AJAX初识
    PE文件---导入表,导出表
    PE文件学习(基础)
    Android so(ELF)文件解析
    安卓加固方案从落地加载到类指令抽取编写报告
    安卓逆向从0到1学习总结
    DEX文件解析--7、类及其类数据解析(完结篇)
    网络设备配置--10、利用ACL配置访问控制
    网络设备配置--9、利用ppp协议实现点对点认证
    网络设备配置--8、利用ospf配置动态路由
  • 原文地址:https://www.cnblogs.com/freesfu/p/11524332.html
Copyright © 2020-2023  润新知