为数据表的指定字段插入数据,就是在INSERT语句中只向部分字段中插入值,而其它字段的值为数据表定义时的默认值。基本的语法格式如下:
INSERT INTO 表名(字段1,字段2,...,字段m) VALUES(值1,值2,...,值m);
- 字段1,字段2,...,字段m:表示数据表中的字段名称,此处指定数据表的部分字段的名称。
- 值1,值2,...,值m:表示指定字段的值,每个值与相应的字段对应。
实例1
1. 向student表的xuesheng字段和yuwen字段插入数据。INSERT语句的代码如下:
mysql>INSERT INTO student(xuesheng,yuwen) VALUES('王媛媛',88);
插入数据的操作效果如下图所示:
上图中代码执行的结果显示,记录插入成功。
2. 执行SELECT语句查询student表。如下图所示:
3. 上图中代码执行的结果显示,记录已经插入成功。但是,shuxue字段和yungyu字段都为空值(NULL)。执行SHOW CREATE TABLE语句查看student表的详细结构。如下图所示:
从上图中代码执行的查询结果可以看出,shuxue字段和yingyu字段的默认值为空值(NULL),因为这两个字段没有插入值,数据库系统自动为其插入了该字段定义时的默认值,所以这两个字段的值才为空值。如果默认值设置为了某一个具体的值,那么这两个字段的值就会显示为那一个具体的值。
另外,我们虽然没有插入id字段的值,但是该字段自动添加了一个整数值6。这是因为id字段设置为了表的主键,虽然不能为空,但是数据库系统会自动为该字段插入一个自增的序列值。
提示
没有赋值的字段,数据库系统会为其插入一个默认值。这个默认值是在创建数据表的时候定义的。如上面的shuxue字段和yingyu字段的默认值为NULL。如果某个字段没有设置默认值,而且是非空,那就必须为其赋值。不然,数据库系统会提示一条警告信息。
实例2
这种方式同样可以随意设置字段的顺序,而不需要按照数据表定义时的顺序进行插入数据。
1. 向student表中的id、xuesheng和yingyu字段插入数据。INSERT语句中,这3个字段的顺序可以任意排列,代码如下:
mysql>INSERT INTO student(yingyu,id,xuesheng) VALUES(99,4,'杨萍');
操作效果如下图所示:
上图中代码执行的结果显示,记录插入成功。
2. 执行SELECT语句查询student表。如下图所示:
上图中代码执行的结果显示,记录已经成功插入。
提示
要保证每个插入值的数据类型和对应字段的数据类型相匹配。如果数据类型不同,将无法插入,并且MySQL会产生错误。