1.插入数据
1.为表的所有字段按默认顺序插入数据INSERT INTO 表名 VALUES (value1, value2,...)
2.为表的指定字段插入数据INSERT INTO 表名(column1[,column2,...,columnn]) VALUES (value1[,value2,...,value3])
3.同时插入多条数据INSERT INTO table_name VALUES (value1[,value2,...,valuen])(value1[,value2,...,valuen])...(value1[,value2,...,valuen])
或者INSERT INTO table_name(column1[,column2,...,columnn]) VALUES (value1[,value2,...,valuen])(value1[,value2,...,valuen])...(value1[,value2,...,valuen])
4.将查询的结果插入到表中
INSERT INTO 目标表名(tar_column1[, tar_column2, ..., tar_columnn])SELECT(src_column1[, src_column2, ..., src_columnn])FROM 源表名[WHERE condition]
使用INSERT同时插入多条记录时,MySQL会返回一些在执行单行插入时没有的额外信息,这些信息的含义如下:
● Records:表明插入的记录条数。
● Duplicates:表明插入时被忽略的记录,原因可能是这些记录包含了重复的主键值。
● Warnings:表明有问题的数据值,例如发生数据类型转换。
2.更新数据
UPDATE table_name SET column1=value1, column2=value2,...,column=valuen [WHERE condition]
- 可以一次更新多条数据。
- 如果需要回滚数据,需要保证在DML前,进行设置:SET AUTOCOMMIT = FALSE;
- 使用 WHERE 子句指定需要更新的数据。
- 如果省略 WHERE 子句,则表中的所有数据都将被更新。
3.删除数据
DELETE FROM table_name [WHERE <condition>]
- 使用 WHERE 子句删除指定的记录。
- 如果省略 WHERE 子句,则表中的全部数据将被删除
MYSQL8新特性:计算列
CREATE TABLE tb1(
id INT,
a INT,
b INT,
c INT GENERATED ALWAYS AS (a + b) VIRTUAL
);
