【问题标题】:Fundamental SQL Knowledge?SQL 基础知识?
【发布时间】:2010-08-19 21:14:55
【问题描述】:

我即将参加一项挑战测试,因此我不必参加数据库处理课程。尽管过去 5 年我一直在使用数据库,但我还是忍不住对测试感到紧张。这是 50 个问题,有 2 个部分:真/假部分和我实际编写 SQL 命令的部分。它与平台无关。

参加此测试我应该了解哪些基本知识?您需要公司的新 SQL 开发人员知道如何做?哪些问题可能是技巧问题?

编辑:

就像我说的,它与平台无关,但在所有方面都与语言无关。不会有关于如何用 ASP.Net、PHP 或其他语言连接的问题。

【问题讨论】:

标签: sql


【解决方案1】:

索引和主键/外键的重要性。连接语法和对各种连接类型的理解(包括表别名)。数据类型选择(为输入数据集的示例分配什么列类型)将是有意义的。子查询(尤其是相关的)。存储过程。创建变量。聚合函数和分组。备份和恢复实践。

这是一个简短的列表,我很想看看其他人的回复。

我想了更多。临时表和视图都是很好的主题。可能是数据透视表。

【讨论】:

  • 临时表和数据透视表在不同风格的 SQL 中的实现方式往往不同。
【解决方案2】:

在我看来 :-) 知道:

  • 数据定义语言 (DDL),它是什么以及它的作用。

  • 数据操作语言 (DML),它是什么以及它的作用。

  • 可能是数据控制语言 (DCL),同上。

  • 什么是数据库规范化。

  • Edgar F. Codd 是谁。 :-D

【讨论】:

    【解决方案3】:

    我同意 g.d.d.c 的一切。说。另外:

    规范化和数据库设计。

    您需要了解集合论以及为什么在数据库中使用逐行处理非常糟糕。您需要了解什么是数据完整性以及为什么在数据库中而不是在应用程序中强制执行这一点很重要!您可能需要至少对什么是 ORM 以及您可能使用它的原因有所了解。

    需要了解布尔代数。

    Basic 课程可能不需要了解性能调整,但我个人不会聘请对此没有深入了解的开发人员。

    在当今世界,您也许还可以回答一些关于 NoSQL 数据库以及何时使用它们而不是关系数据库的问题。

    【讨论】:

      【解决方案4】:

      如果它是一门基础课程,那么您应该了解 w3schools 下的所有内容,并且非常擅长规范化。 (他们喜欢询问规范化和连接)

      【讨论】:

        【解决方案5】:

        知道更喜欢 JOIN 而不是使用连接元素污染 WHERE 子句。

        【讨论】:

        • JOIN子句是ANSI标准的SQL,但并不是所有的SQL都实现了ANSI标准。
        【解决方案6】:

        除了 g.d.d.c.、JustBoo 和 HLGEM 所说的,对事务的基本了解,尤其是回滚和提交。另外,TRUNCATE TABLE。

        【讨论】: