0% found this document useful (0 votes)
5 views

SQL Joins-Anran Xing and Michelle Tin

The document provides an overview of SQL, focusing on SQL joins and data processing techniques. It explains various types of joins, including Left Join, Right Join, and Inner Join, along with examples of basic SQL queries and the use of DISTINCT. Additionally, it discusses SQL aliases, filtering conditions, and the use of the EXCEPT function.

Uploaded by

jeevanbabu vara
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

SQL Joins-Anran Xing and Michelle Tin

The document provides an overview of SQL, focusing on SQL joins and data processing techniques. It explains various types of joins, including Left Join, Right Join, and Inner Join, along with examples of basic SQL queries and the use of DISTINCT. Additionally, it discusses SQL aliases, filtering conditions, and the use of the EXCEPT function.

Uploaded by

jeevanbabu vara
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

SQL Joins

& Other Data Processing Tips

Anran Xing and Michelle Tin


Office of Institutional Research and Assessment
The University of Alabama
What is SQL?
“ess-q-ell” or “see-qwell”

SQL stands for Structured Query Language


– SQL is the standard language for relational database
management (American National Standards Institute, ANSI)

An interface which helps you communicate with your system’s database using queries.
Basic SQL Queries
Students

Name
Mary
Jack
Ben

Select name from students where name=‘Mary’

Select Variable From Table Where


clause name clause name clause
What are SQL Joins?
• SQL join clause - a join operation in relational algebra
• Cartesian cross-products, combinations and permutations

• A join combines columns from one or more tables by using


variables common to each
Left Join Right Join

Exclusive Left Join Inner Join Exclusive Right Join

Full Join Exclusive Full Join


Left (Outer)
Join Definition
The SQL Left Join returns all the rows or records present in the left
table and matching rows from the right table or NULL in case of no
matching value.
Sample Dataset

Table: Courses Table: Grades

Term Id Name Level College Course Term Id Course Grade GPA

Fall 2019 01 Mary UG AS Math 101 Fall 2019 01 CS 102 C 3


Fall 2019 03 AC 601 A 4
Fall 2019 01 Mary UG AS CS 102
Fall 2019 04 Math 101 A 4
Fall 2019 02 Jack UG EG Math 101
Fall 2019 05 FI 300 B 3.5
Fall 2019 03 Ben GR CB CS 511
Fall 2019 03 Ben GR CB AC 601
Basic Left Join
Courses

Term Id Name Level College Course


Fall 2019 01 Mary UG AS Math 101
Fall 2019 01 Mary UG AS CS 102
Id Name Grade
Fall 2019 02 Jack UG EG Math 101
01 Mary C
Fall 2019 03 Ben GR CB CS 511
01 Mary C
Fall 2019 03 Ben GR CB AC 601
02 Jack
Grades 03 Ben A
03 Ben A
Term Id Course Grade GPA
Fall 2019 01 CS 102 C 3
Fall 2019 03 AC 601 A 4
Fall 2019 04 Math 101 A 4
Fall 2019 05 FI 300 B 3.5

select Courses.id, Courses.name, Grades.grade Id  key


from Courses
left join Grades on Courses.id = Grades.id
Distinct
The SQL DISTINCT argument is used in
conjunction with the SELECT statement
to eliminate all the duplicate records
and fetching only unique records.
Basic Left Join with Distinct
Courses

Term Id Name Level College Course


Fall 2019 01 Mary UG AS Math 101
Fall 2019 01 Mary UG AS CS 102
Fall 2019 02 Jack UG EG Math 101
Id Name Grade
Fall 2019 03 Ben GR CB CS 511
01 Mary C
Fall 2019 03 Ben GR CB AC 601
02 Jack
Grades 03 Ben A

Term Id Course Grade GPA


Fall 2019 01 CS 102 C 3
Fall 2019 03 AC 601 A 4
Fall 2019 04 Math 101 A 4
Fall 2019 05 FI 300 B 3.5

select DISTINCT Courses.id, Courses.name, Grades.grade Id  key


from Courses
left join Grades on Courses.id = Grades.id
Basic Left Join with Multiple Keys
Courses

Term Id Name Level College Course


Fall 2019 01 Mary UG AS Math 101
Fall 2019 01 Mary UG AS CS 102
Id Name Course Grade
Fall 2019 02 Jack UG EG Math 101
01 Mary CS 102 C
Fall 2019 03 Ben GR CB CS 511
01 Mary Math 101
Fall 2019 03 Ben GR CB AC 601
02 Jack Math 101
Grades 03 Ben AC 601 A
03 Ben CS 511
Term Id Course Grade GPA
Fall 2019 01 CS 102 C 3
Fall 2019 03 AC 601 A 4
Fall 2019 04 Math 101 A 4
Fall 2019 05 FI 300 B 3.5

select DISTINCT Courses.id, Courses.name, Courses.course, Grades.grade Id and course  key


from Courses
left join Grades on Courses.id = Grades.id
and Courses.course = Grades.course
SQL Aliases
If your table names are too long…

Ex: student_name_race_sex_state_by_term_level …

• SQL aliases are used to give a


table, or a variable in a table, a
temporary name.

• Aliases are often used to rename


variables or to make them more
readable.

• An alias only exists for the duration


of the query.

select distinct A.Term as semester


from courses as A
Select All Variables

If we want to include all field


names in a SQL result table, we
can use ‘*’ in the select clause:

Select *
Select A.*, B.*
Select A.name, B.*
Select A.*, B.grade
Left Join Example
Left Join Multiple Tables
Courses
Grades

Term Id Name Level College Course


Term Id Course Grade GPA
Fall 2019 01 Mary UG AS Math 101
Fall 2019 01 CS 102 C 3
Fall 2019 01 Mary UG AS CS 102
Fall 2019 03 AC 601 A 4
Fall 2019 02 Jack UG EG Math 101
Fall 2019 04 Math 101 A 4
Fall 2019 03 Ben GR CB CS 511
Fall 2019 05 FI 300 B 3.5
Fall 2019 03 Ben GR CB AC 601

Colleges Levels

college_code college_name level_code level_decode


AS Arts & Sciences UG Undergraduate
CB Culverhouse College of Business GR Graduate
EG Engineering
Left Join Example
Left Join Multiple Tables

Term Id Name Level College Course St_id Grade school level


Fall 2019 01 Mary UG AS CS 102 01 C Arts & Sciences Undergraduate
Fall 2019 01 Mary UG AS Math 101 Arts & Sciences Undergraduate
Fall 2019 02 Jack UG EG Math 101 Engineering Undergraduate
Fall 2019 03 Ben GR CB AC 601 03 A Culverhouse College of Business Graduate
Fall 2019 03 Ben GR CB CS 511 Culverhouse College of Business Graduate

select distinct A.*, B.id as St_id, B.grade, college_name as school, level_decode as level
from courses A
left join grades as B on A.id=B.id and A.course=B.course
left join colleges on college=college_code
left join levels on level=level_code
where term=‘Fall 2019’
Left Join Examples
Apply conditions with ON vs WHERE statements

• In SQL, the 'WHERE' and 'ON' clauses are both conditional statements
• the ‘WHERE’ clause is used in select statements for specifying the conditions
• the 'ON’ clause is used in joins
• it verifies or checks if the records are matched in the target and source
tables before the tables are joined
Left Join Examples
Filter in the ON clause
Courses

Term Id Name Level College Course


Fall 2019 01 Mary UG AS Math 101 Name Course Grade

Fall 2019 01 Mary UG AS CS 102 Ben AC 601 A

Fall 2019 02 Jack UG EG Math 101 Ben CS 511

Fall 2019 03 Ben GR CB CS 511 Jack Math 101

Fall 2019 03 Ben GR CB AC 601 Mary CS 102


Mary Math 101

Grades

select distinct A.name, A.course, B.grade


Term Id Course Grade GPA
Fall 2019 01 CS 102 C 3
from courses A
Fall 2019 03 AC 601 A 4 left join grades B on A.id=B.id
Fall 2019 04 Math 101 A 4 and A.course=B.course
Fall 2019 05 FI 300 B 3.5 and grade='A'
Left Join Examples
Filter in the WHERE clause

Courses

Term Id Name Level College Course


Fall 2019 01 Mary UG AS Math 101 Name Course Grade
Fall 2019 01 Mary UG AS CS 102 Ben AC 601 A
Fall 2019 02 Jack UG EG Math 101 BenName CSCourse
511 Grade
Fall 2019 03 Ben GR CB CS 511 Jack Math 101
Ben AC 601 A
Mary CS 102 C
Fall 2019 03 Ben GR CB AC 601
Mary Math 101

Grades

Term Id Course Grade GPA select distinct A.name, A.course, B.grade


Fall 2019 01 CS 102 C 3
from courses A
Fall 2019 03 AC 601 A 4
Fall 2019 04 Math 101 A 4
left join grades B on A.id=B.id
Fall 2019 05 FI 300 B 3.5 and A.course=B.course
where grade='A'
Exclusive Left Join/Except
Exclusive Left Join/Except Example
Left exclusive join using where statement
select distinct A.* Term Id Name Level College Course

from courses A Fall 2019 01 Mary UG AS Math 101

left join grades B on A.id=B.id Fall 2019 02 Jack UG EG Math 101


Fall 2019 03 Ben GR CB CS 511
and A.course=B.course
where B.id is null

Except function
select distinct term, id, course Term Id Course
Fall 2019 01 Math 101
from courses
Fall 2019 02 Math 101
except
Fall 2019 03 CS 511
select distinct term, id, course
from grades
Questions?
• Anran Xing, Institutional Research Analyst
[email protected]

• Michelle Tin, Institutional Research Analyst


[email protected]

You might also like