MySQL笔记(三):操作表中的数据记录

一、新增数据

二、查询数据

三、修改数据

三、删除数据

在上一篇文章(MySQL笔记(二):操作表)中,忘了补充一下auto_increment(MySQL数据库特有)的知识了。
现在补充一下:auto_increment代表的是自动递增,使用这个关键字,要求被该关键字修饰的字段拥有索引。默认每次递增1,既是插入一条记录前,关键字修饰的自段值自动增加1,然后使用自增后的值作为当前记录的该字段值。

一、新增数据

insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……);
MySQL笔记(三):操作表中的数据记录
如果插入的记录是所有值都有,则可以省略列名不写,但是字段与值必须对应
MySQL笔记(三):操作表中的数据记录
这里给id设置值为2和4是有别有用意的,不过现在不用在意

二、查询数据

select [distinct] *| 列名,列名 from 表名 [where条件]
MySQL笔记(三):操作表中的数据记录
由于没有使用where条件语句设置条件所以,把刚才插入的两条记录都查询出来了,下面来看一看使用了where条件语句的效果
MySQL笔记(三):操作表中的数据记录

三、修改数据

update 表名 set 字段名=值, 字段名=值, 字段名=值…… [where条件]
MySQL笔记(三):操作表中的数据记录
可以看到,由于没有指定修改条件,表中的数据都被修改了,通常开发中不会这样做,因为不指定条件的修改带来的后果可能是灾难性的;使用where关键字可以指定修改条件,从而只会修改满足条件的记录多个条件之间使用and连接
MySQL笔记(三):操作表中的数据记录

三、删除数据

delete from 表名 [where 条件]
由于不带where条件的删除会将表中的数据都删掉,所以先演示带条件的删除
MySQL笔记(三):操作表中的数据记录
在这里先插入一条记录,但是并没有指定id,注意看查询结果和之前的图进行比较
MySQL笔记(三):操作表中的数据记录

不带条件的删除语句会将表清空,但是不会重置auto_increment的值

这常常和另一个关键字truncate联合起来在面试题中出现。

因为truncate也有清空表中数据的效果,但是truncate的机制是先删除数据表,然后重新新建一个一模一样的表。所以auto_increment的值会被重置为1(如果在创建表时有指定auto_increment的初始值的话,就会是指定的初始值),不过一般不会对默认的auto_increment值进行修改,因为没有多大的意义