但行好事
莫论前程❤

MySQL数据库系列(12)—–insert语句总结

​ 这篇文章总结了MySQL中的insert语句,delete、update、select等DML语句将会在其他文章中单独总结.

insert 常用语句

​ mysql中insert语句的语法如下:

​ insert into tablename(字段1名称,字段2名称,…) values(字段1值,字段2值,…)

示例如下:

​ 向表tb1中插入一条数据,插入数据对应的字段为name和age,name的值为tom,age为33.

insert into tb1(name,age) values('tom',33);

​ 向表 tb1中插入多条数据,具体含义同上,只不过是插入多条语句.

insert into tb1(name,age) values('jerry',22),('naruto',28);

也可以不指定字段,表示对应每个字段都会有插入的数据.

insert into tb1 values(4,'Sasuke',28),(5,'hinata',25);

其实,除了 使用上述的语法插入数据,我们还能够使用如下语法:

insert into tablename set 字段 1名称=字段 1值,字段2名称 =字段2值

示例如下:

insert into tbl2 set id=2,name='test',age=18,gender='M';

上述两种语法的不同之处在于,字段名称与字段值是否分开了,使用set的方式字段名与 字段值是在一起的.

除了这一点不同之处,其实,他们还有另外一点不同 ,就是使用set的方式插入数据时,insert语句中字段的顺序可以与 表中字段的顺序不同,而第一种语法中,字段顺序必须与表中字段的顺序相同.

还需要注意的是,mysql默认的sqlmode为宽松模式,这意味着即使插入的数据并不是完全符合数据类型的要求,也有可能插入数据.例如:

$ select * from tb;
+-------+--------+--------+
|  id   |  name  |   age  |
+-------+--------+--------+
|   1   | jerry  |   28   |
+-------+--------+--------+
$ desc tb;
+-------+-----------+--------+------+---------+---------------+
| Feild |  Type     |  Null  |  Key | Default |  Extra        |
+-------+-----------+--------+------+---------+---------------+
|  id   |  int      |   NO   |  PRI |   NULL  | auto_increment|
+-------+-----------+--------+------+---------+---------------+
|  name |varchar(50)|   NO   |      |   NULL  |               |
+-------+-----------+--------+------+---------+---------------+
|  age  | tinyint(4)|   NO   |      |   NULL  |               |
+-------+-----------+--------+------+---------+---------------+
$ insert into tb1(age) values(18);
$select * from tb1;
+-------+--------+--------+
|  id   |  name  |   age  |
+-------+--------+--------+
|   1   | jerry  |   28   |
+-------+--------+--------+
|   2   | john   |   18   |
+-------+--------+--------+
|   3   |  Tom   |   12   |
+-------+--------+--------+
|   4   |        |   22   |
+-------+--------+--------+

tb1表中的name字段是不允许为空的,并且name字段 没有对应的默认值,但是我们如果不对name字段设置对应的值,数据也能插入,mysql自动将其值设置为了空字符串,如果按照严格的标准,这样应该不允许插入数据.上述两种情况都属于对数据的校验不严格造成的.

赞(1) 打赏
未经允许不得转载:刘鹏博客 » MySQL数据库系列(12)—–insert语句总结
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏