【问题标题】:SQL & Postgres Interview Concepts [closed]SQL 和 Postgres 面试概念 [关闭]
【发布时间】:2011-06-24 12:49:00
【问题描述】:

简介:

所以,我明天有一个面试,我正在尝试复习 SQL 和数据库。招聘信息说他们希望有人:

  • 有数据库设计和开发经验
    • 精通 SQL
    • 有使用 SQL Server 和/或 Postgres 的经验

我已经阅读了Questions every good database SQL developer should be able to answer,以及一堆用 SQL 和面试问题标记的问题。所以我意识到我需要了解SELECTJOINWHERE

问题:

  • 为了在面试中取得好成绩,我需要了解哪些基本 SQL、Postgres 和数据库概念?

  • 关于事务和规范化我需要了解什么?

  • 优化慢查询的一般方法有哪些?

  • 我应该了解函数、关键字还是两者兼而有之?

【问题讨论】:

  • 这可能很有趣:forum.lessthandot.com/…
  • 感谢大家的cmets!面试主要包括使用 SELECT、JOIN 和 WHERE 的简单查询
  • 那很好,你发的问题5分钟学不完。

标签: sql sql-server database postgresql


【解决方案1】:

这取决于有多少角色是基于数据库开发和设计的。对于您的 SQL 语法,您还应该了解连接类型之间的区别,并能够使用GROUP BYORDER BYHAVING 以及可以与它们结合使用的聚合函数。

在性能监控方面,我会查看执行计划(不确定 Postgres 等效项)以及它们如何提供提高性能的提示,以及使用 SQL Profiler 查看服务器实际执行的指令时间。

事务可用于回滚事务(存储过程、即席查询等),这些事务需要以某种方式完成以保持数据一致性。有些人(包括我自己)习惯于将任何对数据进行任何更改的语句放入自动回滚的事务中(BEGIN TRAN ... ROLLBACK TRAN),以检查在将更改推送到实时服务器之前是否处理了正确数量的数据。看看 ACID 模型 - 原子性、一致性、隔离性、持久性。

规范化可能需要一些时间才能完成,但只需了解并部分了解第 3 形式规范化即可开始。

优化可能是一个巨大的话题。请记住尝试使用基于集合的查询而不是基于行的查询来执行诸如 UPDATE 之类的事情(在 WHILE 循环中更新是基于行的更新的一个示例,但它可以有它的用途)。

我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    除了您列出的 sql 语法基础知识之外,您还应该了解一些有关查询性能的知识。查询缓慢的一些常见原因是什么,有哪些补救措施,以及如何评估查询的性能。

    【讨论】:

      猜你喜欢
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多