What do SQL developers do, and why are they so vital to many organizations?
SQL, usually pronounced like “sequel,” is a language for manipulating relational databases. A relational database is a type of database that organizes data into tables (which are similar to spreadsheets, complete with rows and columns). The tables have column names, and each horizontal row holds one set of data. For example, you might have a table called ‘customer,’ and it might have columns ‘customer_id,’ ‘company_name,’ ‘contact_name,’ and ‘phone.’ You might then add rows of data to this table; the first might be customer_id of 1000, company name “Acme,” contact name “George Washington,” and phone 212-555-1212.
SQL is the language that you use for creating such tables, as well as adding, deleting, and updating existing data on them. The language itself was invented during the 1970s, became popular in the 1980s, and has persisted ever since. Different database products have been released over the decades since, and today there are a few that are the most popular, including Oracle Database, MySQL, PostgreSQL, and Microsoft SQL Server.
A SQL developer, in simplest terms, is a database engineer who specializes in configuring database servers, creating tables, and writing SQL code that manipulates the data. Additionally, the SQL developer might be responsible for such tasks as installing the database software and managing backups.
With all that in mind, let’s dig into the SQL developer career path!
SQL Developer: Which Skills Do You Need?
The SQL language has an official standards committee that SQL database servers conform to (more or less). The catch is that these database systems also include their own separate extensions to SQL to allow for more complex data manipulation via other programming languages.
If you want to become a SQL developer, you’ll need to first learn the base SQL language and master all its topics, including:
- Creating tables
- Querying data (which is fancy saying reading data from the tables)
- Updating existing data
- Deleting data
- Managing keys, which are columns that uniquely identify a particular row. (For example, no two customers should have the same customer ID. As such, the customer ID can be the column that uniquely identifies each row, and is therefore the key.)
- Managing relationships between tables. For example, you might have another table called ‘customer_order.’ Inside this table might be a column called ‘customer_id,’ referring back to the corresponding customer order. Within the ‘customer_order’ table, the ‘customer_id’ is referred to a foreign key.
- Querying complex data by joining together tables (such as getting every order but including the associated company name, contact name, and phone number along with each order item).
As you continue your understanding of SQL, you’ll need to expand your skills into advanced SQL topics. Fortunately, there are lots of training options available for these and other skills, which include:
- Levels of normalization: This refers to how far you break down your data into multiple tables with foreign keys.
- Optimizing queries: As queries become more complex, they can become slower and need to be optimized so they run faster.
- Creating functions and stored procedures: These are pieces of code that use the vendor-specific extensions to the SQL language. Pro tip: Learn the languages for the big four database servers mentioned earlier.
- Managing triggers: A trigger is some event that takes place resulting in the execution of some code. For example, the addition of an order might trigger code that increments a table keeping track of how many times orders have been added.
Next, here are some tools and concepts relating to the SQL software that you need to know:
- Table modeling: This refers to the knowledge and ability to create well-designed tables that are interconnected through foreign keys, so that they together represent something in the business. Together these models represent what is known as a schema. Modeling schemas is an important part of being a successful SQL Developer and requires a great deal of practice to perfect.
- Management tools: There are many tools to help you model and manage your data, and from there create SQL to send to the database servers. For example, MySQL includes a powerful tool called MySQL Workbench, whereby you can use a built-in drawing tool to draw rectangles representing the tables, and arrows representing their relationships. You can also run SQL code from within MySQL Workbench. You will want to become an expert at using these tools.
- Reporting tools: Integrated with most SQL servers are various reporting tools that let you create documents listing the data, often in PDF or HTML format. These reporting tools can be tricky to use, and sometimes even include their own programming language to help you describe the reports. For example, you might want a report that lists each customer, then a grid under each showing that customer’s individual orders, and finally a total at the bottom of how many orders this customer has, and another total that’s a dollar sum. Such a report requires pulling data from multiple tables, and then using reporting features to group the data by customer and provide the totals after each group.
Additional Skills for Career Advancement
SQL developers must work with their company’s infrastructure in ways that require them to learn things well beyond SQL and databases. As you advance in your career, learning about cybersecurity and other specializations can help you land new positions and higher salaries.
- Installation: In an ideal world, you would walk into a job where the SQL software is already installed. However, it’s more likely you’re the one they’ll be calling on to install them. These installations can be complicated. Practice learning how to install the Big Four and learn what the different options are; practice installing them on both Linux and Windows and, when available, Mac. Practice uninstalling and installing again with different options until you fully understand the options and are comfortable with them.
- Security: Learn how to create users on the Big Four, and how to set permissions for those users. Learn how to reset passwords.
- Security when running in production: The security you practice on a local machine is only good for development, testing, and practice. When you go live, you need to make sure your database is as secure as current best practices state. If an intruder breaks into your database, you’re going to be the one they point fingers at. Don’t let this happen!
- Sharding and replication: This is particularly important when installing your database servers in the cloud, or in an IT center with multiple computers. Sharding refers to a single table being divided up between multiple computers. For example, the rows for customers starting with A-M might be on one computer, and N-Z on another. Replication refers to each separate computer getting an entire copy of the entire table. Both require careful configuration up front.
- Managed databases in the cloud: While you can install the Big Four databases on servers you set up in a cloud, another option is available. AWS and Azure, for example, have managed database servers that greatly simplify the installation. These are called managed servers, and they include features such as auto-scaling where more servers can spin up automatically for replication based on need.
- Operational: Databases need to be backed up periodically. Most systems have different ways of running backups. Additionally, cloud services include different ways to store backups.
Teamwork Skills are Critical for Career Advancement
Typically, a SQL developer will work on a team with other data people, including data scientists and data analysts. You’ll need to learn basic data science and analysis concepts so you can work with such people; you’ll be the one building the tables storing the data, and they’ll be the ones retrieving that data in a form they need it in. As such, you’ll want to learn some data engineering and analysis skills. You don’t need to be an expert in these, but the more you know the better. Some skills to learn:
- ETL refers to Extract, Transform, and Load: This is how data analysts read the data, create new data from it, and then load that new data into new tables.
- OLAP (online analytical processing) and OLTP (online transaction processing): These are slightly older approaches that data analysts use for retrieving and processing data. The concepts provide the basis for more modern data analytics.
Additionally, you’ll be working with software developers who’ll be building apps that need to access the data through various programming languages such as Java, JavaScript, C#, and python. Do you need to learn these languages? Only enough to be able to read them and have a basic comprehension of them.
One thing to bear in mind is that these programming languages have different tools for accessing and manipulating SQL data. You might be the one who has to give the younger developers tips on using tools with names like Entity Framework (for C#) and Hibernate (for Java). While you don’t need to become an expert in these tools, you should know enough to answer basic questions from the junior software developers.
You’ll also want to understand some software development tools, including:
- Git and GitHub: These deal with source code control, which keeps track of changes to source code. Although typically used for code written in languages such as Java and the others mentioned, you may also need to store your SQL code in files that are tracked with Git and GitHub.
- Agile processes: Agile is an approach to quickly developing software. You’ll play a big part early on in the process while you’re modeling tables that the software developers will then use to build their apps around.
- Other databases known as “NoSQL”: Even though you’ll be a SQL developer, you may at times need to work with what are called non-relational databases. These take a radically different approach to storing and managing data. The main one people use today is called MongoDB. As a SQL developer, you may have to help model data in various NoSQL database systems. Others include CouchDB and AWS’s DynamoDB.
Conclusion
SQL Developers play a major part in both data analysis and software development. For data analysis, you’ll be modeling the data with SQL, and collecting the data into ways that the data analysts can use. For software development, you’ll be helping the developers model the data, which will in turn greatly affect how they build their software. This is an exciting role to be in, and there are plenty of job opportunities available and will be for many years to come.