until LLM Bootcamp: In-Person (Seattle) and Online Learn more


Welcome to the world of databases, where the choice between SQL (Structured Query Language) and NoSQL (Not Only SQL) databases can be a significant decision. 

Both SQL databases and NoSQL databases have their own unique characteristics and advantages, and understanding which one suits your needs is essential for a successful application or project.

In this blog, we’ll explore the defining traits, benefits, use cases, and key factors to consider when choosing between SQL and NoSQL databases. So, let’s dive in!


SQL Database

SQL databases are relational databases that store data in tables. Each table has a set of columns, and each column has a specific data type. SQL databases are well-suited for storing structured data, such as customer records, product inventory, and financial transactions.

Some of the benefits of SQL databases include:

  • Strong consistency and data integrity: SQL databases enforce data integrity constraints, such as ensuring that no two customers can have the same customer ID.
  • ACID properties for transactional support: SQL databases support ACID transactions, which guarantee that all or none of a set of database operations are performed. This is important for applications that require a high degree of data integrity, such as banking and financial services.
  • Ability to perform complex queries using SQL: SQL is a powerful language that allows you to perform complex queries on your data. This can be useful for tasks such as reporting, analytics, and data mining.

Some of the popular SQL databases include:

  • MySQL
  • PostgreSQL
  • Oracle
  • Microsoft SQL Server

To understand which SQL database will work best for you, hop on to this video. 

Data Storage Systems: Taking a look at Redshift, MySQL, PostGreSQL, Hadoop and others

NoSQL Databases

NoSQL databases are a type of database that does not use the traditional relational model. NoSQL databases are designed to store and manage large amounts of unstructured data.

Some of the benefits of NoSQL databases include:

  • Scalability and high performance: NoSQL databases are designed to scale horizontally, which means that they can be easily increased in size by adding more nodes. This makes them well-suited for applications that need to handle large amounts of data.
  • Flexibility in handling unstructured data: NoSQL databases are not limited to storing structured data. They can also store unstructured data, such as text, images, and videos. This makes them well-suited for applications that deal with large amounts of multimedia data.
  • Horizontal scalability through sharding and replication: NoSQL databases can be horizontally scaled by sharding the data across multiple nodes. This means that the data is divided into smaller pieces and stored on different nodes. Replication is the process of copying the data to multiple nodes. This ensures that the data is always available, even if one node fails.

Some of the popular NoSQL databases include:

  • MongoDB
  • Cassandra
  • DynamoDB
  • Redis

If you have just started off using SQL, you can use this comprehensive SQL guide for beginners – SQL Crash Course for Beginners

Usage for each database

Now, let’s dive into the crux of the argument whereby we explore the cases where SQL databases work best and cases where NoSQL databases shine.

SQL databases excel in scenarios that require:

  • Complex transactions with strict consistency requirements, such as financial systems or e-commerce platforms.
  • Applications that heavily rely on relational data models, with interconnected data that necessitate robust integrity and relational operations.

NoSQL databases are well-suited for:

  • Big data analytics and real-time streaming applications demand high scalability and performance.
  • Content management systems, social media platforms, and IoT applications handle diverse and unstructured data types.
  • Applications requiring rapid prototyping and agile development due to their schema flexibility.

Real-world examples highlight the versatility of SQL and NoSQL databases. SQL databases power major banking systems, airline reservation systems, and enterprise resource planning (ERP) solutions. NoSQL databases are commonly used by social media platforms like Facebook and Twitter, as well as streaming services like Netflix and Spotify.

Factors to Consider

Choosing between SQL and NoSQL databases can be a daunting task. With each option offering its own unique set of advantages, it’s important to consider several key factors before making a decision. These factors will help guide you towards the right database that aligns with your project’s requirements. 

  • Data structure: Evaluate whether your data has a well-defined structure and follows a relational model or if it is dynamic and unstructured.
  • Scalability requirements: Consider the expected growth and scalability needs of your application. Determine if horizontal scalability through techniques like sharding and replication is crucial.
  • Consistency requirements: Assess the level of consistency needed for your application. Determine if strong consistency or eventual consistency is more suitable.
  • Development flexibility: Evaluate the flexibility required to adapt to changing data structures. Consider whether a rigid schema or schema flexibility is more important for your project.
  • Integration requirements: Assess the compatibility of the database with your existing infrastructure and tools. Consider factors such as support for APIs, data connectors, and integration capabilities.


In the SQL vs. NoSQL debate, there is no one-size-fits-all answer. Each database type offers unique benefits and is suited for different use cases. Understanding your specific requirements, such as data structure, scalability, consistency, and development flexibility, is crucial in making an informed decision.

Recapitulating the main points discussed, SQL databases provide strong consistency, ACID compliance, and robust query capabilities, making them ideal for transactional systems. NoSQL databases offer scalability, flexibility with unstructured data, and high performance, making them well-suited for big data, real-time analytics, and applications with evolving data requirements.

Ultimately, it is encouraged to thoroughly evaluate your needs, consider the factors mentioned, and choose the appropriate database solution that aligns with your project’s objectives and requirements. In some cases, a hybrid approach combining SQL and NoSQL databases may be suitable to leverage the strengths of both worlds and cater to specific use cases.


July 12, 2023

SQL (Structured Query Language) is an important tool for data scientists. It is a programming language used to manipulate data stored in relational databases. Mastering SQL concepts allows a data scientist to quickly analyze large amounts of data and make decisions based on their findings. Here are some essential SQL concepts that every data scientist should know:

First, understanding the syntax of SQL statements is essential in order to retrieve, modify or delete information from databases. For example, statements like SELECT and WHERE can be used to identify specific columns and rows within the database that need attention. A good knowledge of these commands can help a data scientist perform complex operations with ease.

Second, developing an understanding of database relationships such as one-to-one or many-to-many is also important for a data scientist working with SQL.

Here’s an interesting read about Top 10 SQL commands

Let’s dive into some of the key SQL concepts that are important to learn for a data scientist.  

1. Formatting Strings

We are all aware that cleaning up the raw data is necessary to improve productivity overall and produce high-quality decisions. In this case, string formatting is crucial and entails editing the strings to remove superfluous information. For transforming and manipulating strings, SQL provides a large variety of string methods. When combining two or more strings, CONCAT is utilized. The user-defined values that are frequently required in data science can be substituted for the null values using COALESCE. Tiffany Payne  

2. Stored Methods

We can save several SQL statements in our database for later use thanks to stored procedures. When invoked, it allows for reusability and has the ability to accept argument values. It improves performance and makes modifications simpler to implement. For instance, we’re attempting to identify all A-graded students with majors in data science. Keep in mind that CREATE PROCEDURE must be invoked using EXEC in order to be executed, exactly like the function definition. Paul Somerville 

3. Joins

Based on the logical relationship between the tables, SQL joins are used to merge the rows from various tables. In an inner join, only the rows from both tables that satisfy the specified criteria are displayed. In terms of vocabulary, it can be described as an intersection. The list of pupils who have signed up for sports is returned. Sports ID and Student registration ID are identical, please take note. Left Join returns every record from the LEFT table, while Right Join only shows the matching entries from the RIGHT table. Hamza Usmani 

4. Subqueries

Knowing how to utilize subqueries is crucial for data scientists because they frequently work with several tables and can use the results of one query to further limit the data in the primary query. The nested or inner query is another name for it. The subquery is conducted before the main query and needs to be surrounded in parenthesis. It is referred to as a multi-line subquery and requires the use of multi-line operators if it returns more than one row. Tiffany Payne 

5. Left Joins vs Inner Joins

It’s easy to confuse left joins and inner joins, especially for those who are still getting their feet wet with SQL or haven’t touched the language in a while. Make sure that you have a complete understanding of how the various joins produce unique outputs. You will likely be asked to do some kind of join in a significant number of interview questions, and in certain instances, the difference between a correct response and an incorrect one will depend on which option you pick. Tom Miller 

6. Manipulation of dates and times

There will most likely be some kind of SQL query using date-time data, and you should prepare for it. For instance, one of your tasks can be to organize the data into groups according to the months or to change the format of a variable from DD-MM-YYYY to only the month. You should be familiar with the following functions:


Olivia Tonks 

7. Procedural Data Storage 

Using stored procedures, we can compile a series of SQL commands into a single object in the database and call it whenever we need it. It allows for reusability and when invoked, can take in values for its parameters. It improves efficiency and makes it simple to implement new features. Using this method, we can identify the students with the highest GPAs who have declared a particular major. One goal is to identify all A-students whose major is Data Science. It’s important to remember that, like a function declaration, calling a CREATE PROCEDURE with EXEC is necessary for the procedure to be executed. Nely Mihaylova 

8. Connecting SQL to Python or R 

A developer who is fluent in a statistical language, like Python or R, may quickly and easily use the packages of
language to construct machine learning models on a massive dataset stored in a relational database management system. A programmer’s employment prospects will improve dramatically if they are fluent in both these statistical languages and SQL. Data analysis, dataset preparation, interactive visualizations, and more may all be accomplished in SQL Server with the help of Python or R. Rene Delgado  

9. Features of windows

In order to apply aggregate and ranking functions over a specific window, window functions are used (set of rows). When defining a window with a function, the OVER clause is utilized. The OVER clause serves dual purposes:

– Separates rows into groups (PARTITION BY clause is used).
– Sorts the rows inside those partitions into a specified order (ORDER BY clause is used).
– Aggregate window functions refer to the application of aggregate
functions like SUM(), COUNT(), AVERAGE(), MAX(), and MIN() over a specific window (set of rows). Tom Hamilton Stubber  

10. The emergence of Quantum ML

With the use of quantum computing, more advanced artificial intelligence and machine learning models might be created. Despite the fact that true quantum computing is still a long way off, things are starting to shift as a result of the cloud-based quantum computing tools and simulations provided by Microsoft, Amazon, and IBM. Combining ML and quantum computing has the potential to greatly benefit enterprises by enabling them to take on problems that are currently insurmountable. Steve Pogson 

11. Predicates

Predicates occur from your WHERE, HAVING, and JOIN clauses. They limit the amount of data that has to be processed to run your query. If you say SELECT DISTINCT customer_name FROM customers WHERE signup_date = TODAY() that’s probably a much smaller query than if you run it without the WHERE clause because, without it, we’re selecting every customer that ever signed up!

Data science sometimes involves some big datasets. Without good predicates, your queries will take forever and cost a ton on the infra bill! Different data warehouses are designed differently, and data architects and engineers make different decisions about to lay out the data for the best performance. Knowing the basics of your data warehouse, and how the tables you’re using are laid out, will help you write good predicates that save your company a lot of money during the year, and just as importantly, make your queries run much faster.

For example, a query that runs quickly but simply touches a huge amount of data in Bigquery can be really expensive if you’re using on-demand pricing which scales with the amount of data touched by the query. The same query can be really cheap if you’re using Bigquery’s Flat-rate pricing or Snowflake, both of which are affected by how long your query takes to run, not how much data is fed into it. Kyle Kirwan 

12. Query Syntax

This is what makes SQL so powerful and much easier than coding individual statements for every task we want to complete when extracting data from a database. Every query starts with one or more clauses such as SELECT, FROM, or WHERE – each clause gives us different capabilities; SELECT allows us to define which columns we’d like returned in the results set; FROM indicates which table name(s) we should get our data from; WHERE allows us to specify conditions that rows must meet for them to be included in our result set etcetera! Understanding how all these clauses work together will help you write more effective and efficient queries quickly, allowing you to do better analysis faster! John Smith 

Elevate your business with essential SQL concepts 

AI and machine learning, which have been rapidly emerging, are quickly becoming one of the top trends in technology. Developments in AI and machine learning are being seen all over the world, from big businesses to small startups.

Businesses utilizing these two technologies are able to create smarter systems for their customers and employees, allowing them to make better decisions faster.

These advancements in artificial intelligence and machine learning are helping companies reach new heights with their products or services by providing them with more data to help inform decision-making processes.

Additionally, AI and machine learning can be used to automate mundane tasks that take up valuable time. This could mean more efficient customer service or even automated marketing campaigns that drive sales growth through
real-time analysis of consumer behavior. Rajesh Namase

April 25, 2023

As data-driven decision-making gains popularity, more tech graduates are learning data science to enter the job market. While Python and R are popular for analysis and machine learning, SQL and database management are often overlooked.

However, data is typically stored in databases and requires SQL or business intelligence tools for access. In this guide, we provide a comprehensive overview of various types of databases and their differences.

Through this guide, we give you a larger picture to get started with your database journey. So, if you are a beginner with no prior experience, this guide is a must-read for you 

What is a database? 

Databases are used to store and organize large amounts of data in a structured way. They are designed to manage and handle large volumes of information efficiently and effectively, making it easy to retrieve, update, and delete data as needed.

In simple terms, it is a collection of data that is organized in a specific way, making it easy to search, sort, and analyze. It is like a digital filing cabinet, where information is stored and accessed by different users, applications, or systems.

There are various types of databases, such as relational, NoSQL, and object-oriented, each with its own unique characteristics and applications. However, the core purpose of any database is to provide a centralized and secure location for storing and managing data, ensuring data consistency and accuracy, and making it accessible to authorized users or applications.

Understanding databases
Understanding databases

Types of databases

There are several types of databases that are used for different purposes. The main types of databases include:

1. Relational databases:

A relational database is the most common type of database used today. It stores data in tables that are related to each other through keys. Each table in a relational database has a unique primary key, which is used to link it to other tables. They use Structured Query Language (SQL) for managing and querying data. Some popular examples of relational databases are Oracle, Microsoft SQL Server, MySQL, and PostgreSQL.

2. NoSQL databases

NoSQL databases are used for unstructured and semi-structured data. They do not use tables, rows, and columns like relational databases. Instead, they store data in a flexible format, such as key-value pairs, document-based, or graph-based. NoSQL are commonly used in big data and real-time applications. Some popular examples of NoSQL databases are MongoDB, Cassandra, and Couchbase.

3. Object-oriented databases

Object-oriented databases store data in objects, which are similar to the objects used in object-oriented programming languages like Java and C#. They allow for complex data relationships and provide a more natural way of storing data for object-oriented applications. They are commonly used in computer-aided design, web development, and artificial intelligence. Some popular examples of object-oriented databases are ObjectDB and db4o.

4. Hierarchical databases

Hierarchical databases organize data in a tree-like structure, with each record having one parent record and many child records. They are suitable for storing data with a fixed and predictable structure. These were popular in the past, but they have been largely replaced by other types of databases. IBM Information Management System (IMS) is a popular example of a hierarchical database.

5. Network databases

Network databases are similar to hierarchical databases, but they allow for more complex relationships between records. In a network database, each record can have multiple parent and child records. They are suitable for storing data with a complex structure that cannot be easily represented in a hierarchical database. They are not widely used today, but some examples include Integrated Data Stores (IDS) and CA-IDMS.

What is RDBMS?

RDBMS stands for Relational Database Management System. It is defined as a type of database management system that is based on the relational model. In an RDBMS, data is organized into tables and relationships between tables, allowing for easy retrieval and manipulation of the information. The most popular RDBMSs include MySQL, Oracle, PostgreSQL, SQL Server, and SQLite. 

  1. MySQLMySQL is an open-source RDBMS that is widely used for web-based applications. It is known for its high performance, reliability, and ease of use. MySQL is compatible with a wide range of operating systems, including Windows, Linux, and macOS.
  2. OracleOracle is a commercial RDBMS that is widely used in enterprise environments. It is known for its high performance, scalability, and security. Oracle is compatible with a wide range of operating systems, including Windows, Linux, and Solaris. 
  3. PostgreSQLPostgreSQL is an open-source RDBMS known for its advanced features, such as support for complex data types, concurrency control, and full-text search. It is widely used in data warehousing, business intelligence, and scientific applications.
  4. SQL ServerSQL Server is a commercial RDBMS developed and maintained by Microsoft. It is known for its high performance, scalability, and security. SQL Server is compatible with Windows operating system only. 
  5. SQLiteSQLite is a small, lightweight RDBMS that is embedded into the application. It is known for its high performance, reliability, and ease of use. SQLite is compatible with a wide range of operating systems, including Windows, Linux, and macOS.

Database design

Designing a database is a critical step in creating a functional and efficient database system. It involves creating a structure that will organize the data and enable efficient storage, retrieval, and manipulation. The following are the key components of design:

Designing a database

Designing a database involves identifying the data that needs to be stored and organizing it into tables that are related to each other. The tables should be designed in a way that minimizes redundancy and ensures data consistency.

Entity-relationship diagrams (ERD)

An entity-relationship diagram (ERD) is a visual representation of the its structure. It shows the tables, their relationships, and the attributes that are stored in each table. ERDs are essential as they provide a clear and concise view of the database structure.


Normalization is the process of organizing data in a database to minimize redundancy and ensure data consistency. It involves breaking down large tables into smaller, more manageable tables that are related to each other. Normalization helps to eliminate data redundancy and ensures that each table contains only the data that is relevant to it.

There are several levels of normalization, with each level building upon the previous level. The most common levels of normalization are:

  1. First Normal Form (1NF)
  2. Second Normal Form (2NF)
  3. Third Normal Form (3NF)
  4. Boyce-Codd Normal Form (BCNF)

Normalization is an important aspect of design as it helps to minimize data redundancy, ensure data consistency, and improve its performance.

What is SQL?

SQL is used to manage and manipulate databases. Whether you are a beginner or a seasoned developer, understanding the basics of this programming language is essential for anyone working with data.  

Types of SQL commands 

First, let us talk about the several types of SQL commands. SQL commands are grouped into four main categories:  

1. Data definition language (DDL) – DDL commands are used to create and modify a database’s structure, such as creating tables, altering table structures, and deleting tables. Some examples of DDL commands include CREATE, ALTER, and DROP. 

2. Data manipulation language (DML) – DML commands are used to manipulate the data within a database. These commands include SELECT, INSERT, UPDATE, and DELETE.  

3. Data control language (DCL) – DCL commands are used to manage access such as granting and revoking permissions. Examples of DCL commands include GRANT and REVOKE. 

4. Data query language (DQL) – Primarily, DQL commands are used to query the data. Most used commands include SELECT which are used to retrieve data from a table. 

Difference between SQL and NoSQL 

One of the main differences between SQL and NoSQL databases is how they store and retrieve data. SQL databases use tables and rows to store the data, while NoSQL databases use documents, collections, or key-value pairs. SQL databases are better suited for structured data, while NoSQL databases are better suited for unstructured data. 

Another difference between SQL and NoSQL databases is the way they handle scalability. As these databases are vertically scalable, SQL databases can handle more load by adding more resources to the same server. NoSQL databases are horizontally scalable and can handle the additional load by adding more servers. 

Interested in learning more about data science? We have you covered. Click on this link to learn more about free Data Science crash courses to help you succeed. 


In conclusion, this guide provides a comprehensive overview of various types and their differences, including relational, non-relational, object-oriented, hierarchical, and network databases. Designing a database is a critical step in creating a functional and efficient database system. By understanding the types and their unique features, you can choose the right database for your specific use case and design one that meets your data management needs.

April 6, 2023

As the amount of data being generated and stored by companies and organizations continue to grow, the ability to effectively manage and manipulate this data using databases has become increasingly important for developers. Among the plethora of programming languages, we have SQL. Also known as Structured Query Language, SQL is a programming language widely used for managing data stored in relational databases.

SQL commands enable developers to perform a wide range of tasks such as creating tables, inserting, modifying data, retrieving data, searching databases, and much more. In this guide, we will highlight the top basic SQL commands that every developer should be familiar with. 

What is SQL?

For the unversed, the programming language SQL is primarily used to manage and manipulate data in relational databases. Relational databases are a type of database that organizes data into tables with rows and columns, like a spreadsheet. SQL is used to create, modify, and query these tables and the data stored in them. 


With SQL commands, developers can create tables and other database objects, insert and update data, delete data, and retrieve data from the database using SELECT statements. Developers can also use SQL to create, modify and manage indexes, which are used to improve the performance of database queries.

The language is used by many popular relational database management systems such as MySQL, PostgreSQL, and Microsoft SQL Server. While the syntax of SQL commands may vary slightly between different database management systems, the basic concepts are consistent across most implementations. 

Types of SQL Commands 

There are several types of SQL commands that are commonly used in relational databases, each with a specific purpose and function. Some of the most used SQL commands include: 

  1. Data Definition Language (DDL) commands: These commands are used to define the structure of a database, including tables, columns, and constraints. Examples of DDL commands include CREATE, ALTER, and DROP.
  2. Data Manipulation Language (DML) commands: These commands are used to manipulate data within a database. Examples of DML commands include SELECT, INSERT, UPDATE, and DELETE.
  3. Data Control Language (DCL) commands: These commands are used to control access to the database. Examples of DCL commands include GRANT and REVOKE.
  4. Transaction Control Language (TCL) commands: These commands are used to control transactions in the database. Examples of TCL commands include COMMIT and ROLLBACK.

Essential SQL commands

There are several essential SQL commands that you should know in order to work effectively with databases. Here are some of the most important SQL commands to learn:


The CREATE statement is used to create a new table, view, or another database object. The basic syntax of a CREATE TABLE statement is as follows: 

The statement starts with the keyword CREATE, followed by the type of object you want to create (in this case, TABLE), and the name of the new object you’re creating (in place of “table_name”). Then you specify the columns of the table and their data types.

For example, if you wanted to create a table called “customers” with columns for ID, first name, last name, and email address, the CREATE TABLE statement might look like this:

This statement would create a table called “customers” with columns for ID, first name, last name, and email address, with their respective data types specified. The ID column is also set as the primary key for the table.


Used on one of multiple tables, the SELECT statement Is used to retrieve data. The basic syntax of a SELECT statement is as follows: 

The SELECT statement starts with the keyword SELECT, followed by a list of the columns you want to retrieve. You then specify the table or tables from which you want to retrieve the data, using the FROM clause. You can also use the JOIN clause to combine data from two or more tables based on a related column.

You can use the WHERE clause to filter the results of a query based on one or more conditions. Programmers can also use GROUP BY to manage the results by one or multiple columns. The HAVING clause is used to filter the groups based on a condition while the ORDER BY clause can be used to sort the results by one or more columns.  


INSERT is used to add new data to a table in a database. The basic syntax of an INSERT statement is as follows: 

INSERT is used to add data to a specific table and begins with the keywords INSERT INTO, followed by the name of the table where the data will be inserted. You then specify the names of the columns in which you want to insert the data, enclosed in parentheses. You then specify the values you want to insert, enclosed in parentheses, and separated by commas. 


Another common SQL command is the UPDATE statement. It is used to modify existing data in a table in a database. The basic syntax of an UPDATE statement is as follows: 

The UPDATE statement starts with the keyword UPDATE, followed by the name of the table you want to update. You then specify the new values for one or more columns using the SET clause and use the WHERE clause to specify which rows to update. 


Next up, we have another SQL command DELETE which is used to delete data from a table in a database. The basic syntax of a DELETE statement is as follows: 

In the above-mentioned code snippet, the statement begins with the keyword DELETE FROM. Then, we add the table name from which data must be deleted. You then use the WHERE clause to specify which rows to delete. 


The ALTER command in SQL is used to modify an existing table, database, or other database objects. It can be used to add, modify, or delete columns, constraints, or indexes from a table, or to change the name or other properties of a table, database, or another object. Here is an example of using the ALTER command to add a new column to a table called “tablename1”: 

In this example, the ALTER TABLE command is used to modify the “users” table. The ADD keyword is used to indicate that a new column is being added, and the column is called “email” and has a data type of VARCHAR with a maximum length of 50 characters. 


The DROP command in SQL is used to delete a table, database, or other database objects. When a table, database, or other object is dropped, all the data and structure associated with it is permanently removed and cannot be recovered. So, it is important to be careful when using this command. Here is an example of using the DROP command to delete a table called ” tablename1″: 

In this example, the DROP TABLE command is used to delete the ” tablename1″ table from the database. Once the table is dropped, all the data and structure associated with it are permanently removed and cannot be recovered. It is also possible to use the DROP command to delete a database, an index, a view, a trigger, a constraint, and a sequence using a similar syntax as above by replacing the table with the corresponding keyword. 


The SQL TRUNCATE command is used to delete all the data from a table. Simultaneously, this command also resets the auto-incrementing counter. Since it is a DDL operation, it is much faster than DELETE and does not generate undo logs, and does not fire any triggers associated with the table. Here is an example of using the TRUNCATE command to delete all data from a table called “customers”: 

In this example, the TRUNCATE TABLE command is used to delete all data from the “customers” table. Once the command is executed, the table will be empty, and the auto-incrementing counter will be reset. It is important to note that the TRUNCATE statement is not a substitute for the DELETE statement, TRUNCATE can only be used on tables and not on views or other database objects. 


The SQL INDEX command is used to create or drop indexes on one or more columns of a table. An index is a data structure that improves the speed of data retrieval operations on a table at the cost of slower data modification operations. Here is an example of using the CREATE INDEX command to create a new index on a table called ” tablename1″ on the column “first_name”: 

In this example, the CREATE INDEX command is used to create a new index called “idx_first_name” on the column “first_name” of the ” tablename1″ table. This index will improve the performance of queries that filter, or sort data based on the “first_name” column. 


Finally, we have a JOIN command that is primarily used to combine rows from two or more tables based on a related column between them.  It allows you to query data from multiple tables as if they were a single table. It is used for retrieving data that is spread across multiple tables, or for creating more complex reports and analyses.  

INNER JOIN – By implementing INNER JOIN, the database only returns/displays the rows that have matching values in both tables. For example, 

LEFT JOIN – LEFT JOIN command returns all rows from the left table. It also returns possible matching rows from the right table. If there is no match, NULL values will be returned for the right table’s columns. For example, 

RIGHT JOIN – In the RIGHT JOIN, the database returns all rows from the right table and possible matching rows from the left table. In case there is no match, NULL values will be returned for the left table’s columns. 

FULL OUTER JOIN – This type of JOIN returns all rows from both tables and any matching rows from both tables. If there is no match, NULL values will be returned for the non-matching columns. 

CROSS JOIN – This type of JOIN returns the Cartesian product of both tables, meaning it returns all combinations of rows from both tables. This can be useful for creating a matrix of data but can be slow and resource-intensive with large tables. 

Furthermore, it is also possible to use JOINs with subqueries and add ON or USING clauses to specify the columns that one wants to join.

Bottom line 

In conclusion, SQL is a powerful tool for managing and retrieving data in a relational database. The commands covered in this blog, SELECT, INSERT, UPDATE, and DELETE, are some of the most used in SQL commands and provide the foundation for performing a wide range of operations on a database. Understanding these commands is essential for anyone working with SQL commands and relational databases.

With practice and experience, you will become more proficient in using these commands and be able to create more complex queries to meet your specific needs. 



March 10, 2023

Azure Synapse provides a unified platform to ingest, explore, prepare, transform, manage, and serve data for BI (Business Intelligence) and machine learning needs.


Introduction to SQL pools

Dedicated SQL pools offer fast and reliable data import and analysis, allowing businesses to access accurate insights while optimizing performance and reducing costs. DWUs (Data Warehouse Units) can customize resources and optimize performance and costs. In this blog, we will explore how to optimize performance and reduce costs when using dedicated SQL pools in Azure Synapse Analytics. 


Azure cloud storage
Azure storage

Loading data

When loading data, it is best to use PolyBase for substantial amounts of data or when speed is a priority. PolyBase is a feature that allows you to query and load data from different data sources, like Azure Blob Storage. This makes it optimal for handling large amounts of data or when speed is a priority.

Additionally, using a heap table for temporary data can improve loading speed. A heap table is a temporary table that only exists for a session and is useful when loading data to stage it before running more transformations. 


Clustered column store index

When loading data to a clustered column store table, creating a clustered column store index is essential for query performance. A clustered column store index is created on a table with a clustered column store architecture.  It is a highly compressed and in-memory storage format that stores each column of data separately, resulting in faster query processing and superior query performance. This helps to improve query performance by allowing the database engine to retrieve the required data pages more quickly. 


Managing compute costs

Managing computer costs is also important when working with dedicated SQL pools. One way to do this is by pausing and scaling the dedicated SQL pool. This allows you to only pay for the resources you need and can help you avoid unnecessary expenses. Additionally, using the appropriate resource class can improve query performance.

SQL pools use resource groups to allocate memory to queries. Initially, all users are assigned to the small resource class, which grants 100 MB of memory per distribution. However, more significant memory allocations will benefit certain queries, like large joins or loads to clustered column store tables. 


Maintaining statistics and performance tuning

To ensure optimal performance, it is essential to keep statistics updated when using dedicated SQL pools. The quality of the query plans generated by the optimizer depends on the accuracy of the statistics, so it is necessary to make sure statistics on columns used in queries are current. Performance tuning is another crucial aspect of working with dedicated SQL pools.

One way to improve query performance is using materialized views, ordered clustered column store index, and result set caching. Additionally, it is a good practice to group INSERT statements into batches to optimize large amounts of data loading. 


Hash distributes large tables and partitioning data

When using dedicated SQL pools, it is recommended to hash-distribute large tables instead of relying on the default Round Robin distribution. It is also important to be mindful when partitioning data, as too many partitions can impact performance negatively. Partitioning can be beneficial for managing data through partition switching or optimizing scans, but it should be done carefully. 



In conclusion, working with dedicated SQL pools in Azure Synapse Analytics requires a comprehensive understanding of best practices for loading data, managing compute costs, utilizing PolyBase, maintaining statistics, performance tuning, hash distributing large tables, and partitioning data.

By following these best practices, you can achieve optimal performance and reduce costs with your dedicated SQL pools in Azure Synapse Analytics. It is important to remember that Azure Synapse Analytics is a complex platform. These best practices will help you in your data processing and analytics journey.   

February 1, 2023

Data science tools are becoming increasingly popular as the demand for data scientists increases. However, with so many different tools, knowing which ones to learn can be challenging

In this blog post, we will discuss the top 7 data science tools that you must learn. These tools will help you analyze and understand data better, which is essential for any data scientist.

So, without further ado, let’s get started!

List of 7 data science tools 

There are many tools a data scientist must learn, but these are the top 7:

Top 7 data science tools - Data Science Dojo
Top 7 data science tools you must learn
  • Python
  • R Programming
  • SQL
  • Java
  • Apache Spark
  • Tensorflow
  • Git

And now, let me share about each of them in greater detail!

1. Python

Python is a popular programming language that is widely used in data science. It is easy to learn and has many libraries that can be used to analyze data, machine learning, and deep learning.

It has many features that make it attractive for data science: An intuitive syntax, rich libraries, and an active community.

Python is also one of the most popular languages on GitHub, a platform where developers share their code.

Therefore, if you want to learn data science, you must learn Python!

There are several ways you can learn Python:

  • Take an online course: There are many online courses that you can take to learn Python. I recommend taking several introductory courses to familiarize yourself with the basic concepts.


PRO TIP: Join our 5-day instructor-led Python for Data Science training to enhance your deep learning skills.


  • Read a book: You can also pick up a guidebook to learning data science. They’re usually highly condensed with all the information you need to get started with Python programming.
  • Join a Boot Camp: Boot camps are intense, immersive programs that will teach you Python in a short amount of time.


Whichever way you learn Python, make sure you make an effort to master the language. It will be one of the essential tools for your data science career.

2. R Programming

R is another popular programming language that is highly used among statisticians and data scientists. They typically use R for statistical analysis, data visualization, and machine learning.

R has many features that make it attractive for data science:

  • A wide range of packages
  • An active community
  • Great tools for data visualization (ggplot2)

These features make it perfect for scientific research!

In my experience with using R as a healthcare data analyst and data scientist, I enjoyed using packages like ggplot2 and tidyverse to work on healthcare and biological data too!

If you’re going to learn data science with a strong focus on statistics, then you need to learn R.

To learn R, consider working on a data mining project or taking a certificate in data analytics.


3. SQL

SQL (Structured Query Language) is a database query language used to store, manipulate, and retrieve data from data sources. It is an essential tool for data scientists because it allows them to work with databases.

SQL has many features that make it attractive for data science: it is easy to learn, can be used to query large databases, and is widely used in industry.

If you want to learn data science involving big data sets, then you need to learn SQL. SQL is also commonly used among data analysts if that’s a career you’re also considering exploring.

There are several ways you can learn SQL:

  • Take an online course: There are plenty of SQL courses online. I’d pick one or two of them to start with
  • Work on a simple SQL project
  • Watch YouTube tutorials
  • Do SQL coding questions


4. Java

Java is another programming language to learn as a data scientist. Java can be used for data processing, analysis, and NLP (Natural Language Processing).

Java has many features that make it attractive for data science: it is easy to learn, can be used to develop scalable applications, and has a wide range of frameworks commonly used in data science. Some popular frameworks include Hadoop and Kafka.

There are several ways you can learn Java:


5. Apache Spark

Apache Spark is a powerful big data processing tool that is used for data analysis, machine learning, and streaming. It is an open-source project that was originally developed at UC Berkeley’s AMPLab.

Apache Spark is known for its uses in large-scale data analytics, where data scientists can run machine learning on single-node clusters and machines.

Spark has many features made for data science:

  • It can process large datasets quickly
  • It supports multiple programming languages
  • It has high scalability
  • It has a wide range of libraries

If you want to learn big data science, then Apache Spark is a must-learn. Consider taking an online course or watching a webinar on big data to get started.


6. Tensorflow

TensorFlow is a powerful toolkit for machine learning developed by Google. It allows you to build and train complex models quickly.

Some ways TensorFlow is useful for data science:

  • Provides a platform for data automation
  • Model monitoring
  • Model training

Many data scientists use TensorFlow with Python to develop machine learning models. TensorFlow helps them to build complex models quickly and easily.

If you’re interested to learn TensorFlow, do consider these ways:

  • Read the official documentation
  • Complete online courses
  • Attend a TensorFlow meetup

However, to learn and practice your Tensorflow skills, you’ll need to pick up decent deep learning hardware to support the running of your algorithms.


7. Git

Git is a version control system used to track code changes. It is an essential tool for data scientists because it allows them to work on projects collaboratively and keep track of their work.

Git is useful in data science for:

If you’re planning to enter data science, Git is a must-know tool! Since you’ll be coding a lot in Python/R/Java, you’ll want to master Git to work with your team well in a collaborative coding environment.

Git is also an essential part of using GitHub, a code repository platform used by many data scientists.

To learn Git, I’d recommend just watching simple tutorials on YouTube.

Final thoughts

And these are the top seven data science tools that you must learn!

The most important thing is to get started and keep upskilling yourself! There is no one-size-fits-all solution in data science, so find the tools that work best for you and your team and start learning.

I hope this blog post has been helpful in your journey to becoming a data scientist. Happy learning!


September 22, 2022

Data Science is a hot topic in the job market these days. What are some of the best places for Data Scientists and Engineers to work in?

To be honest, there has never been a better time than today to learn data science. The job landscape is quite promising, opportunities span multiple industries, and the nature of the job often allows for remote work flexibility and even self-employment. The following post emphasizes the top cities across the globe with the highest pay packages for data scientists.

Industries across the globe keep diversifying on a constant basis. With technology reaching new heights and a majority of the population having unlimited access to an internet connection, there is no denying the fact that big data and data analytics have started gaining momentum over the years.

Demand for data analytics professionals currently outweighs supply, meaning that companies are willing to pay a premium to fill their open job positions. Further below, I would like to mention certain skills required for a job in data analytics.


Being one of the most used programming languages, Python has a solid understanding of how it can be used for data analytics. Even if it’s not a required skill, knowledge and understanding of Python will give you an upper hand when showing future employers the value that you can bring to their companies. Just make sure you learn how to manipulate and analyze data, understand the concept of web scraping and data collection, and start building web applications.

SQL (Structured Query Language)

Like Python, SQL is a relatively easy language to start learning. Even if you are just getting started, a little SQL experience goes a long way. This will give you the confidence to navigate large databases, and obtain and work with the data you need for your projects. You can always seek out opportunities to continue learning once you get your first job.

Data visualization

Regardless of the career path, you are looking into, it is crucial to visualize and communicate insights related to your company’s services, and is a valuable skill set that will capture the attention of employers. Data scientists are a bit like data translators for other people who exactly know what conclusions to draw from their datasets.

Best opportunities for a data scientist

Have a look at cities across the globe that offer the best opportunities for the position of a data scientist. The order of the cities does not represent any type of rank.

salary graph
Average Salary of a Data Scientist in US Dollars
  1. San Jose, California – Have you ever dreamed about working in Silicon Valley? Who hasn’t? It’s the dream destination of any tech enthusiast and an emerging hot spot for data scientists all across the globe. Being an international headquarters and main offices of the majority of American tech corporations, it offers a plethora of job opportunities and high pay. It may interest you to know that the average salary of a chief data scientist is estimated to be $132,355 per year.
  2. Bengaluru, India – Second city on the list is Bengaluru, India. The analytics market is touted to be the best in the country, with the state government, analytics startups, and tech giants contributing substantially to the overall development of the sector. The average salary is estimated to be ₹ 12 lakh per annum ($17,240.40).
  3. Berlin, Germany – If we look at other European countries, Germany is home to some of the finest automakers and manufacturers. Although, the country isn’t much explored for newer and better opportunities in the field of data science, it seems to be expanding its portfolio day in and day out. If you are a data scientist, you may earn around €11,000, but if you are a chief data scientist, you will not be earning less than €114,155.
  4. Geneva, Switzerland – If you are seeking one of the highest paying cities in this beautiful paradise; it is Geneva. Call yourself fortunate, if you happen to land a position as a data scientist. The mean salary of a researcher starts at 180,000 Swiss Fr, and a chief data scientist can earn as much as 200,000 Swiss Fr with an average bonus ranging between 9,650-18,000 Swiss Fr.
  5. London, United Kingdom – One of the top destinations in Europe that offers high-paying and reputable jobs in London. UK government seems to rely on technologies day in and day out, due to which the number of opportunities in the field has gone up substantially, with the average salary of a Data Scientist being £61,543.

I also included the average data scientist salaries from the 20 largest cities around the world in 2019:

  1. Tokyo, Japan: $56,783
  2. New York City, USA: $115,815
  3. Mexico City, Mexico: $32,487
  4. Sao Paolo, Brazil: $45,891
  5. Los Angeles, USA: $120,179
  6. Shanghai, China: $66,014
  7. Mumbai, India: $29,695
  8. Seoul, South Korea: $45,993
  9. Osaka, Japan $54,417
  10. London, UK: $56,820
  11. Lagos, Nigeria: $48,771
  12. Calcutta, India: $7,423
  13. Buenos Aires, Argentina: $40,512
  14. Paris, France: $37,861
  15. Rio de Janeiro, Brazil: $54,191
  16. Karachi, Pakistan: $6,453
  17. Delhi, India: $20,621
  18. Manila, Philippines: $47,414
  19. Istanbul, Turkey: $30,210
  20. Beijing, China: $72,801
June 14, 2022

Related Topics

Machine Learning
Generative AI
Data Visualization
Data Security
Data Science
Data Engineering
Data Analytics
Computer Vision
Artificial Intelligence