大家新年好!
介绍完表的创建以后,这一节要介绍的是使用 insert 来向表中插入数据。

向表中插入数据有两种方法,一种是指定字段的,一种是不指定字段的。

  • 使用指定字段插入数据,只需要填写对应字段的数据即可。
  • 不指定字段,则需要写入所有字段对应的数据。

1、指定字段插入数据
先查看下上节中创建好的数据表,使用命令 DESC;

DESC book;

得到如下结果:

mysql 插入数据到指定位置 mysql怎么插数据_mysql 插入数据sql


接下来使用 insert 的操作:

insert into book (id, book_name, author) values(1, 'mysql', 'mysql_author');

通过 values 以及values 括号里的数据,分别对应 前面的 id, book_name, author。
当命令行返回结果 querys OK 之类的话,就说明数据插入成功了,如果要查看插入的结果,可以使用前面的select 语句。

select * from book;

关于 id 的自增性质:
前面在创建这张表的时候我们,给 id 这个字段设置的是主键,具有自增性质,这就给了我们在插入数据的时候一个便利的地方:如果我们不知道,也不需要知道当前最后一条数据的 id 的值是多少, 就可以向其中插入数据。

insert into book (book_name, author) values('mysql', 'mysql_author');

插入的时候不指定 id 的数值,就会自动在最大的 id 值上加 1。

关于插入多条数据:
还是这张表,一条一条地插入数据觉得太慢了,我们想一次性插入多条数据,还是以这张表为例,使用的格式如下:

insert into book (book_name, author) values('mysql', 'mysql_author'), ('python', 'python_author');

与前面使用的步骤无异,只是添加的这条数据,跟在末尾,前面加个 逗号 分隔开。

关于不完全插入数据:
前面在 id 自增性质那块,我们可以看到,插入数据的时候, id 这个字段在插入数据的时候没有指定数值,那么其它字段是不是也可以这样呢?

答案是肯定的。
如果某一些字段,我们在插入数据的时候不想要写入数据,可以在 insert 的时候,不指定数值,就像 id 的操作一样, 那么数据表就会自动给这个字段赋值一个 null。

insert into book (book_name) values('mysql');

写入上条命令以后,再去查看结果,可以看到,这条数据 author 这个字段是 null 值,而 id 因为是自增的,所以,有个相应的数值。

2、不指定字段插入数据
如果我们在插入数据的时候不指定字段,也就是说,前面 id, book_name, author 这几个字段都不列出来,那么在插入的时候则需要我们填入所有的数据,示例如下:

insert into book values(100, 'mysql', 'mysql_author');

不指定字段同样满足多条数据同时插入。

insert into book values(100, 'mysql', 'mysql_author'), (101, 'python', 'python_author');

关于 insert 其实还有个用法,就是通过和 select 组合使用从其他表中选择数据插入此表,这个笔记以后再添上,mark 下。