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

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

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

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

  • Android的ORMLite示例不能编译
  • 如何在SQLiteDatabase查询中测试游标是否为空
  • 在sqlite中创build一个索引列
  • Android Lollipop 5.0.1 SQLiteLog POSIX错误11 SQLite错误:3850
  • 使用CursorLoader查询SQLite数据库并填充AutoCompleteTextView
  • 如何从Android设备中提取sqlite数据库?
  • 在编译时,Android SQLiteException“no such table”:INSERT INTO table
  • 如何使Android SQLite数据库上的AUTO_INCREMENT?
  • 您可能想要通过创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!