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

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

我需要编写一个程序来使用我还没有访问的数据库。 我知道有MySQLSQLite和其他一些SQL的东西,但我不知道它们之间的区别是什么。 我是否需要知道它是什么types的数据库之前,我可以使用它(即,是一个MySQL .db文件不同于SQLite .db文件?),或文件本身将是相同的,不同之处在于如何它被访问?

编辑:我正在编程一个Android平板电脑,这可能很重要。 但是我不会创build数据库,它会被给予我,我必须使用它。

Solutions Collecting From Web of "MySQL / SQLite / etc数据库之间的区别?"

您可能想要通过创buildMySQL数据库的视图教程和SQLite实例来查看它们如何工作以及如何轻松地与它们交互。

访问每个涉及适配器,尽pipe创build您将需要的表,用户访问(用户名/密码/angular色来访问表)。

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

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

我记得我第一次被数据库淹没了。 我的build议是从一个好的支持开始,有一个好的社区,search结果 – 大量的教程, 在那里你可以掌握基本面

然后,根据您的应用程序要求和平台限制,您可以确定在哪里进行转换。 但是,回顾一下数据库之间的差异,而没有真正与他们合作,就像尝试寿司而不吃鱼一样。

编辑:

如果你是在Android上构build,那么请学习SQLite。

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

对于数据抽象/ ORM,您应该熟悉Content Providers和Cursors( http://developer.android.com/guide/topics/providers/content-providers.html

好问答!

首先,您需要知道它是什么types的数据库,然后才能连接到它,因为您需要为您的平台使用适当的数据库驱动程序。 MySQL,Oracle,Postgres,SQL Server等都将使用不同的驱动程序作为与之通信的二进制协议(authentication和来回传输信息)是不同的。

至于你的实际的SQL代码,这取决于。 大多数情况下,您可以指望SELECT * FROM Foo与地球上任何SQL兼容的数据库一起工作。 但是,一旦你开始做更复杂的事情或使用非标准的关键字,你可能会遇到麻烦。 例如,有些数据库支持JOINUSING关键字,有些则不支持。

有一件事你可能会看到一个ORM 。 这将允许您从您的程序中抽象出实际的SQL方言,然后(大部分)不必担心实际的SQL。 一些stream行的ORM是ActiveRecord(用于Ruby on Rails)和Entity Framework for .NET。 希望这可以帮助!

更新:

由于Android标签刚添加到post中,我快速search了支持Android的SqlLite ORM并提出了这个问题 。 也许值得检查一下,或者有人可以评论是否有任何好处:)

数据库抽象层是一个聪明的中间人的策略,所以你可以在不知道你的底层数据库系统的情况下进行编程。 数据库抽象并不像听起来那样乌托邦,大多数人直接为特定的数据库编程。 您可能会发现,您select的数据库获得的经验越多,希望您越了解其特定的细微差别。 所以简短的回答是有足够的差异重要!

如果使用模型 – 视图 – 控制器这样的软件体系结构模式,则可以使您无论使用哪种数据库都可以执行大量编程。 以模型 – 视图 – 控制器为例,您可以编程您的控制器和视图,而无需知道您正在使用的数据库。

在决定数据库系统之前,你可以做的限制是不好的事实,好的编程习惯需要胖模型和瘦的控制器。 所以你实际的编程工作中很大一部分是你select数据库解决scheme的人质。

如果我不知道将使用什么数据库,我将开始编程我的视图,然后我的控制器。 如果PHP是您的语言,您可能会发现一个CodeIgniter教程启发。

一篇关于“适合SQLite的使用”的文章

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

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

  1. 数据是通过networking与应用程序分离的吗? →select客户端/服务器
  2. 许多并发作家? →select客户端/服务器
  3. 大数据? →select客户端/服务器
  4. 否则→selectSQLite!