哪个数据库如果从2010年开始学习?

时间:2022-03-06 09:47:41

If someone knew little about databases and wanted to learn about them from scratch, which database would you recommend learning with and why?

如果有人对数据库知之甚少并希望从头开始学习它们,那么您建议使用哪个数据库进行学习?为什么?

MySQL seems ubiquitous, but are there others that are more modern that have learned lessons from the past, or others that are simply nicer or more logical to work with?

MySQL似乎无处不在,但还有其他更现代化的东西从过去吸取了教训,还是其他一些更好,更合乎逻辑的工作?

Universal compatibility/libraries is not a big concern, unless it is something truly obscure. Mac (Unix) compatibility is a must.

通用兼容性/库不是一个大问题,除非它是真正模糊的东西。 Mac(Unix)兼容性是必须的。

12 个解决方案

#1


17  

If you just want to be learning the SQL language, and not database administration, I would recommend working with SQLite. If you're on a Mac, it should already be installed. It is a much simpler system than most RDBMSes; there is no server to set up, and client to connect to the server. There are no directories of cryptic files, or anything of the sort. To get started, you can just type:

如果您只是想学习SQL语言而不是数据库管理,我建议您使用SQLite。如果你在Mac上,它应该已经安装。它比大多数RDBMSs简单得多;没有要设置的服务器,以及连接到服务器的客户端。没有隐藏文件的目录,或任何类型的目录。要开始,您只需输入:

sqlite3 mydatabase.db

And start working with it. It's so much lighter weight and easier to set up and use than the other database systems that I think it's a good choice for a beginner.

并开始使用它。与其他数据库系统相比,它的重量更轻,更易于设置和使用,我认为这对初学者来说是一个不错的选择。

Now, SQLite is a fairly small and lightweight language. If you need be getting into any kind of really complex queries and data mining, I would recommend PostgreSQL. It has a fairly advanced query optimizer, and a pretty long list of SQL features.

现在,SQLite是一种相当小巧轻便的语言。如果你需要进入任何类型的非常复杂的查询和数据挖掘,我会推荐PostgreSQL。它有一个相当高级的查询优化器,以及相当长的SQL功能列表。

And if you want to learn a database as something to use for back-end storage for web programming or something of the sort, MySQL is what I'd choose. It's ubiquitous, supported by almost any web host, and it's pretty fast for very simple queries and updates, which is generally what you need for a web system. It has some real gotchas to avoid when setting it up; you have to choose between several different storage engines, and it can take a lot of work to convince it to actually work with Unicode data. But it's good to learn mostly for its ubiquity.

如果你想学习一个数据库作为用于Web编程的后端存储或类似的东西,MySQL就是我所选择的。它几乎可以在任何网络主机上得到支持,并且非常快速,非常简单的查询和更新,这通常是您对Web系统所需要的。在设置时要避免一些真正的问题;你必须在几个不同的存储引擎之间进行选择,并且说服它实际使用Unicode数据需要花费大量的精力。但主要是因为它的无处不在而学习是件好事。

#2


5  

From what I've seen (at least on the web), MySQL and PostgreSQL are the most ubiquitous free database systems. If you're considering learning one of them, check this comparison out.

从我所看到的(至少在网上),MySQL和PostgreSQL是最普遍的免费数据库系统。如果您正在考虑学习其中一个,请检查此比较。

You may also want to consider learning SQLite, a "self-contained, embeddable, zero-configuration SQL database engine." It's really easy to get up and going, stored in a single file, and as its description says, has no complicated configuration. SQLite has proved enormously popular as a persistent data store for local apps on the desktop/iPhone. If you're going down this route on a Mac/iPhone, you may also want to check out Core Data, which is an abstraction layer Apple developed on top of SQLite(but can work with pretty much any DB), to simplify working with a database. As a bonus, Core Data includes a nice GUI for forming relationships and entities. You can check out this tutorial for more information.

您可能还想考虑学习SQLite,一个“自包含,可嵌入,零配置的SQL数据库引擎”。它起起来很容易,存储在一个文件中,正如其描述所说,没有复杂的配置。事实证明,SQLite作为桌面/ iPhone上本地应用程序的持久数据存储非常受欢迎。如果您在Mac / iPhone上沿着这条路走下去,您可能还想查看Core Data,它是Apple在SQLite上开发的抽象层(但几乎可以与任何数据库一起使用),以简化工作一个数据库。作为奖励,Core Data包含一个用于形成关系和实体的漂亮GUI。您可以查看本教程以获取更多信息。

#3


3  

If you really, truly, want to "learn from scratch", then theory is the first thing to learn. And that means : NOT products, not any. Not DB2, not MySQL, not oracle, not any-of-them.

如果你真的,真的想要“从零开始学习”,那么理论就是第一个要学习的东西。这意味着:不是产品,不是任何产品。不是DB2,不是MySQL,不是oracle,不是任何人。

Hugh Darwen has a freely available e-book entitled "An Introduction to Relational Database Theory". The material is quite "accessible" and quite unlike most other theory textbooks. It's also the accompanying textbook for his university course on database technology.

Hugh Darwen有一本免费的电子书,名为“关系数据库理论简介”。这些材料非常“易于获取”,与大多数其他理论教科书完全不同。它也是他的大学数据库技术课程的随附教科书。

Chris Date has several books, of which "Introduction to database systems" is the most comprehensive, also the standard textbook in the field, but maybe a little too abstract for some.

Chris Date有几本书,其中“数据库系统简介”是最全面的,也是该领域的标准教科书,但对某些人来说可能有点过于抽象。

If you think that all you need is "just to know a product" and that you can do equally well "without all that theory", then in that case, please disregard this response, because the wording of your question is dishonest.

如果你认为所有你需要的只是“只是为了知道一种产品”并且你可以在没有所有理论的情况下做得同样好,那么在这种情况下,请忽略这一回应,因为你的问题的措辞是不诚实的。

#4


3  

Sad thing about databases is that each and every one works bit differently. I would most likely pick MySQL first and play with it a bit. Then get PostgreSQL and do the same.

数据库的悲哀之处在于,每个数据库的工作方式都不同。我很可能先选择MySQL并稍微玩一下。然后得到PostgreSQL并做同样的事情。

If you need to use databases in corporate environment then I would aim to test also Oracle and SQL Server which both have express versions that can be installed free for yourself.

如果您需要在企业环境中使用数据库,那么我的目标是测试Oracle和SQL Server,它们都有可以免费安装的快速版本。

http://www.microsoft.com/express/sql/download/ http://www.oracle.com/technology/software/products/database/index.html

http://www.microsoft.com/express/sql/download/ http://www.oracle.com/technology/software/products/database/index.html

At start all databases are more or less confusing but I would pick MySQL as first because it can do most of the basic functionalities and has a lot of help available.

在开始时,所有数据库或多或少都令人困惑,但我会首先选择MySQL,因为它可以完成大部分基本功能并提供大量帮助。

#5


2  

I'd go with mysql. It's easy to setup, easy to mess around with via with mysql client, and it's well documented. If you're just starting out, you probably won't need most of the features offered by other databases, like stored procedures and the like.

我会选择mysql。它易于设置,易于使用mysql客户端进行通信,并且有很好的文档记录。如果您刚刚开始,您可能不需要其他数据库提供的大多数功能,如存储过程等。

#6


2  

First of all, MySQL is both ubiquitous and modern.

首先,MySQL无处不在,现代化。

ANSI SQL is more or less the same in all RDBMs, so you can learn any of them and you'll be good.

所有RDBM中的ANSI SQL或多或少都相同,因此您可以学习它们中的任何一个,并且您会很好。

Once you've mastered ANSI SQL, then all you've got left is the localized solutions for each one of them, which won't be portable to other systems - and so, totally discouraged to use, unless they simplify your tasks in a way justifying it.

一旦你掌握了ANSI SQL,那么你剩下的就是它们中的每一个的本地化解决方案,它们不能移植到其他系统 - 因此,完全不鼓励使用,除非它们简化了你的任务。证明它的方式。

#7


1  

MySQL, PostgreSQL, SQLite - pick one. PostgreSQL is more like Oracle, and in my opinion a bit more mature. It's had stored procedures, triggers, and referential integrity longer than MySQL has. I'll admit that I have both installed, but I use MySQL more often because it's quick and easy.

MySQL,PostgreSQL,SQLite - 选一个。 PostgreSQL更像是Oracle,在我看来更成熟一些。它具有比MySQL更长的存储过程,触发器和引用完整性。我承认我已经安装了,但我经常使用MySQL,因为它快速而简单。

But do be aware that non-SQL alternatives are out there and growing in importance. BigTable, object databases like db4o, are worth being aware of. "No SQL" is out there.

但请注意,非SQL替代方案已经存在并且越来越重要。 BigTable,像db4o这样的对象数据库值得注意。 “没有SQL”就在那里。

#8


1  

If you are just getting your feet wet, MYSQL is a great one to start with. Easy install on any platform, great community support and lots of free tools to work with (SQLYog is a favorite of mine).

如果你只是沾沾自喜,MYSQL是一个很好的开始。在任何平台上轻松安装,社区支持和许多免费工具(SQLYog是我的最爱)。

I agree that theory is very important. Depending on how you learn best, digging in and tinkering may be the thing to do before you try to absorb 40 years of thought on relational systems.

我同意理论非常重要。根据你学习的最佳方式,在尝试吸收关系系统40年的思考之前,可能需要深入挖掘和修补。

Codd and Date are legends in the field and can help you understand the broader points of relational theory, but are hard to absorb before you have context for the topic.

Codd和Date是该领域的传奇,可以帮助您理解关系理论的更广泛的观点,但在您拥有该主题的背景之前很难吸收。

If you are looking for more pragmatic/immediate guidance, I'd suggest a book like "Databases for Mere Mortals" and anything written by Joe Celko.

如果您正在寻找更实用/即时的指导,我会推荐一本书,如“仅限于凡人的数据库”以及Joe Celko编写的任何内容。

Once you get comfortable with the basics, there are lots of other platforms to explore as well. As mentioned above, SQLLite and PostGres are two other great choices for the Mac OS.

一旦您熟悉了基础知识,还有许多其他平台需要探索。如上所述,SQLLite和PostGres是Mac OS的另外两个很好的选择。

#9


1  

If you want to learn SQL : the best way is to choose database who implement more features of the SQL standard. So I would recommand Firebird or PostgreSQL

如果您想学习SQL:最好的方法是选择实现SQL标准的更多功能的数据库。所以我建议使用Firebird或PostgreSQL

#10


1  

I might be "sidetracking" a bit with this answer, but I think we're in the same situation!

我可能会用这个答案“稍微偏离”一点,但我认为我们处于同样的境地!

Check out the "The Manga Guide to Databases"! I haven't read it myself yet, but it's on the way in the mail as we speak! I've heard good things about it from friends and colleges, and it's got some good reviews as well. Albeit a bit "controversial," it's supposed to be a fun and surprisingly in-depth introduction to fundamental techniques and principles!

查看“The Manga数据库指南”!我自己还没看过,但是在我们发言的时候它正在邮件的路上!我从朋友和大学那里听到了很多关于它的好消息,它也有一些很好的评论。虽然有点“有争议”,但它应该是一个有趣且令人惊讶的深入介绍基本技术和原则!

#11


0  

Alex wrote: "Reading a textbook without incrementally testing your knowledge on an actual database is not going to produce good results for the majority of people."

亚历克斯写道:“在没有逐步测试你对实际数据库的知识的情况下阅读教科书对大多数人来说不会产生好的结果。”

My book and my university course both use Dave Vooorhis's Rel for that very purpose.

我的书和我的大学课程都是出于这个目的使用Dave Vooorhis的Rel。

Hugh

#12


-2  

A database in the cloud: Amazon EC2, Google App Engine or Microsoft Azure

云中的数据库:Amazon EC2,Google App Engine或Microsoft Azure

#1


17  

If you just want to be learning the SQL language, and not database administration, I would recommend working with SQLite. If you're on a Mac, it should already be installed. It is a much simpler system than most RDBMSes; there is no server to set up, and client to connect to the server. There are no directories of cryptic files, or anything of the sort. To get started, you can just type:

如果您只是想学习SQL语言而不是数据库管理,我建议您使用SQLite。如果你在Mac上,它应该已经安装。它比大多数RDBMSs简单得多;没有要设置的服务器,以及连接到服务器的客户端。没有隐藏文件的目录,或任何类型的目录。要开始,您只需输入:

sqlite3 mydatabase.db

And start working with it. It's so much lighter weight and easier to set up and use than the other database systems that I think it's a good choice for a beginner.

并开始使用它。与其他数据库系统相比,它的重量更轻,更易于设置和使用,我认为这对初学者来说是一个不错的选择。

Now, SQLite is a fairly small and lightweight language. If you need be getting into any kind of really complex queries and data mining, I would recommend PostgreSQL. It has a fairly advanced query optimizer, and a pretty long list of SQL features.

现在,SQLite是一种相当小巧轻便的语言。如果你需要进入任何类型的非常复杂的查询和数据挖掘,我会推荐PostgreSQL。它有一个相当高级的查询优化器,以及相当长的SQL功能列表。

And if you want to learn a database as something to use for back-end storage for web programming or something of the sort, MySQL is what I'd choose. It's ubiquitous, supported by almost any web host, and it's pretty fast for very simple queries and updates, which is generally what you need for a web system. It has some real gotchas to avoid when setting it up; you have to choose between several different storage engines, and it can take a lot of work to convince it to actually work with Unicode data. But it's good to learn mostly for its ubiquity.

如果你想学习一个数据库作为用于Web编程的后端存储或类似的东西,MySQL就是我所选择的。它几乎可以在任何网络主机上得到支持,并且非常快速,非常简单的查询和更新,这通常是您对Web系统所需要的。在设置时要避免一些真正的问题;你必须在几个不同的存储引擎之间进行选择,并且说服它实际使用Unicode数据需要花费大量的精力。但主要是因为它的无处不在而学习是件好事。

#2


5  

From what I've seen (at least on the web), MySQL and PostgreSQL are the most ubiquitous free database systems. If you're considering learning one of them, check this comparison out.

从我所看到的(至少在网上),MySQL和PostgreSQL是最普遍的免费数据库系统。如果您正在考虑学习其中一个,请检查此比较。

You may also want to consider learning SQLite, a "self-contained, embeddable, zero-configuration SQL database engine." It's really easy to get up and going, stored in a single file, and as its description says, has no complicated configuration. SQLite has proved enormously popular as a persistent data store for local apps on the desktop/iPhone. If you're going down this route on a Mac/iPhone, you may also want to check out Core Data, which is an abstraction layer Apple developed on top of SQLite(but can work with pretty much any DB), to simplify working with a database. As a bonus, Core Data includes a nice GUI for forming relationships and entities. You can check out this tutorial for more information.

您可能还想考虑学习SQLite,一个“自包含,可嵌入,零配置的SQL数据库引擎”。它起起来很容易,存储在一个文件中,正如其描述所说,没有复杂的配置。事实证明,SQLite作为桌面/ iPhone上本地应用程序的持久数据存储非常受欢迎。如果您在Mac / iPhone上沿着这条路走下去,您可能还想查看Core Data,它是Apple在SQLite上开发的抽象层(但几乎可以与任何数据库一起使用),以简化工作一个数据库。作为奖励,Core Data包含一个用于形成关系和实体的漂亮GUI。您可以查看本教程以获取更多信息。

#3


3  

If you really, truly, want to "learn from scratch", then theory is the first thing to learn. And that means : NOT products, not any. Not DB2, not MySQL, not oracle, not any-of-them.

如果你真的,真的想要“从零开始学习”,那么理论就是第一个要学习的东西。这意味着:不是产品,不是任何产品。不是DB2,不是MySQL,不是oracle,不是任何人。

Hugh Darwen has a freely available e-book entitled "An Introduction to Relational Database Theory". The material is quite "accessible" and quite unlike most other theory textbooks. It's also the accompanying textbook for his university course on database technology.

Hugh Darwen有一本免费的电子书,名为“关系数据库理论简介”。这些材料非常“易于获取”,与大多数其他理论教科书完全不同。它也是他的大学数据库技术课程的随附教科书。

Chris Date has several books, of which "Introduction to database systems" is the most comprehensive, also the standard textbook in the field, but maybe a little too abstract for some.

Chris Date有几本书,其中“数据库系统简介”是最全面的,也是该领域的标准教科书,但对某些人来说可能有点过于抽象。

If you think that all you need is "just to know a product" and that you can do equally well "without all that theory", then in that case, please disregard this response, because the wording of your question is dishonest.

如果你认为所有你需要的只是“只是为了知道一种产品”并且你可以在没有所有理论的情况下做得同样好,那么在这种情况下,请忽略这一回应,因为你的问题的措辞是不诚实的。

#4


3  

Sad thing about databases is that each and every one works bit differently. I would most likely pick MySQL first and play with it a bit. Then get PostgreSQL and do the same.

数据库的悲哀之处在于,每个数据库的工作方式都不同。我很可能先选择MySQL并稍微玩一下。然后得到PostgreSQL并做同样的事情。

If you need to use databases in corporate environment then I would aim to test also Oracle and SQL Server which both have express versions that can be installed free for yourself.

如果您需要在企业环境中使用数据库,那么我的目标是测试Oracle和SQL Server,它们都有可以免费安装的快速版本。

http://www.microsoft.com/express/sql/download/ http://www.oracle.com/technology/software/products/database/index.html

http://www.microsoft.com/express/sql/download/ http://www.oracle.com/technology/software/products/database/index.html

At start all databases are more or less confusing but I would pick MySQL as first because it can do most of the basic functionalities and has a lot of help available.

在开始时,所有数据库或多或少都令人困惑,但我会首先选择MySQL,因为它可以完成大部分基本功能并提供大量帮助。

#5


2  

I'd go with mysql. It's easy to setup, easy to mess around with via with mysql client, and it's well documented. If you're just starting out, you probably won't need most of the features offered by other databases, like stored procedures and the like.

我会选择mysql。它易于设置,易于使用mysql客户端进行通信,并且有很好的文档记录。如果您刚刚开始,您可能不需要其他数据库提供的大多数功能,如存储过程等。

#6


2  

First of all, MySQL is both ubiquitous and modern.

首先,MySQL无处不在,现代化。

ANSI SQL is more or less the same in all RDBMs, so you can learn any of them and you'll be good.

所有RDBM中的ANSI SQL或多或少都相同,因此您可以学习它们中的任何一个,并且您会很好。

Once you've mastered ANSI SQL, then all you've got left is the localized solutions for each one of them, which won't be portable to other systems - and so, totally discouraged to use, unless they simplify your tasks in a way justifying it.

一旦你掌握了ANSI SQL,那么你剩下的就是它们中的每一个的本地化解决方案,它们不能移植到其他系统 - 因此,完全不鼓励使用,除非它们简化了你的任务。证明它的方式。

#7


1  

MySQL, PostgreSQL, SQLite - pick one. PostgreSQL is more like Oracle, and in my opinion a bit more mature. It's had stored procedures, triggers, and referential integrity longer than MySQL has. I'll admit that I have both installed, but I use MySQL more often because it's quick and easy.

MySQL,PostgreSQL,SQLite - 选一个。 PostgreSQL更像是Oracle,在我看来更成熟一些。它具有比MySQL更长的存储过程,触发器和引用完整性。我承认我已经安装了,但我经常使用MySQL,因为它快速而简单。

But do be aware that non-SQL alternatives are out there and growing in importance. BigTable, object databases like db4o, are worth being aware of. "No SQL" is out there.

但请注意,非SQL替代方案已经存在并且越来越重要。 BigTable,像db4o这样的对象数据库值得注意。 “没有SQL”就在那里。

#8


1  

If you are just getting your feet wet, MYSQL is a great one to start with. Easy install on any platform, great community support and lots of free tools to work with (SQLYog is a favorite of mine).

如果你只是沾沾自喜,MYSQL是一个很好的开始。在任何平台上轻松安装,社区支持和许多免费工具(SQLYog是我的最爱)。

I agree that theory is very important. Depending on how you learn best, digging in and tinkering may be the thing to do before you try to absorb 40 years of thought on relational systems.

我同意理论非常重要。根据你学习的最佳方式,在尝试吸收关系系统40年的思考之前,可能需要深入挖掘和修补。

Codd and Date are legends in the field and can help you understand the broader points of relational theory, but are hard to absorb before you have context for the topic.

Codd和Date是该领域的传奇,可以帮助您理解关系理论的更广泛的观点,但在您拥有该主题的背景之前很难吸收。

If you are looking for more pragmatic/immediate guidance, I'd suggest a book like "Databases for Mere Mortals" and anything written by Joe Celko.

如果您正在寻找更实用/即时的指导,我会推荐一本书,如“仅限于凡人的数据库”以及Joe Celko编写的任何内容。

Once you get comfortable with the basics, there are lots of other platforms to explore as well. As mentioned above, SQLLite and PostGres are two other great choices for the Mac OS.

一旦您熟悉了基础知识,还有许多其他平台需要探索。如上所述,SQLLite和PostGres是Mac OS的另外两个很好的选择。

#9


1  

If you want to learn SQL : the best way is to choose database who implement more features of the SQL standard. So I would recommand Firebird or PostgreSQL

如果您想学习SQL:最好的方法是选择实现SQL标准的更多功能的数据库。所以我建议使用Firebird或PostgreSQL

#10


1  

I might be "sidetracking" a bit with this answer, but I think we're in the same situation!

我可能会用这个答案“稍微偏离”一点,但我认为我们处于同样的境地!

Check out the "The Manga Guide to Databases"! I haven't read it myself yet, but it's on the way in the mail as we speak! I've heard good things about it from friends and colleges, and it's got some good reviews as well. Albeit a bit "controversial," it's supposed to be a fun and surprisingly in-depth introduction to fundamental techniques and principles!

查看“The Manga数据库指南”!我自己还没看过,但是在我们发言的时候它正在邮件的路上!我从朋友和大学那里听到了很多关于它的好消息,它也有一些很好的评论。虽然有点“有争议”,但它应该是一个有趣且令人惊讶的深入介绍基本技术和原则!

#11


0  

Alex wrote: "Reading a textbook without incrementally testing your knowledge on an actual database is not going to produce good results for the majority of people."

亚历克斯写道:“在没有逐步测试你对实际数据库的知识的情况下阅读教科书对大多数人来说不会产生好的结果。”

My book and my university course both use Dave Vooorhis's Rel for that very purpose.

我的书和我的大学课程都是出于这个目的使用Dave Vooorhis的Rel。

Hugh

#12


-2  

A database in the cloud: Amazon EC2, Google App Engine or Microsoft Azure

云中的数据库:Amazon EC2,Google App Engine或Microsoft Azure