插入数据
方式一:VALUES的方式添加
使用这种语法一次只能向表中插入一条数据
//情况一:为表的所有字段按默认顺序插入数据INSERT INTO 表名VALUES (value1, value2, ...);//情况二:为表的指定字段插入数据//只向部分字段插入值,其他字段的值为表定义时的默认值INSERT INTO 表名(column1 [, column2, ..., columnn])VALUES (value1 [, value2, ..., valuen]);//情况三:同时插入多条记录INSERT INTO 表名VALUES(value1, [, value2, ..., valuen]),(value1, [, value2, ..., valuen]),...(value1, [, value2, ..., valuen]);或者INSERT INTO 表名(column1 [, column2, ..., columnn])VALUES(value1, [, value2, ..., valuen]),(value1, [, value2, ..., valuen]),...(value1, [, value2, ..., valuen]);
说明:
- VALUES也可以写成VALUE,但是VALUES是标准写法
-
方式二:将查询结果插入到表中
使用这种语法一次能向表中插入多条数据
INSERT INTO 目标表名 (tar_column1 [, tar_column2, ..., tar_columnn]) SELECT (src_column1 [, src_column2, ..., src_columnn]) FROM 源表名 [WHERE condition];说明:
在INSERT语句中加入子查询
- 不必书写VALUES子句
-
更新数据
UPDATE 表名 SET column1=value1, column2=value2, ..., columnn=valuen [WHERE condition];说明:
如果省略WHERE子句,则表中的所有数据都将被更新
如果需要回滚数据,需要保证在DML前,进行设置:
SET AUTOCOMMIT=FALSE;删除数据
DELETE FROM 表名 [WHERE condition];说明:
如果省略WHERE子句,则表中的全部数据将被删除
如果需要回滚数据,需要保证在DML前,进行设置:
SET AUTOCOMMIT=FALSE;MySQL8新特性:计算列
计算列,简单来说就是某一列的值是通过别的列计算得来的
在MySQL8.0中,CREATE TABLE 和 ALTER TABLE中都支持增加计算列CREATE TABLE tb ( id INT, a INT, b INT, c INT GENERATED ALWAYS AS (a + b) VIRTUAL ); INSERT INTO tb(a, b) VALUES(100, 200);
