数据插入

基本 INSERT 语法

-- 指定表名和值
INSERT INTO Customers
VALUES(1000000006,
      'Toy Land',
      '123 Any Street',
      NULL);
  • 必须给每一列提供一个值(可以是 NULL)
  • 必须按列的次序填充
  • 不安全,列次序变动后会出问题

给出列名的 INSERT 语法

按指定的次序匹配列名和值,更安全

INSERT INTO Customers(cust_id,
                     cust_name,
                     cust_address,
                     cust_city)
VALUES(1000000006,
      'Toy Land',
      '123 Any Street',
      NULL);

这种语法还可以省略列,省略的列必须允许 NULL 值或有默认值。

插入检索出的数据

INSERT INTO Customers(cust_id,
                     cust_name,
                     cust_address,
                     cust_city)
SELECT cust_id,
        cust_name,
        cust_address,
        cust_city
FROM CustNew;

更新行与列 UPDATE-SET

-- 给出表名、列名和值
UPDATE Customers
SET cust_contact = 'Sam Roberts',
    cust_email = 'sam@toyland.com'
WHERE cust_id = 100000006;
  • 如果省略 WHERE 子句,就会更新所有行
  • 可以使用子查询,用检索出的数据更新

删除行 DELETE-FROM

DELETE FROM Customers
WHERE cust_id = 100000006;
  • 如果省略 WHERE 子句,就会删除所有行
  • 要删除所有行,使用 TRUNCATE TABLE 语句更快

注意,使用更新和删除时要谨慎,可以先用 SELECT 测试