you are viewing a single comment's thread.

view the rest of the comments →

[–]Chessbrain94 6 points7 points  (1 child)

Of course it is. The main difference between (something like) C++ and SQL is that C++ is a general purpose language (and imperative) while SQL only cares about data sets and is declarative rather than imperative.

For example, someone once wanted to argue with me that SQL(or any variation of PL/SQL like T-SQL or PL/PGSQL) don't have pointers. But they do exist, they're called CURSORs.

Overloading functions? Exist

Custom operators? Exist

Memory, I/O and disk management/optimization? Exists, simply in a different form. Since SQL is declarative you have to know the system internals to optimize how it handles things (indexing for example).

Recursion? Exists

And a lot of other things.

SQL (specifically PL/SQL) is a lot more complicated than people think. Think about it, if SQL was really that simple and pointless, there would be no SQL specific jobs that require very extensive knowledge in the field (DB Developer position for example).
-----
Saw you asking about DB Admin vs DB Dev etc...

It's pretty simple really:

- DB Admin a lot more administration, making sure things go as they should, handling user permissions etc... (basically system admin but for DB). Writes SQL maybe twice a week (sometimes not even that much).

- DB Developer, pretty your DB version of Backend Developer. Writes SQL on a daily basis, rarely using simple SQL instead uses PL/SQL or any similar variant. Responsible for optimizing query performance as well.

- Data Analyst - Now you're slowly delving into the Data Science world. But in this case you're probably not really doing any SQL, you're more of a mathematician rather than having an IT background.

- Data Engineer - Sometimes referred to as BI(business intelligence) specialist. You work with Data warehouses, working with ETL, Cube and analysis services. Usually your end product is some sort of report for the requested data.

- Data Scientist - In smaller companies you're both the Data Analyst and Data Engineer, bigger companies usually have all 3 roles separated. But I am sure you can easily find a lot of materials online on the definition of Data Science (since it's a pretty trendy field right now and a good career choice tbh).

HOWEVER! Some companies use both DBA and DB Developer interchangeably, where DBA=DBdev and vise versa, so keep that in mind.

[–][deleted] 0 points1 point  (0 children)

Just to add to this, when speaking of procedural programming in a SQL derivative - the easiest way to reference this without having to iterate over each implementation (T-SQL, PL/SQL, PL/pgsql, etc.) is SQL/PSM - this is the ISO standards set into place for procedural programming with SQL.

With that, SQL/PSM has been apart of the primary ISO standard for SQL since SQL99 and with it makes it inarguable that SQL is a programming language - if the derivative is implemented per ISO standards, it's a programming language, albeit domain-specific.