In a nutshell, SQL databases are the tradional relational databases while NoSQL databases are non-relational.
- Have predefined schema. Table based.
- Uses Structured Query Language (SQL)
- Vertically scalable.
- Have dynamic schema. Document, key-value etc.
- Unstructured data
- Horizontally scalable.
Relational vs Non-relational
Traditional relational databases (RDMS) have predefined table structures (schemas). Manipulations to these RDMS are done using SQL commands.
Vertically vs Horizontally Scalability
Verticall scalability is achieved by upgrading resources like CPU, RAM of the existing machines, while horizontal scalability is achieved by adding more machines to the pool of machines. Anyway horizontal scalability is also possible in RDMS by dividing the user data among multiple servers by explicitly writing the application logic to do so. The Difference is, the horizontal scalling is automatically done by the NoSQL databases itself.