当前位置:网站首页>面试官:连 INSERT INTO SET 都不知道怎么用,你这3年都干些什么了?
面试官:连 INSERT INTO SET 都不知道怎么用,你这3年都干些什么了?
2022-08-04 12:23:00 【爱开发V】
张工是一名程序员,工作两年了,一直在做java开发,在这两年里,张工做过不少项目,像进销存管理系统、OA系统。
最近到一家互联网公司面试,做完了笔试题,面试官看了觉得还不错,于是就问他MYSQL 中 INSERT INTO SET 和 INSERT INTO 用法有何不同?
张工平时向数据表插入数据都是用INSERT INTO,对于INSERT INTO SET 没用过,答不出个所以然来。
面试官:“连 INSERT INTO SET 都不知道怎么用,你这3年都干些什么了?”
被面试官这么一说,张工有些尴尬,自己确实没有用过。
个人觉得面试官提问这样的问题来考验求职者,意义不大,有点类似孔乙己“回”字有哪几种写法。也可能人家使用的数据库根本就是不是mysql,不了解很正常。
不过,在平时学习中,对于mysql,往数据表插入数据sql不同写法还是有必要了解下,这有利于我们更好地完善程序。
下面我们来看看MYSQL 中INSERT INTO SET 的用法。
在说INSERT INTO SET 之前,我们来了解下,MySQL中INSERT的一般用法
INSERT语句是最常见的SQL语句之一,在标准的SQL语句中,插入记录的INSERT语句是这样的
INSERT INTO table_name (column_name1,column_name2…) VALUES(value1,value2…);但在MySQL中INSERT语句标准用法不尽相同,因为在MySQL中还有另外一种形式。
INSERT INTO table_name SET column_name1 = value1, column_name2 = value2,…;我们来看看这两种方式有哪些不同。
INSERT INTO table_name (column_name1,column_name2,column_name3,...)
VALUES (value1,value2,value3,...);这种方法将列名和列值分开了,使用时,列名必须和列值shu一致。
比如向用户表(tb_user)表中插入了一条记录:
INSERT INTO tb_user(id, name, age) VALUES(1, '小爱', 18);我们向用户表插入一条编号为1,姓名为小爱,年龄18岁的记录。
这些写法很清晰,不足之处就是当这张表的列很多时,写起来就会稍微不注意就会错位,容易写错。另外,要是表结构有调整,维护起来较麻烦。
再来看看INSERT INTO SET写法
INSERT INTO table_name SET column_name1 = value1, column_name2 = value2,column_name3 =value3…;这种方法允许列名和列值成对出现和使用,如下面的语句。
INSERT INTO users SET id = 1, name = '小爱', age = 18;同样也是往用户表插入一条编号为1,姓名为小爱,年龄18岁的记录。
值得注意的是,如果使用了SET方式,必须至少为一列赋值。
如果某一个字段使用了缺省值(如默认或自增值),这两种写法都可以省略这些字段。
譬如tb_user表中的id字段上使用了自增值,上面两条语句可以写成如下形式:
INSERT INTO tb_user (name, age) VALUES('小爱',18);INSERT INTO tb_user SET name = '小爱', age = 18;另外,对于第一种写法,MySQL在VALUES上也做了些变化。
如果VALUES中什么都不写,那MySQL将使用表中每一列的默认值来插入新记录。
INSERT INTO table_name() VALUES();如果表名后什么都不写,就表示向表中所有的字段赋值。使用这种方式,不仅在VALUES中的值要和列数一致,而且顺序不能颠倒。
INSERT INTO table_name
VALUES (value1,value2,value3,...);在标准用法中,如果将INSERT语句写成如下形式MySQL则会报错。
如:
INSERT INTO tb_user VALUES('张三',18)值得一提的是,两者最大的不同是,在标准的INSERT语句允许一次插入多条数据,而SET则不支持。
INSERT INTO tb_user(name, age) VALUES('张三',25),('李四',25)总结:
mysql 插入数据写法:
INSERT INTO table_name (column_name1,column_name2,column_name3,...)
VALUES (value1,value2,value3,...);INSERT INTO table_name
VALUES (value1,value2,value3,...);-- SET方式,必须至少为一列赋值
INSERT INTO table_name SET column_name1 = value1, column_name2 = value2,column_name3 =value3…;上面给大家介绍的mysql中 INSERT INTO 语句可以有两种编写形式的基础用法,希望对大家有所帮助。在此也非常感谢大家的支持!
由于笔者水平有限,文中纰漏之处在所难免,权当抛砖引玉,不妥之处,请大家批评指正。
边栏推荐
- exness:美联储重现鹰派口吻,黄金承压面临转跌信号
- Share | technology integration electronic fence function of scheduling system
- “蔚来杯“2022牛客暑期多校训练营5 B、C、F、G、H、K
- 考研概率论与数理统计(知识点梳理)
- Cool and efficient data visualization big screen, it's really not that difficult to do!丨Geek Planet
- 从数学角度和编码角度解释 熵、交叉熵、KL散度
- yolo系列的Neck模块
- 划重点!2022面试必刷461道大厂架构面试真题汇总+面经+简历模板
- 2022上半年各银行理财子公司深耕差异化发展,净值型产品数量增加
- A comprehensive understanding of MOS tubes, an article is enough
猜你喜欢
随机推荐
聪明的儿子处理婆媳关系的方法(处理婆媳关系的方法)
244页pdf!《2022 中国云计算生态蓝皮书》发布
业务中我们如何更新缓存?Redis
Matlab记录
形态学(膨胀、腐蚀)
Flutter 使用 json_serializable 解析 JSON 支持泛型
简要介绍电源效率测试
如何用一条命令将网页转成电脑 App
【VSCode】一文详解vscode下安装vim后无法使用Ctrl+CV复制粘贴 使用Vim插件的配置记录
Focus!2022 interview must brush 461 interview questions summary + interview + resume template
Two years of independent development experience Programmers tell us the experience of making money (listen to the masters who really make money)
两年独立开发经验程序员告诉我们赚钱的经验(听听真正赚到钱的高手做法)
移动跨端技术方案分析对比
飞书更新招聘功能 候选人可选择面试时间
十一、网络规划设计
Redis (1) installation and configuration
MySQL必知必会(初级篇)
基于BiLSTM的回归预测方法
常用代码模板1——基础语法
FHQ-Treap 简介









