Differences between NoSql, MySql, Sqlite and Sql?

5 points by bl00djack ↗ HN
What's the differences between noSql, mySql, sqlite and sql? I have only used Sqlite3 when I was developing a website with Django and a little bit of MySql when I worked on wordpress during summer, what are the other database languages like?

6 comments

[ 4.8 ms ] story [ 21.8 ms ] thread
Well MySql and Sqlite are RDBMS databases. They stores data in tables in the form of rows. Basic purpose is to eliminate redundancy, storage of large data.

Sql ( Structure query language ) is language that used to extract data from RDBMS databases ( SELECT * FROM table )

NoSql is another philosophy of databases which store data in key-value pairs. The basic purpose of NoSql is to reduce complexity. MongoDB , Redis, Cassandra are few popular NoSql databases.

The main difference is whether the database runs in memory (mysql and sql), or it's file based (nosql and sqlite).

Wham downvoted. Is this information incorrect?

Yes, this information is incorrect. MySQL does not "run in memory" moreso than other RDBMS's; it has various in-memory caches but persists your data to disk. SQL is not a database, but the language you use to talk to one. NoSQL is not a specific file-backed database but a category of software, some of which persist data to disk and some of which don't.
I will refrain from opining on your newbness and just say this:

SQL is just a query/update language. Most of the "ahem" alternatives are slow, severely constrained and don't have the maturity of 40 years of query optimization behind them.

Most of the arguments against sql have nothing to do with databases but are forwarding higher level abstractions like ORM.

Learn SQL and a programming language. You will go far with just those.

MySql and Sqlite are relational database management systems (RDBMS), which hold databases that are based on relations. (Other RDBMS are e.g. Postgresql or MS SQL Server)

SQL is a programming language to manage data and data definition in RDBMS. ("SELECT * FROM users WHERE lastname = 'Smith';")

NoSQL is a term which describes database systems that don't understand SQL and usually work as key-value store. (Examples: Riak, Redis, MongoDB (document-based))

MySQL is a fully featured RDBMS. An example would be enterprise system or websites.

SQLite is also a RDBMS but a lightweight one, it doesn't require it's own process, clustering or user management unlike MySQL or others RDBMS. SQLite consist of a single file and a library to make your application interact with it. The typical example is storing bookmarks on a web browser, or minor database in mobile apps.

SQL is the language standard to interact with RDBMS. While it's the same language, it has minor non-standard variations flavors (like Microsoft's Transact-SQL).

NoSQL is a broad term to refer to databases that are less restricted on the database's model associations than a relational one.