大家新年好!
介绍完表的创建以后,这一节要介绍的是使用 insert 来向表中插入数据。
向表中插入数据有两种方法,一种是指定字段的,一种是不指定字段的。
- 使用指定字段插入数据,只需要填写对应字段的数据即可。
- 不指定字段,则需要写入所有字段对应的数据。
1、指定字段插入数据
先查看下上节中创建好的数据表,使用命令 DESC;
DESC book;
得到如下结果:
接下来使用 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 下。