MySQL / SQLite / etc数据库之间的区别?

时间:2012-01-12 16:52:25

标签: android mysql sql database sqlite

这是我第一次尝试使用数据库,所以请耐心等待。

我需要编写一个程序来使用我无法访问的数据库。我知道有MySQL,SQLite和其他一些SQL东西,但我不确定它们之间的区别是什么。在使用它之前我是否需要知道它是什么类型的数据库(即,是一个与SQLite .db文件不同的MySQL .db文件?),或者文件本身是否相同,区别在于如何它被访问了吗?

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

4 个答案:

答案 0 :(得分:8)

您可能希望运行创建MySQL数据库的视图教程和SQLite实例,以了解它们的工作方式以及如何轻松地与它们进行交互。

每个访问都涉及适配器,尽管创建了您需要的表,用户访问权限(访问表的用户名/密码/角色)。

这是一个直接的sqlite教程: http://zetcode.com/db/sqlite/

这是一个直观的SQL教程: http://zetcode.com/databases/mysqlphptutorial/

我记得第一次被数据库淹没。我的建议是从一个得到良好支持的东西开始,一个很好的社区,搜索结果 - 大量的教程,你可以掌握基础知识

然后,根据您的应用程序要求和平台约束,您可以确定在哪里转动。但是,在没有实际使用数据库的情况下查看数据库之间的差异,就像在不吃鱼的情况下尝试寿司一样。

修改

如果你在Android上构建,那么,学习SQLite。

我强烈推荐本教程帮助您查看Android项目中使用的SQLite: http://developer.android.com/resources/tutorials/notepad/index.html

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

良好的质疑!

答案 1 :(得分:4)

首先,在连接到数据库之前,您需要知道它是什么类型的数据库,因为您需要为您的平台使用适当的数据库驱动程序。 mySQL,Oracle,Postgres,SQL Server等都将使用不同的驱动程序,因为用于与它们通信的二进制协议(来回验证和传输信息)是不同的。

就实际的SQL代码而言,它取决于。在大多数情况下,您可以指望SELECT * FROM Foo使用地球上任何符合SQL的数据库。但是,一旦你开始做任何更复杂或使用非标准关键字的事情,你可能会遇到麻烦。例如,某些数据库支持USING的{​​{1}}关键字,而有些则不支持。{/ p>

您可能会关注的一件事是ORM。这将允许您从程序中抽象出实际的SQL方言,然后(在大多数情况下)不必担心实际的SQL。一些流行的ORM是ActiveRecord(用于Ruby on Rails)和Entity Framework for .NET。希望这有帮助!

<强>更新

由于JOIN标记刚刚添加到帖子中,我快速搜索了支持Android的SqlLite ORM并提出了this。也许值得一试,也许有人可以评论它是否有用:)

答案 2 :(得分:3)

数据库抽象层是一个拥有智能中间人的策略,因此您可以在不确切知道下面的数据库系统的情况下进行编程。数据库抽象在实践中并不像听起来那么乌托邦,并且大多数人最终直接为特定数据库编程。您可能会发现,您选择的数据库获得的经验越多,您希望您越了解其特殊的细微差别。所以简短的回答是有足够的差异!

如果您使用像Model-View-Controller这样的软件架构模式,它可以让您无论使用何种数据库,都可以执行大量编程。以模型 - 视图 - 控制器为例,您可以在不知道正在使用的数据库的情况下对控制器和视图进行编程。

在决定使用数据库系统之前,您可以做的限制是一个不方便的事实,即良好的编程习惯需要胖模型和瘦控制器。因此,您实际编程工作的很大一部分都会被您选择的数据库解决方案所挟持。

如果我不知道将使用什么数据库,我会开始编程我的View然后我的Controller。如果PHP是您的语言,您可能会发现CodeIgniter教程具有启发性。

答案 3 :(得分:2)

关于“适用于SQLite的用途”的文章

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

  

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

     
      
  1. 网络是否将数据与应用程序分开? →选择客户端/服务器
  2.   
  3. 许多并发作家? →选择客户端/服务器
  4.   
  5. 大数据? →选择客户端/服务器
  6.   
  7. 否则→选择SQLite!
  8.