前言
前面我们学习了MySQL——DDL操作,对数据库和表的结构的操作,那么今天我将为大家分享MySQL——DML操作,对表数据的操作。
MySQL DML操作有以下几种:
插入操作(INSERT):用于向数据库中插入新的数据行。可以一次插入单行数据,也可以使用一条SQL语句一次性插入多行数据。
更新操作(UPDATE):用于修改数据库中已有的数据行。可以根据指定的条件更新满足条件的数据行。
删除操作(DELETE):用于从数据库中删除数据行。可以根据指定的条件删除满足条件的数据行。
插入数据
MySQL中,向1表中插入数据的方式有两种:insert into 表名 values (值1,值2,值3);
和 insert into 表名 (列名1,列名2) values (值1,值2);
全列插入
第一种插入方式是插入所有列的数据 insert into 表名 values (值1,值2,值3);
,并且列的数据需要跟列的位置相对应。
create table student( id int, name varchar(20), chinese decimal(3,1), math decimal(3,1), english decimal(3,1)); insert into student values(01,'张三',85,95.5,90);
如果需要添加的数据很多,我们是不是也只能一个一个的添加呢?当然不是,我们可以一次添加多个数据。每一组数据之间使用逗号 , 分隔。
insert into student values(02,'李四',87,97.5,87.5), (03,'王五',88,90,96);
指定列插入
有些时候,插入数据的时候,不需要插入所有列的数据,而是可以指定列来插入 insert into 表名 (列名1,列名2) values (值1,值2);
insert into student(name,math) values('李华',98);
没有被插入数据的列会是默认值。
指定列插入同样可以一次插入多组数据。
insert into student(name,chinese) values('小美',96), ('小帅',92);
修改数据
当我们添加完数据之后,我们可以对已添加的数据进行修改。修改全部列的数据: update 表名 set 列名 值;
,修改指定行的数据:update 表名 set 列名 值 where 条件;
将所有人的语文成绩加上3分。
update student set chinese = chinese + 3;
将张三的语文成绩减去2分。
update student set english = english - 2 where name = '张三';
删除数据
MySQL 删除数据删除的是一行的数据。在MySQL中删除数据主要有两种方式:
delete from 表名 [where 条件]; 和 truncate table 表名 / truncate 表名;
delete from 表名 [where 条件];
删除数据通常搭配着后面的 where
条件语句,如果没有后面的 where
条件语句,将会删除整个表。
delete from student;
delete from 表名 where 条件;
删除符合条件的行数据。
delete from student where name = '小美';
truncate table 表名; / truncate 表名; 删除表中的所有数据,它跟 delete 删除数据是有点区别的,当 delete 删除表中的所有数据时,只是删除了表中的所有数据,而 truncate 删除数据类似于 drop table 表名 ,它会先将表给删除,然后再创建一个没有数据的空表。
truncate table student; truncate student;