All these days I've been using MySQL, recently I saw a kind of similar named Database NoSQL. What is NoSQL and what is the difference between them ?
That's a very wide question and hard to answer in a short way. These two are hardly comparable because they aren't the same level of categorization/abstraction.
First of all MySQL is a Relational Database product using SQL from Oracle while noSQL is not a product. It's a (set of) type(s) of "products" or better phrase as a concept. As the name suggests it's not SQL. NoSQL types and products are for example:
- key-value stores like Redis, Tokio Cabinet or even Memcache can be mentioned
- document database like MongoDb and CouchDB
- graph databases like OrientDB
- columnar datastores like Hadoop, Cassandra or Bigtable
SQL means Structured Query Language and this is related to how the data can be retrieved. This is not equivalent with Relational Databases. You can find noSQL RDBMS products as well.
Let me put it this way SQL is a language which can be used for data retrieval in relational databases (for example: MySQL, Postgres, Oracle) just like it can be used (however rarely used) in other types of databases/datastores.