SQL入门提示?

时间:2008-09-21 03:09:44

标签: sql

我从来没有太多需要用数据库编程。由于它们的使用非常普遍,对我来说似乎是一件好事。 SQL似乎是开始的地方,可能是SQLite,也许是Python bindings。对于刚来这个的人,你会推荐什么?图书馆,工具和项目创意都是受欢迎的。

18 个答案:

答案 0 :(得分:3)

结构查询语言(SQL)是用于与数据库管理系统(DBMS)通信的语言。虽然学习是件好事,但最好还是考虑到你想做的项目。你说你从来没有需要,这很有趣,因为我是相反的,几乎我写过的每一个程序都使用了某种类型的数据库。绝大多数(主要是基于网络的)围绕着使用数据库。

  • 了解关系和数据库架构。这意味着如何构建表,创建外键和关系。

    例如,您可能拥有电影数据库。在其中,您可以存储有关电影,发布电影的工作室以及电影中的演员的信息。每个都成为一个表。每部电影都由一个工作室发布。由于您不希望在每个Movie条目中存储复制工作室信息(地址等),因此您存储了与它的关系,因此每个Movie项目都包含对Studio项目的引用。这被称为一对多关系(一个工作室有很多电影)。同样,您不希望存储每个电影的Actor信息。但是一个演员可以在很多电影中,所以这是存储为多对多的关系。

  • 学习SQL本身。 SQLCourse是一个开始的好地方,但还有许多其他书籍和资源。 SQL是一种标准,但每个RDBMS都有自己的特定于供应商的方式来做某些事情和其他限制(例如,一些系统不支持子查询,有几种不同的语法来限制返回的行数等等)。学习你正在使用的语法很重要(例如,不学习Oracle语法,然后尝试在MySQL中使用它),但它们足够相似,概念是相同的。

  • 工具取决于您使用的DBMS。 MySQL是一个非常受欢迎的数据库,有很多工具可供使用,还有很多书籍。 SQLite和Postgresql也很受欢迎,也是免费/开源的。

答案 1 :(得分:2)

如果可以,你真的想找到一个知道如何使用它的人,并挑选他们的大脑。那是因为有很多重要的原则(例如第3范式)通过讨论而不是通过书籍来学习更容易。

如果您想自学,您应该学习基本选择,连接,更新,删除和按查询分组的语法。你还应该学习选择的“瑞士军刀”,CASE声明。太多人没有。本主题中推荐的许多教程都会这样做。然后,您需要尝试解决SQL问题。我确信Joe Celko's SQL Puzzles and Answers是它们的良好来源,尽管可能有点先进。

这将让你真正编写SQL。但是您仍然需要学习如何组织数据库。对于大多数目的而言,这意味着您确实需要了解第三范式的形式。你不必给它一个正式的定义,只要你看到它就认出它,并知道如何调整那种格式。

很多参考文献都会解释它,但你不会知道你是否正确阅读它们。这就是它真正的地方,真的有助于访问能够查看表格布局的人并告诉你,“这是正确的”vs“那是错的,这是需要改变的。”没有其他所有,你可以在这里发布一个问题,提出一个建议的布局。但是,与现场人员进行反复讨论仍然是首选IMO。

答案 2 :(得分:1)

尝试维基百科,http://www.w3schools.com/sql/default.asphttp://www.sql-tutorial.net/同时查看YouTube上的SQL视频。

答案 3 :(得分:1)

Ideone开始,只需使用网络浏览器即可在线查询。

答案 4 :(得分:1)

你是对的,SQLite是一个很好的起点,因为它是免费的,轻量级的,并且可以在许多平台上使用。这只是一个开始。 SQLite在SQL语法方面非常自由,缺乏像DBMS系统那样的内部编程语言。尽管如此,如果你想以最小的开销开始学习,那么SQLite就是你的选择。

答案 5 :(得分:1)

SQLite很好,他们有非常好的文档,但是你应该知道它不是像MySQL,Postgres或商业变体那样的全功能SQL数据库。 SQLite的API依赖于回调,这是一个很好的模型,但并非所有数据库API都以这种方式工作。如果您熟悉Perl,那么DBI是另一种探索SQL的好方法。

/阿伦

答案 6 :(得分:1)

“温和的SQL简介” - 您甚至可以在本教程网站上练习“实时查询”

  

http://sqlzoo.net/

答案 7 :(得分:1)

我总是建议The Practical SQL Handbook为初学者提供一个良好的起点 - 特别是那些已经看过SQL但从未理解如何建立自己的查询或者如何工作的人。

所有Celko的书都很棒。

Hernandez的Mere Mortals书很好。

肯亨德森的书也非常出色。

答案 8 :(得分:1)

relational algebra上读一点是理解关系数据库基本概念的好方法。

答案 9 :(得分:1)

Jeo Clecko的智能手机SQL很棒。

答案 10 :(得分:1)

我建议在此网站上进行练习:sql-ex.ru 如果你做得对,你甚至可以获得证书。

答案 11 :(得分:0)

嘿虽然不完整,但如上所述,开始使用SQLite非常棒,谷歌“艰难地学习SQL”,并且有一本可以使用SQLite的在线书籍。

Google非常适合免费下载pdf's Cough Cough,但请尝试http://www.sqlfiddle.com/

这是一个免费的在线平台!无需登录,只需转到他们的页面,用您想要的任何语言创建数据库(这是我选择T-SQL的最佳位置,因为我正在学习),然后您可以根据需要进行查询。我正在学习一个pdf文件,该文件包含可以下载的开源SQL文件,SQLFiddle非常适合学习供应商特定的SQL。

答案 12 :(得分:0)

如果您使用.NET框架进行编程,那么学习LINQ可能是一个很好的起点。 LINQ“引擎”将为您处理与数据库(或对象,实体或XML等)的后端通信。如果你想深入挖掘,你可以探索你编写的LINQ生成的SQL。

答案 13 :(得分:0)

我从here学到了90%的SQL知识。 1997年。

我认为它仍然站起来。

答案 14 :(得分:0)

阅读一本书,开始学习SQL。我不久前从Apress读过Beginning SQL Queries,并为初学者找到了清晰而逻辑的文字(我为同事评论过)。

答案 15 :(得分:0)

您可能需要考虑从MySQL开始,因为它已被广泛记录并且非常容易上手。您可以下载Community Edition然后添加GUI Tools,同时添加GUI和命令行界面。

答案 16 :(得分:0)

Head First的人们拿出了一本书。看看他们的其他书有多好,我推荐这个。但是还没读过。 (LINK

答案 17 :(得分:0)

如果您已经了解了有关Web应用程序的一两件事,那么这将是一个很好的起点。几乎每个严肃的Web应用程序都使用SQL数据库作为其后端。