Top Banner
SQL joins & views 1 Intro to JOINs SQL INNER JOIN SQL OUTER JOIN SQL FULL JOIN SQL CROSS JOIN Intro to VIEWs Simple VIEWs Considerations about VIEWs VIEWs as filters ALTER VIEW + DROP VIEW Creating VIEWs in Management Studio Steen Jensen, autumn 2013
26

1 Intro to JOINs SQL INNER JOIN SQL OUTER JOIN SQL FULL JOIN SQL CROSS JOIN Intro to VIEWs Simple VIEWs Considerations about VIEWs VIEWs as filters ALTER.

Jan 01, 2016

Download

Documents

Amos Preston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Data modeling using ER

SQL joins & views1Intro to JOINs

SQL INNER JOIN

SQL OUTER JOIN

SQL FULL JOINSQL CROSS JOINIntro to VIEWs

Simple VIEWsConsiderations about VIEWs VIEWs as filters ALTER VIEW + DROP VIEW Creating VIEWs in Management Studio

Steen Jensen, autumn 2013

Combining table data with joins 1A JOIN joins together information from two tables into one result set

A JOIN match up one record with one or more other records to make a record, that is a superset created by the combined columns of both records2

Joined in a one-to-one relationshipCombining table data with joins 23

Joined in a one-to-many relationship4 kinds of joinsThere are 4 kinds of joins:INNER JOINOUTER JOIN (both LEFT and RIGHT)FULL JOINCROSS JOIN

INNER JOIN is the most usedOUTER JOIN is a bit more rarely usedFULL JOIN is almost never usedCROSS JOIN is seldom used, but could be used for generating test data4SQL INNER JOIN 15INNER JOIN is the most common kind of JOIN

An INNER JOIN returns only records, where there are matches for the field(s) used in the JOIN

NB! Bogart not includedSQL INNER JOIN 26The general syntax for an INNER JOIN:

In general avoid using the * operator for both tables in JOINS

SQL INNER JOIN 37Before making a JOIN it could be a good idea to draw a diagram showing, how the tables should be connected

Person.Person..BusinessentityidHumanResources.Employee..BusinessentityidPerson.BusinessEntity..BusinessentityidSQL INNER JOIN 48The INNER JOIN corresponding to the previous slide:

Also see the following links:http://www.w3schools.com/sql/sql_join_inner.asp http://www.w3resource.com/sql/joins/perform-an-inner-join.php

SQL OUTER JOIN 19Where an INNER JOIN is exclusive by nature, an OUTER JOIN is inclusive

The first named table is considered to be the left, and the second named table is considered to be the right

The keyword OUTER is optional, just include either LEFT or RIGHT

A LEFT OUTER JOIN includes all the information from the left table

A RIGHT OUTER JOIN includes all the information from the right table

E.g.: you want to see, what the special offers are for which products

SQL OUTER JOIN 210

SQL OUTER JOIN 311

Also see the following links:http://www.w3schools.com/sql/sql_join_left.asphttp://www.w3resource.com/sql/joins/perform-a-left-join.php

SQL FULL JOIN12A FULL JOIN matches up data on both sides of the JOIN with everything included, no matter which side of the JOIN it is on

FULL JOIN is almost never used

A FULL JOIN is best described, as what you would get, if you could do a LEFT JOIN and a RIGHT JOIN in the same JOIN

You get all records, that match based on the JOIN field(s)You also get any records that exist only on the left side with NULLs being returned foir columns from the right side and vice versa

SQL CROSS JOIN13A CROSS JOIN differs from other JOINs, as there is no ON operator, and it joins every record on one side with every record on the other side of the JOIN

Alternative syntax for JOIN14An alternative (and maybe older) version of an INNER JOIN:

Parts, which can be skipped15Complex OUTER joins: page 106-114

Alternative OUTER / CROSS joins: page 119middle121

UNION: page 121-125Exercise in SQL JOINExperiment making different SQL JOINS for The AdwentureWorks and/or The Amazon database

Try both INNER and OUTER JOIN

Before making the JOIN it might be a good idea to make a diagram with the connections between the primary and the foreign keys (see slide )

16Intro to viewsA VIEW is nothing more than a stored query

You can create a simple query, that selects from only bone table and leaves some rows or columns out, or you can create a complex query that joins several tables

17Simple viewsThe general syntax:

An example:

After this the VIEW can be used just as any normal table in a SELECT

18

Considerations about VIEWsA view is never going to run as fast, as if you had just run the underlying SELECT statement directly

VIEWs exist for a reason: security or simplification for the user just balance your need against the extra overhead

If you want to restrict some columns for a group of people, one solution might be to make an extra table this gives some disadvantages:Disk space used twiceSynchronization problems, where one table is updated and the other notDouble I/O operations, as two tables have to be maintained

In this case a VIEW is a better solution

19Views as filters 1Just as the WHERE clause on a SELECT can filter the results of a query, so can a WHERE be used on a VIEW

20

Views as filters 221

More complex Views22

Parts, which can be skipped23DATEADD + CAST: page 361middle-365

WITH CHECK OPTION: page 365367top

ALTER VIEW + DROP VIEWJust like the layout of a table can be changed with the ALTER TABLE, the SQL command ALTER VIEW can change the layout of a VIEW

Likewise the command DROP VIEW deletes one or more VIEWs

24

Creating VIEWS in Management StudioApart from the SQL way views can also be created the GUI way

Just expand the database node and right-click Views

Follow the instructions on page 368-370 in the book

25Exercise in VIEWExperiment making different views for The AdwentureWorks and/or The Amazon database

Try making views both the SQL way and the GUI way (see previous slide)

26