关于数据库,我需要了解什么?

Jun*_*mer 12 database database-design

总的来说,我认为在编程语言编写方面我做得很好,但我认为在数据库方面我缺少一些东西.

我看到招聘广告要求了解MySQL,MSSQL,Oracle等等,但我不知道会有什么不同之处.

你看,像许多新的程序员一样,我倾向于将我的数据库视为数据的倾销场.我做的大部分归结为相对简单的SQL(INSERT this,SELECT that,DELETE this_other_thing),它主要独立于我正在使用的引擎(除了少数例外,当然,大多是语法的小调整).

有人可以解释特定平台发挥作用的数据库的一些常见用例吗?

我确信存储过程之类的东西很重要,但是(a)这些大多是用特定语言(T-SQL等)编写的,这与特定的RDBMS本身不同,并且(b)我从各种渠道获悉,存储过程正在逐渐消失,而且在很多情况下它们现在都不应该被使用.我相信Jeff Atwood是这个阵营的成员.

谢谢.


以上概念对于MySQL,SQL Server,Oracle等没有太大变化.

有了这个问题,我大多试图确定它们之间的重要区别.也就是说,当大多数常见用例在RDBMS平台上相对稳定时,为什么招聘广告需要n年的MySQL经验.

CRUD语句,连接,索引......所有这些都在某个引擎的范围内相对简单.如果您了解不同的RDBMS,这些概念很容易转移.

我正在寻找的是导致雇主指定特定引擎而不是"使用常见数据库引擎的经验"的具体细节.

dan*_*ben 3

在语句之后CRUD,要成为一名有效的数据库程序员,我认为要理解的一些最重要的事情就是JOIN语句。LEFT了解andRIGHT和joinOUTER之间的区别INNER,并知道何时使用它们。最重要的是,了解数据库在执行JOIN.

对我来说,维基百科的文章非常有帮助。

此外,索引非常重要——这就是关系数据库执行快速查询的方式。了解如何使用它们以及幕后发生的事情。

关于数据库索引的维基百科文章

您还应该知道如何构建多对一关系(使用外键)和多对多关系(使用连接表)。

我知道在你的问题中你问的是特定的数据库实现,但如果你从字面上理解,你只知道SELECTINSERTUPDATEDELETE,那么上述概念将比学习特定的复杂性更有价值执行。