In your journey to becoming a great programmer, you will encounter those moments, when you doubt yourself, when you doubt in your skills and when you think that you can’t do the job, presented to you. You will face countless obstacles because, you want to develop a software that could potentially change the world.
In order to develop a great software, however, you need to trust in your skills, even when you don’t have that much knowledge and experience, believe you have them, because the situations that you are in, were made for you, and you for them. Those same difficult situations, will allow you to grow stronger as a programmer and help you achieve any programming ambitions you may have in your head, right now.
When you are faced, with that wall, know and understand that you have the capability, of climbing that wall, or breaking through that wall, to reach your goals, you just have to continue climbing and never give up.
In today’s article we are going to talk about a programming language that is used to manage your data, once it is stored in a data base.
Today we are going to talk about structured query language (SQL), and all the great things, which it can do for your programming skills, when you learn to master the features of this language.
When you use a relational management database system, you would use, SQL to manage your data.
Its “Query” functions are used, for searching data in a relational database, which you have set up to store up your data.
Sometimes, you may hear people call this programming language, SEQUEL, which stands for structured English query language, but this name has been replaced with SQL.
IBM designed SQL, in 1975, and it was introduced as a commercial database, by Oracle corporations.
SQL is many developer’s favorite language, for managing database systems, you can use it on minicomputers, mainframes and pc computers database systems.
When you are working with a complex system, it is always a good idea, that you get things right, at the beginning of your system set up.
Once you start working on an app, and your system is not set up the right way, you will find yourself starting all over again, because your programming environment has to be set up, to meet the requirement of the needs of the application you are developing.
If your system and the configuration on that system, is all jacked up, because you didn’t configure your system, right the first time, you will run into a lot of trouble, trying to develop your application, later during your development.
You may want to watch out for that, because starting over, with your development is not fun, so make sure that your system is configured right, the first time, before you jump into your programming phase.
Don’t get ahead of yourselves, or else you will have to start over, trust me, especially if you don’t know the system you are using.
Alright, let's get back to the fact of the matter, SQL, which is a system that can grow in complexity, can and will give you a lot of trouble, and when you don't know what you are doing with this system, you could run into some serious setbacks.
Due to the generality and expressive power of the SQL language, users of SQL, are allowed to specify, complex SQL queries, in order to retrieve data from their databases.
The SQL language, has many additional features, which helps you to not only find your data, with complex queries, but you can also organize and present your data, to your users, in ways, that they can understand, so that they are able to find real value within your information as well.
One of the features of The SQL language, is that it handles NULL values pretty well, which is usually used to present or collect a missing value; however, this missing value can be interpreted in three different ways.
The three different ways, that can be used to present or collect a NULL value are, a value unknown, which is a value that exist, but its content is not known.
The NULL value can also be represented with a value not available, this is a value that can be created, but withheld from your users.
Finally, the NULL value can also have a value that is not applicable, this is a value that has no definition, within the context that it is being used.
A good example of an unknown value, which can be represented with NULL on the database, is a person's social security number, when they first use your system.
An example of a withheld or unavailable value, is a person's full name, when that person doesn't want the system, to display their full name to the rest of the world, and just wants their user name to appear, on their home page.
A NULL value that is considered to be not applicable, would be a person, who does not have a master’s degree, and yet that person, has to fill out an application, that asks them, to provide information about their master’s degree, in this case the person, would just put down, not applicable, and your database has to be ready to receive that input as a NULL not applicable.
So this is where the not applicable type of NULL value comes into play, and you won’t see any errors from the server, or the database.
When you write queries in SQL, you'll find them to be easier to write them, stand alone, than coding them within a programming language.
However, you would have to deal with some features, of the database, which you may not have to understand fully, because you would have available to you, something called a database management system, which is going to help you manage your database, without having to write an SQL statement to communicate with your data, for everything you want to accomplish with you database, because the software would handle the storage, retrieval and updating of the data in your computer. One example of such database management system is MySQL, PostgreSQL and Oracle Lite.
You would also have to deal with some actions, which are known as non-declarative actions; these non-declarative actions use data from the database, and have to be coded into your program, because you won't be able to use a standalone SQL queries, for these types of actions.
Also non-declarative actions such as printing a report, interacting with a user, or sending the results of a query to a graphical user interface cannot be done from within SQL.
It is recommended though, to always use embedded SQL or dynamic SQL, since it is less complicated, and you don't have to deal with all the mambo jumbo of the database. When you are able to combine the computing power of a programming language and the database manipulation capabilities of SQL, then it is said that you are using embedded SQL.
When we say embedded SQL queries, we mean that you use your queries, within a general-purpose programming language or a system, such as MySQL or PostgreSQL and PHP or Java, you’ll enjoy databases better that way, then to just use SQL queries at the command line.
Alright now let's talk about SQL JOIN operators, in SQL you'll find several JOIN operators that are used within queries.
A JOIN operator in the SQL language, is used, when you want to return results, from two or more tables.
First the SQL language has the inner JOIN operator, which merges the rows of two tables, and returns the rows, which have common values for common attributes; this is known as the natural JOIN.
The attributes in an INNER JOIN are linked by foreign, key constraints.
A foreign key constraint of a table, would usually point to, the primary key of another table.
A foreign key constraint also specifies, that the values of one table, containing the key constraints, must match, the values of another table, and it could be of any column on the other table, but these keys have to preferably be the primary key as mentioned before.
We won't spend too much time talking about constraints, because that's a topic within of itself and is very broad.
Alright, an INNER JOIN has to also be able to meet a join condition, which was given by you, and it could be equality or inequality meet the conditions. This means that the INNER JOIN gives the intersection of the two tables.
So INNER JOIN, don't have to always match, but they have to intersect, for your query to return a result, and it has to meet the conditions that you set in your query, or else it will not work.
You will also find that the SQL language uses CROSS JOIN, which performs a Cartesian product of two tables, because there is no WHERE close in the query.
The Cartesian product of the CROSS JOIN, makes sure that all the results, which met the conditions set in the query, by you, are returned.
The next JOIN operator is the OUTER JOIN, which returns results from both tables, which satisfy the conditions set by you, in the SQL query.
An outer join will give you the union of table A and table B, i.e. all the rows in A and all the rows in B, which match and meet the conditions, set by you.
You will also find the SELF JOIN, which is used, when a programmer wants to JOIN a table to itself.
If the table, has a foreign key that references its PRIMARY KEY, then it would be ideal to use the SELF JOIN operator.
If you want to avoid column ambiguity, you may want your join statement, to define an alias for both copies of the table, so that you won't be repeating your data.
You will almost always, use the WHERE clause in your JOIN queries, but if you don't, then the query will return the product of a Cartesian product.
Another type of JOIN is the LEFT JOIN, which even when it doesn't find matches on the right column, it returns all the rows from left table.
When there are no matches on the right side, the query will return a NULL value for that match.
Another JOIN operator of SQL, is the RIGHT JOIN, which returns all the rows from the right table, but only the matching rows that it finds on the left table.
Again, if the RIGHT JOIN query does not find any matches on the left table, it returns NULL for that match.
The SQL query also has the FULL JOIN, which returns rows, when there is only a match on the tables.
All rows from the left table and from the right table, are returned when you use the FULL JOIN, but these rows are matching each other.
Again, remember that the matching part, happens with the primary key and the foreign key of the tables.
We only covered a few of the many features of the SQL language, but it is up to you, to go and gather, more knowledge about this language, and learn how to use the tools of this language, which will allow you to be a better programmer.
If you don't use the tools available to you, you will always have a hard time writing SQL statements, don't forget, SQL can become very complicated very quickly, if you don't know what you are doing or how to use it properly, so do your research before you start to program.
Also, don't just jump into coding, make sure that you have the right system set up on your computer, so that you don't have to code from scratch all over again, after you've done a lot of work, only to find you that your system, does not meet certain requirements, you will regret it later trust me, I am speaking from experience.
Also, if you noticed something I missed here on this article, please don’t hesitate to leave us a comment.
Thank you for reading this article post!!!