图片

插入数据



准备工作

图片




方式一:一条一条的添加数据


第1种方式: 没有指明添加的字段,语法格式如下:



insert into 表名 values(列值1,列值2,列值3);


栗子:添加语句

图片




查询表已经存在数据

图片




如果不按照表中列名的顺序添加,就会报错。

图片




注意:一定要按照声明的字段先后顺序做添加。


第2种方式:指明要添加的字段,格式如下:(推荐)



insert into 表名(列名1,列名2,列名3) values(列值1,列值2,列值3);


栗子:根据语句中列的顺序进行添加

图片




查询添加成功

图片




可以不必写所有的值,这里我们把时间给去掉(没有设置为非空)

图片



图片




添加多条记录,通过逗号隔开

图片



图片




方式三:将查询结果插入到表中


先写查询语句, 查询语句的字段跟INSERT 指定的字段要一一对应

图片




选中,做执行

图片




查询,已经发现数据被添加进去

图片




说明:emp1表中要添加数据的字段的长度不能低于employees表中查询的字段的长度。如果低于就有添加不成功的风险。



更新数据



语法格式:



update 表名 set 字段名1=字段值1,字段名2=字段值2 where 条件;


说明:


如果没有where,就修改全部表中的数据。可以通过where中的条件,指明where条件,对满足条件的数据进行修改。


栗子:


更新员工为3的时间为当前时间

图片



图片




同时修改一条数据的多个字段

图片



图片




将表中姓名中包含字符A的提薪20%

图片




修改数据时,是可能存在不成功的情况的。可能是由于约束的影响造成的

图片




删除数据



语法格式:



delete from 表名 where 条件;


栗子:


删除id=1

图片



图片




由于约束,也有可能会删除不成功

图片




小结



DML操作默认情况下,执行完以后都会自动提交数据。如果希望执行完成以后不自动提交数据,则需要使用SET autocommit= FALSE。设置完可通过commit手动提交和rollback 回滚数据。



MySQL8新特性



MySQL8新特性:计算列


某一列的值是通过别的列计算得来的。


栗子1:


a列值为1,b列值为2,c列不需要手动插入,定义a+b的结果为c的值,那么c就是计算列,是通过别的列计算得来的。


栗子2:


创建表时,声明c字段作为a字段和b字段和的计算列

图片




添加数据,只给a和b 字段添加

图片




计算列中自动有了数据做了a+b

图片




修改a的数据,计算列的值也会变。

图片



图片