我们都知道数据库里面存放了一些我们需要的数据,那么数据是怎么保存进数据库的呢?通过 INSERT 语句,我们可以将数据添加到数据库里面。INSERT 插入数据库有三种方式,插入完整的行,插入行的一部分和插入某些行的查询结果。
本章节以 student 表为例子:
CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `stu_no` int(11) DEFAULT NULL, `stu_name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, `class_id` int(11) DEFAULT NULL COMMENT '班级ID', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4;
插入完整行详解
语法
INSERT INTO 表名 values (value1,value1,value1,value1);
描述
INSERT INTO 是关键字,它后面是要被插入的数据的表名,values 后面是对应的表里面的列的数据信息。它的顺序和建表语句里面列的顺序是一样的。
这样的语法不是安全的,如果表结构发生变化,它不能够保证变动后的列的顺序和之前完全相同。
案例
INSERT INTO student VALUES (1,100,"INSERT",20,1);
运行结果如下
我们添加完数据之后执行了 select 语句,查看表里面确实增加了一条数据。
插入部分行详解
语法
INSERT INTO 表名 (列1,列2,...) values (value1,value2,...);
描述
和插入完整的行一样,它也是以 INSERT INTO 关键字开始,后面跟表名,只不过表名后面会跟着列名,values 后面跟着的是列的对应的 value 值。它和列是一一对应的。
案例
INSERT INTO student (id,stu_no,stu_name,age) VALUES (2,101,"INSERT1",20);
运行结果如下
部分插入它将被插入的列名和值对应起来,如果将全部的列都列举出来,那么效果和完整行插入效果一样。因为这边的列和值是一一对应的,所以列值对的插入操作是比较安全可控的,建议执行插入数据的时候按照这种方式插入。
插入查询结果
语法