在制定Sql查询时你怎么看?这是一种体验还是一种概念?

Sha*_*pta 6 sql sql-server

我一直在研究sql server和前端编码,并且通常面临制定查询的问题.

我确实理解了在编写查询时需要的大多数sql概念,但是当图片中出现一些可能不使用sql查询的新功能时,我通常无法解析它们.

我对使用连接和所有这些事情的选择查询非常熟悉,但是当涉及到DML操作时,我通常会失败

对于我之前从未做过的每一个查询,我通常会在创建它们时感到不舒服.每当我去面试时,我都会遇到这个问题.

这是他们在制定SQL查询时背后的一些概念.

例如.

我需要创建一个这样的SQL查询

A table contain single column having duplicate record. I need to remove duplicate records. 
Run Code Online (Sandbox Code Playgroud)

我知道我可以在谷歌上轻松找到这个查询的解决方案,但我想知道每个人如何达到预期的结果.

是这样的,Practice Makes Man Perfect即一旦你做了它,下次你将能够制定or他们的一些logic or concept落后.

我可以通过在stackoverflow上发布它来获得解决上述问题的答案,我会在5到10分钟内得到答案,但我想知道原因.你如何处理任何新的查询.它是经验的主要贡献还是某些概念的实现.

每当我在编码部分学习一些新东西时,我都会尝试在任何可以使用它的地方使用它.但这里的情况似乎有所改变,因为可能我在某些概念上有所滞后.

编辑

我怎样才能在Sql和相关的sql查询中测试我的知识和概念?

Adr*_*der 5

通常情况下,您第一次需要打开儿童打样药瓶时,您会遇到困难,但在此之后您已准备好应该/将会带来什么.

所以这是编程(我认为).

你会发现问题,研究最佳实践,并对抗几块石头,但在这个过程中你会得到一套方便的工具.

此外,阅读其他人尝试/做过的事情,是避免重大障碍的好方法.

总而言之,通过大量练习/编码,您将更快地看到模式,并学会注意在哪里使用什么工具.


小智 3

一般来说,我有一种有点系统化的构建查询的方法,我在其他地方使用它来解决我需要做的任何问题。

第一步是始终列出我在请求中拥有的所有信息。信息本质上是告诉我有关某事的任何信息。

表包含具有重复记录的单列。我需要删除重复的

  1. 我有一张桌子(我将其称为 table1)
  2. 我在表 table1 上有一列(我将其称为 col1)
  3. 我在表 table1 的 col1 中有重复项
  4. 我需要删除重复项。

查询构造的下一步是确定我将根据所掌握的信息采取的操作。我将查找某些关键字(例如删除、创建、编辑、显示等)以及标准插入、更新、删除来确定操作。在示例中,由于删除,这将是 DELETE。

下一步是隔离

回答问题“上面确定的操作应该只对______有效?” 这部分几乎总是构建任何查询中最困难的部分,因为它通常是抽象的。在上面的示例中,您将“重复记录”列为一条信息,但这实际上是某事物的抽象概念(特定值在使用中不唯一的任何事物)。隔离也是我使用 SELECT 语句测试操作的地方。我运行的每个新查询都会首先通过选择抛出!

下一步是执行,或者本质上是请求的“我如何完成这件事”部分。

很多时候,您会在隔离步骤中弄清楚如何解决,但在某些情况下(包括您自己的情况),如何隔离某些内容和如何修复它不是同一件事。显示重复值与删除特定重复值不同。

最后一步是实施。这就是我获取所有内容并进行查询的地方......

总结一下......为了构建一个查询,我将挑选出请求中的所有信息。利用这些信息,我将弄清楚我需要做什么(行动),以及我需要做什么(隔离)。一旦我知道我需要做什么,我就会想出执行的方法。

每次我开始一个新的“查询”时,我都会通过这些一般步骤来运行它,以了解我要在抽象级别上做什么。对于实际请求的具体实现,您必须具备一些知识(或访问谷歌)才能走得更远。

克里斯