我确实理解了在编写查询时需要的大多数sql概念,但是当图片中出现一些可能不使用SQL查询的新功能时,我通常无法解析它们.
我对使用连接和所有这些事情的选择查询非常熟悉,但是当谈到DML操作时,我通常会失败
对于我之前从未做过的每一个查询,我通常会在创建它们时感到不舒服.每当我去面试时,我都会遇到这个问题.
这是他们在制定SQL查询时背后的一些概念.
例如.
我需要创建一个这样的SQL查询
A table contain single column having duplicate record. I need to remove duplicate records.
我知道我可以在谷歌上轻松找到这个查询的解决方案,但我想知道每个人如何达到预期的结果.
它是像练习使人完美的东西,即一旦你做到了,下次你将能够制定或他们的背后是一些逻辑或概念.
我可以通过在stackoverflow上发布它来获得解决上述问题的答案,我会在5到10分钟内得到答案,但我想知道原因.你如何处理任何新的查询.它是经验的主要贡献还是某些概念的实现.
每当我在编码部分学习一些新东西时,我都会尝试在任何可以使用它的地方使用它.但是这里的情况似乎有所改变,因为我可能会在一些概念上落后.
编辑
How could I test my knowledge and
concepts in sql and related sql
queries ?
解决方法
第一步是总是列出我在请求中的任何信息.信息基本上是告诉我某事的东西.
A table contain single column having
duplicate record. I need to remove
duplicate
>我有一张桌子(我称之为table1)
>我有一个
表table1上的列(我将其称为col1)
>我有
表table1上的col1中重复
>我需要删除
重复.
我的查询构造的下一步是确定我将从我的信息中采取的操作.
我会查找某些关键字(例如删除,创建,编辑,显示等等)以及标准插入,更新,删除以确定操作.
在示例中,由于删除,这将是DELETE.
下一步是隔离.
问题是“上面确定的行动应该只对______有效吗?”这部分几乎总是构造任何查询最困难的部分,因为它通常是抽象的.
在上面的示例中,您将“重复记录”列为一条信息,但这实际上是一个抽象概念(某些特定值在使用中不是唯一的).
隔离也是我使用SELECT语句测试操作的地方.
我运行的每个新查询首先通过选择抛出!
下一步是执行,或者基本上是“如何完成”请求的一部分.
很多时候你会在隔离步骤中弄清楚如何排除,但在某些情况下(包括你的)你如何隔离某些东西,以及你如何修复它并不是一回事.
显示重复值与删除特定副本不同.
最后一步是实施.这就是我拿走所有东西并进行查询的地方……
总结一下……对于我来构建一个查询,我将挑选出我在请求中的所有信息.使用这些信息,我将弄清楚我需要做什么(动作),以及我需要做什么(隔离).一旦我知道我需要做什么来解决执行问题.
每次我开始一个新的“查询”时,我都会通过这些一般步骤来了解我将在抽象层面上做的事情.
对于实际请求的具体实现,您必须具备一些知识(或访问谷歌)才能比这更进一步.
短剑的一种