2.2.1.1 Primary Key (PK)
Is a columns with unique values used to map a variable.
When a table is splited the performance to update or just to make a query is better than a big one. The reason is the quantity of data to read. This is one of the reason to split dataset in several tables, even more, sometimes in convinient to split because the type of data stored.
The reason of JOIN is to “bind” two datasets into one. Here we need to use the period . (table.colums) to reference which column/variable we want to select.
SELECT accounts.name, orders.occurred_at
FROM orders
JOIN accounts
ON orders.account_id = accounts.id;The result of this query is two columns (name and occured_at), and to linked by the account_id and id.
Is a columns with unique values used to map a variable.
Is a Primary Key from the other table. We use the PK and FK to link the tables.
Based on the new information about PK and FK. Let’s insert a picture to visualize the database.
Example of Join
I want to Join these tables. My query:
SELECT orders.*
FROM orders
JOIN accounts
ON orders.account_id = accounts.id;What I need to realize:
PK and FK always will be allocated in ON.FROM and JOIN each one with one table.It is possible to “chaining” three tables.
SELECT *
FROM web_events
JOIN accounts
ON web_events.account_id = accounts.id
JOIN orders
ON accounts.id = orders.account_idIn this case, I will import all columns, but I may want few columns.
SELECT web_events.channel, accounts.name, orders.total
FROM web_events
JOIN accounts
ON web_events.account_id = accounts.id
JOIN orders
ON accounts.id = orders.account_idAlias is a form to “short” the name of columns, the first method is using AS, but it could be simplified by only a space.
Select t1.column1 aliasname, t2.column2 aliasname2
FROM tablename AS t1
JOIN tablename2 AS t2or
Select t1.column1 aliasname, t2.column2 aliasname2
FROM tablename t1
JOIN tablename2 t2SELECT col1 + col2 AS total, col3or
SELECT col1 + col2 total, col3or
INNER JOINReturns rows which appears in both tables.
SELECT table_1.id, table_1.name, table_2.total
FROM table_2
JOIN table_1
ON table_2.account_id = table_1.idThese last examples are all INNER JOINS, and will return a new dataframe (intersection between two dataframes).
OUTER JOINThere are two kinds of OUTER JOINs
This two new JOINs has a property to pull rows that only exist in one table, it means some rows might have NULL values. The standard for this course will be to use only the left outer join.
A work by AH Uyekita
anderson.uyekita[at]gmail.com