MySQL/SQLite等数据库之间的区别是什么?

11

这是我第一次尝试使用数据库,所以请谅解。

我需要编写一个程序来使用一个我尚未访问的数据库。我知道有MySQL、SQLite和一堆其他SQL东西,但我不确定它们之间的区别。我是否需要知道数据库的种类才能使用它(例如,MySQL .db文件与SQLite .db文件是否不同?),或者文件本身将是相同的,区别在于如何访问它?

编辑:我正在为Android平板电脑编程,这可能很重要。但我不会创建数据库,数据库将给予我并且我必须使用它。

4个回答

10

有可能你需要通过一些MySQL数据库和SQLite实例的教程来了解它们是如何工作和如何轻松地与它们交互。

每个都需要适配器进行访问,除了创建所需的表格,还需要用户访问权限 (用户名/密码/角色以访问表格)。

这是一个简单的SQLite教程:http://zetcode.com/db/sqlite/https://zetcode.com/php/mysqli/http://zetcode.com/php/pdo/

这是一个基于C#的SQL教程:https://zetcode.com/csharp/mysql/

我记得第一次接触数据库时感到很压抑。我的建议是从一些得到良好支持、拥有强大社区和众多教程的东西开始学习,从中掌握基础知识

然后,根据应用程序要求和平台限制,您可以确定何时转换。但是如果没有真正使用它们,就去审查数据库之间的差异就像尝试吃寿司,而从未吃过鱼。

编辑:

如果您正在构建Android应用程序,那么要学习SQLite。

我强烈推荐这个教程,以帮助您在Android项目中看到SQLite的使用:https://developer.android.com/training/data-storage/sqlite

对于数据抽象/ORM,您应该熟悉内容提供商和光标 (http://developer.android.com/guide/topics/providers/content-providers.html)

查询愉快!


MySQL教程的链接已经失效。 - jdhao
谢谢@jdhao - 我已经用新的URL更新了它。 - Dominic Tancredi
我的意思是 http://zetcode.com/databases/mysqlphptutorial/ 已经失效了。 - jdhao
好的,我没有看到他关于此的教程,但我已经用C#示例更新了它。 - Dominic Tancredi
旧教程涵盖了已停用的MySQL驱动程序。更新的教程链接如下:https://zetcode.com/php/mysqli/和https://zetcode.com/php/pdo/。 - Jan Bodnar

5
首先,您需要知道数据库类型,然后才能连接到它,因为您需要使用适合您平台的适当的数据库驱动程序。mySQL、Oracle、Postgres、SQL Server等都将使用不同的驱动程序,因为用于与它们通信(进行身份验证和信息传输)的二进制协议是不同的。
至于您的实际SQL代码,这取决于情况。在大多数情况下,您可以指望SELECT * FROM Foo与地球上任何符合SQL标准的数据库一起工作。但是,一旦您开始执行更复杂的操作或使用非标准关键字,您可能会遇到麻烦。例如,一些数据库支持USING关键字用于JOIN,而有些则不支持。
您可能需要了解的一件事是ORM。这将允许您从程序中抽象出实际的SQL方言,然后(在大多数情况下)不必担心实际的SQL。一些流行的ORM包括ActiveRecord(用于Ruby on Rails)和Entity Framework for .NET。希望这能帮助您! 更新:

由于刚刚添加了Android标签到帖子中,我快速搜索了一下支持Android的SqlLite ORM,并找到了this。也许值得进一步了解,或者有人可以评论一下它是否好用 :)


3

一篇关于“SQLite的适用场景”的文章

http://www.sqlite.org/whentouse.html

摘要:选择正确的数据库引擎清单

  1. 数据是否通过网络与应用程序分离?→选择客户端/服务器
  2. 同时有多个写入者?→选择客户端/服务器
  3. 大量数据?→选择客户端/服务器
  4. 否则→选择SQLite!

3
数据库抽象层是一种有智能中间人的策略,使您可以在不知道底层数据库系统的情况下进行编程。实际上,数据库抽象并不像听起来那么理想化,大多数人最终会直接为某个特定的数据库进行编程。随着您对所选数据库的经验越来越丰富,您可能会发现希望更好地了解其具体细微差别。所以简短的回答是存在足够的差异!
如果您使用Model-View-Controller等软件架构模式,则可以使您能够完成许多与使用的数据库无关的编程。以Model - View - Controller为例,你可以编写你的Controllers和Views而不必知道你正在使用哪个数据库。
在决定使用数据库系统之前,您可以做的事情受到限制的事实是好的编程实践要求Fat Models和Skinny Controllers。因此,您实际的编程工作的一部分被您选择的数据库解决方案所束缚。
如果我不知道将使用什么数据库,我将开始编写我的View,然后是Controller。如果PHP是您的语言,您可能会发现CodeIgniter教程很有启发性。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接