版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

插入数据

代码块
INSERT INTO 表名(列1, 列2, ...列n) VALUES(列1的值, 列2的值, ...列n的值);
提示

如果是插入完整的一行,则可以省略表名后面的列。

列的顺序可以任意指定,而不用按照表定义的顺序来。

如果只插入一行的一部分,那未被插入的列会以NULL值填充。

支持指插入记录,只要在VALUES后面提供多个值即可。

支持将子查询的结果作为值进行插入,比如:

代码块
INSERT INTO second_table(s, i) SELECT second_column, first_column FROM first_table WHERE first_column < 5;
提示

对于主键和UNIQUE约束的列,可以使用INSERT IGNORE来避免插入重复值会报错的情况,如下:

代码块
INSERT IGNORE INTO first_table VALUES(1, '哇哈哈');
提示

对于主键和UNIQUE约束的列,还可以使用INSERT ... ON DUPLICATE KEY UPDATE来更新表中已存在的记录,如下:

代码块
INSERT INTO first_table(first_column, second_column) VALUES(1, '哇哈哈') ON DUPLICATE KEY UPDATE first_column = 10, second_column = '雪碧';

删除数据

代码块
DELETE FROM 表名 [WHERE 表达式];

示例:

代码块
DELETE FROM first_table WHERE first_column > 4;
提示

如果不加WHERE子句,则会清除整个表的行。

可以通过ORDER BY和LIMIT子句来指定删除前几行的数据,比如:

代码块
DELETE FROM first_table ORDER BY first_column DESC LIMIT 1;

更新数据

代码块
UPDATE 表名 SET 列1=值1, 列2=值2, ..., 列n=值n [WHERE 表达式];
提示

如果不加WHERE子句,则会更新整个表的数据。

可以通过ORDERBY和LIMIT子句来限制要更新的行数和顺序,比如:

代码块
UPDATE first_table SET second_column='爽歪歪' ORDER BY first_column DESC LIMIT 1;











目录