插入数据

  1. INSERT INTO 表名 (列名1, 列名3, 列名2) VALUES (值1, 3, 2);
  1. INSERT INTO 表名 (列名1, 列名2, 列名3) VALUES (值1, 2, 3),(值1, 2, 3);

插入的值必须与列名一一对应

  1. INSERT INTO 表名 VALUES (值1, 2, 3, 4);

简写时插入的值必须与列名一一对应

修改数据

使用 UPDATE 语句要注意带上 WHERE子句,否则所有记录都被更新。正确做法:更新数据时,做个备份表或临时表

  1. UPDATE 表名 SET 列名 = [WHERE子句];
  1. UPDATE 表名 SET 列名1 = 1, 列名2 = 2 WHERE 子句;

删除数据

DELETE FROM

  1. DELETE FROM 表名 [WHERE子句];

DELETE FROM 表名 清空数据时,新增的数据的自增计数不会受到影响,会继续延续计数。 DELETE FROM 要带上 WHERE子句,否则删除所有记录

TRUNCATE TABLE

  1. TRUNCATE TABLE 表名;

清空数据时,自增计数也会重置。TRUNCATE TABLE 是不能带上 WHERE子句

级联操作

级联删除

先删除从表,再删除主表比较麻烦,可采用级联方式删除

  1. DROP TABLE 从表, 主表;
  1. CREATE TABLE 从表名
  2. (
  3. 外键列 ON DELETE CASCADE
  4. )

级联更新

  1. CREATE TABLE 从表名
  2. (
  3. 外键列 ON UPDATE CASCADE
  4. )

补充操作

SELECT INTO

是从一个表中复制数据,然后将数据插入到另一个数据表中。适合表间计算

  1. SELECT *|列名 INTO #表名 FROM 表名;

有时候为了作为临时表,可以将新表名写成 #表名,这里表名与后面表名一致,只是用 #区别

  1. SELECT *|列名 INTO #表名 FROM 表名 WHERE 1=0;

复制表结构没有数据

INSERT INTO SELECT

从表中复制数据,并将数据插入现有的表中,目标表中的任何现有行都不会受影响

  1. INSERT INTO 表名2 列名 SELECT * FROM 表名1;
  • 两张表的结构的列数和对应的字段类型要一致