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


    数据的删除、插入和复制

    数据的删除

    使用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;
    
  • 相关阅读:
    MongoDB 创建账户
    MongoDB高可用集群配置方案
    学习CEGUI亟待解决问题一:文本控件的格式问题
    第一讲
    ERP初阶(三):MRP基本原理
    ERP初阶(四):MRP基本构成
    学习CEGUI亟待解决问题二:消息事件传递机制问题
    Groovy处理null对象为空字符串
    silverlight与CSLA的快速应用05安装CslaExtension
    silverlight与CSLA的快速应用08客户端的CSLA代码
  • 原文地址:https://www.cnblogs.com/freesfu/p/11524332.html
Copyright © 2020-2023  润新知