diff --git a/SQL/lessons/.sql_3.md.swp b/SQL/lessons/.sql_3.md.swp new file mode 100644 index 0000000..c0be8d9 Binary files /dev/null and b/SQL/lessons/.sql_3.md.swp differ diff --git a/SQL/lessons/sql_3.md b/SQL/lessons/sql_3.md index 28587e5..fed6927 100644 --- a/SQL/lessons/sql_3.md +++ b/SQL/lessons/sql_3.md @@ -1,13 +1,14 @@ # PostGres - Advanced ## Lesson Objectives - important -1. Joins + 1. Linking Tables 1. Alias 1. Indexes 1. Constraints ## Lesson Objectives - good to know about + 1. EER Diagrams 1. Unions 1. Truncate @@ -22,32 +23,21 @@ ## Important -### Joins -1. Cross Join -1. Inner Join -1. Left Join -1. Right Join -1. Full Join -```sql -SELECT table1.column1, table2.column2 -FROM table1 -INNER JOIN table2 -ON table1.common_filed = table2.common_field; -``` - ### Linking Tables -1. `http://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561` + +1. [Some Nice Visuals](http://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561) +1. One to Many/Many to One Relationships + - customer has many orders 1. One to One Relationships - each user has one address - only one person at that address -1. One to Many/Many to One Relationships - - customer has many orders 1. Many to Many Relationships - actors and movies 1. Self Referncing Relationships - customer referral ### Alias + ```sql SELECT t1.column1 as col1, t2.column2 as col2 FROM table1 as t1 @@ -56,14 +46,18 @@ ON t1.common_filed = t2.common_field; ``` ### Indexes + 1. `CREATE INDEX index_name ON table_name (column_name);` 1. `CREATE INDEX index_name ON table_name (column1_name, column2_name);` +1. use `\d table_name` to view indexes 1. Primary Key ### Constraints + 1. NOT NULL 1. Unique 1. Foreign Keys + ```sql CREATE TABLE companies( id SERIAL PRIMARY KEY, @@ -77,6 +71,7 @@ CREATE TABLE people( email VARCHAR(32) NOT NULL UNIQUE, company_id INT REFERENCES companies(id) ); +INSERT INTO people (name, email, company_id) VALUES ('bob', 'bob@bob.com', 999) ``` ## Good to Know About