SQL Fundamentals

Post on 26-Jan-2015

138 views 0 download

description

SQL Fundamentals

Transcript of SQL Fundamentals

Structured Query LanguageBrian FooteFox Valley Technical College

WELCOME!!!!

What is the plan for today?

• Learn about databases• Learn about SQL Server• Learn about SQL• Whatever else you want to do!

• foote@fvtc.edu• 920-735-2568• Skype : brian.d.foote• Twitter : @footefvtc

About Me

• UW-Eau Claire• IT Consultant – 18 years• Cap Gemini, Greenbrier & Russell,

Fujitsu, Skyline, Rush Lake Consulting• CUNA Mutual Group, Kimberly-Clark, The

Real Estate Group, Bemis, Associated Bank, JJ Keller, ThedaCare, Oshkosh Chamber of Oshkosh, Pierce

• Husband and father of 3 daughters.• Duck Hunter/Basketball Coach• Teaching – 8th semester

Brian Foote

SSMS – SQL Server Management Studio – Microsoft’s Query tool to their own database format.

HOW?

SSMS – SQL SERVER MANAGEMENT STUDIO

StartAll ProgramsMicrosoft SQL ServerSSMS

CONNECTING TO SQL SERVER

Information you need to connect:ServerDatabaseCredentials

SSMS – Connecting to SQL Server

CONNECTING TO SQL SERVER

SQL is short for Structured Query Language and is a widely used database language, providing means of data manipulation (store, retrieve, update, delete) and database creation.

SQL Server vs SQL?

SQL OVERVIEW

• What is SQL and why is it important?• Retrieve data from a single table.

• SELECT • SELECT INTO• ORDER BY• WHERE CONDITIONS• AGGREGATE SELECTS

SQL OVERVIEW

• Retrieve data from a multiple tables.• JOIN (INNER, LEFT, RIGHT, OUTER)• SELECT • SELECT INTO• ORDER BY• WHERE CONDITIONS• AGGREGATE SELECTS

SQL OVERVIEW

SELECT Statement – Used to retrieve data from the database table.

Syntax : SELECT Column1, Column2, Column3, *FROM Table1

Exercise : • Simple column SELECT• Simple * SELECT

Example : SELECT * FROM Customers SELECT Name, Address. City, State, ZIP FROM Customers

SQL – SELECT – 1 TABLE

The SQL ORDER BY clause comes in handy when you want to sort your SQL result sets by some column or columns.

Syntax : SELECT *FROM Table1ORDER BY COLUMN (ORDER BY COLUMN #)

Exercise : Simple column SELECT ORDER BY

Example : SELECT * FROM CustomersORDER BY City, LastName

SQL – SELECT - ORDER

The SQL WHERE clause is used to select data conditionally, by adding it to already existing SQL SELECT query.

Syntax : SELECT Column1, Column2, Column3, FROM Table1WHERE <CONDITION>

Exercise : Simple column SELECT WHERE

Example : SELECT *FROM CustomersWHERE State = ‘WI’

SQL – SELECT - WHEREHI

The SQL DISTINCT clause is used together with the SQL SELECT keyword, to return a dataset with unique entries for certain database table column.

Syntax : SELECT DISTINCT Column1, Column2, Column3, INTO Table2FROM Table1

Exercise : Simple column SELECT DISTINCT

Example : SELECT DISTINCT LastNameFROM Customers

SQL – SELECT - DISTINCT

Condition Must be True or False

Relational Operators= Equal<> Not Equal< Less Than<= Less Than or Equal To> Greater than>= Greater than or Equal To

The SQL WHERE clause is used to select data conditionally, by adding it to already existing SQL SELECT query.

SQL – SELECT - WHERE

The SQL AND clause is used when you want to specify more than one condition in your SQL WHERE clause, and at the same time you want all conditions to be true.

Syntax : SELECT Column1, Column2, Column3, FROM Table1WHERE <CONDITION>AND <DIFFERENT CONDITION>

Exercise : Simple column SELECT WHERE AND

Example : SELECT *FROM CustomersWHERE State = ‘WI’AND CITY = ‘MADISON’

SQL – SELECT - AND

The SQL OR statement is used in similar fashion and the major difference compared to the SQL AND is that OR clause will return all rows satisfying any of the conditions listed in the WHERE clause.

Syntax : SELECT Column1, Column2, Column3, FROM Table1WHERE <CONDITION>OR <DIFFERENT CONDITION>

Exercise : Simple column SELECT WHERE OR

Example : SELECT * FROM CustomersWHERE State = ‘WI’ OR State = ‘MN’

SQL – SELECT - OR

Other information• Be aware or data type.

• String data must in double quotes.• Numeric data does not.

• Order of precedence.1. ~ (Bitwise NOT)2. * (Multiply), / (Division), % (Modulo)3. + (Positive), - (Negative), + (Add), (+ Concatenate), -

(Subtract) 4. =, >, <, >=, <=, <>, !=, !>, !< (Comparison operators)5. NOT6. AND7. ALL, ANY, BETWEEN, IN, LIKE, OR, SOME8. = (Assignment)

The SQL WHERE clause is used to select data conditionally, by adding it to already existing SQL SELECT query.

SQL – SELECT - OOP

BETWEEN - TRUE if the operand is within a range.

test_expression [ NOT ] BETWEEN begin_expression AND end_expression

EXISTS - TRUE if a sub query contains any rows.

EXISTS {SELECT STATEMENT}

IN - TRUE if the operand is equal to one of a list of expressions.

test_expression [ NOT ] IN  ( subquery | expression [ ,...n ]     )

NOT - Reverses the value of any other Boolean operator.

[ NOT ] boolean_expression

SQL – SELECT - OTHER

LIKE - TRUE if the operand matches a pattern.

match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]

% - Any string of zero or more characters. (WHERE title LIKE '%computer%' )

_ - Any single character. (WHERE au_fname LIKE '_ean')

[ ] - Any single character within the specified range ([a-f]) or set ([abcdef]).(WHERE au_lname LIKE '[C-P]arsen' )

[^] - Any single character not within the specified range ([^a-f]) or set ([^abcdef]).(WHERE au_lname LIKE 'de[^l]%' )

SQL – SELECT - LIKE

The SQL SELECT INTO statement is used to select data from a SQL database table and to insert it to a different table at the same time.

Syntax : SELECT Column1, Column2, Column3, INTO Table2FROM Table1

Exercise : Simple column SELECT INTO

Example : SELECT Name, Address. City, State, ZIPINTO NewCustomers FROM CustomersSELECT * FROM Customers

SQL SELECT INTO

COUNTMAXMINAVGSUM

Structured Query LanguageAggregate Operators

SQL - AGGREGATE

The SQL COUNT clause is used together with the SQL SELECT keyword, to return a dataset with unique entries for certain database table column.

Syntax : SELECT COUNT(*) FROM Table1

Exercise : Simple column SELECT COUNT

Example : SELECT COUNT(*)FROM Customers

SQL – AGGREGATE – COUNT

The SQL MAX aggregate function allows us to select the highest (maximum) value for a certain column.

Syntax : SELECT MAX(Column1)FROM Table1

Exercise : SELECT MAX

Example : SELECT MAX(DOB) AS MaxDOBFROM Customers

SQL – AGGREGATE - MAX

The SQL MIN aggregate function allows us to select the lowest (minimum) value for a certain column.

Syntax : SELECT MIN(Column1)FROM Table1

Exercise : SELECT MIN

Example : SELECT MAX(DOB) AS MinDOBFROM Customers

SQL – AGGREGATE - MIN

The SQL SUM aggregate function allows selecting the total for a numeric column.

Syntax : SELECT SUM(Column1)FROM Table1

Exercise : SELECT SUM

Example : SELECT SUM(SaleAmount) AS TotalSalesFROM Sales

SQL – AGGREGATE - SUM

The SQL AVG aggregate function allows selecting the total for a numeric column.

Syntax : SELECT AVG(Column1)FROM Table1

Exercise : SELECT AVG

Example : SELECT AVG(SaleAmount) AS AVGTotalSalesFROM Sales

SQL – AGGREGATE - AVERAGE

The SQL GROUP BY statement is used along with the SQL aggregate functions like SUM to provide means of grouping the result dataset by certain database table column(s).

Syntax : SELECT COLUMN2, SUM(Column1)FROM Table1GROUP BY COLUMN2

Exercise : SELECT GROUP BY

Example : SELECT Employee, SUM (Hours)FROM EmployeeHoursGROUP BY Employee

SQL – AGGREGATE – GROUP BY

The SQL HAVING clause is used to restrict conditionally the output of a SQL statement, by a SQL aggregate function used in your SELECT list of columns.

Syntax : SELECT COLUMN2, <aggregate function> (Column1)FROM Table1GROUP BY COLUMN2HAVING <aggregate function> (Column1) condition

Exercise : SELECT HAVING

Example : SELECT Employee, SUM (Hours)FROM EmployeeHoursGROUP BY EmployeeHAVING SUM (Hours) > 24

SQL – AGGREGATE HAVING

STRUCTURED QUERY LANGUAGEJOINS

The SQL JOIN clause is used whenever we have to select data from 2 or more tables.

Join Types

• INNER - Returns all rows from both tables as long as there is a match between the columns we are matching On.

• OUTER – Returns rows from the joined tables if they match or not.

The INNER JOIN will select all rows from both tables as long as there is a match between the columns we are matching on. SELECT <select_list> FROM Table_A A INNER JOIN Table_B B ON A.Key = B.Key

SQL – INNER JOIN

LEFT - The LEFT OUTER JOIN or simply LEFT JOIN (you can omit the OUTER keyword in most databases), selects all the rows from the first table listed after the FROM clause, no matter if they have matches in the second table. SELECT <select_list> FROM Table_A A LEFT JOIN Table_B B ON A.Key = B.Key

SQL – LEFT JOIN

RIGHT - The RIGHT OUTER JOIN or just RIGHT JOIN behaves exactly as SQL LEFT JOIN, except that it returns all rows from the second table (the right table in our SQL JOIN statement).

SELECT <select_list> FROM Table_A A RIGHT JOIN Table_B B ON A.Key = B.Key

SQL – RIGHT JOIN

FULL OUTER-This query will return all of the records from both tables, joining records from the left table (table A) that match records from the right table (table B).-SELECT <select_list> FROM Table_A A FULL OUTER JOIN Table_B B ON A.Key = B.Key

SQL – FULL OUTER

Left Excluding JOIN

-This query will return all of the records in the left table (table A) that do not match any records in the right table (table B).

SELECT <select_list> FROM Table_A A LEFT JOIN Table_B B ON A.Key = B.Key WHERE B.Key IS NULL

SQL – LEFT JOIN EXCLUDING

Right Excluding JOIN

-This query will return all of the records in the right table (table B) that do not match any records in the left table (table A).

SELECT <select_list> FROM Table_A A RIGHT JOIN Table_B B ON A.Key = B.Key WHERE A.Key IS NULL

Outer Excluding JOINThis query will return all of the records in the left table (table A) and all of the records in the right table (table B) that do not match.SELECT <select_list> FROM Table_A A FULL OUTER JOIN Table_B B ON A.Key = B.Key WHERE A.Key IS NULL OR B.Key IS NULL

SQL – OUTER JOIN EXCLUDING

Structured Query LanguageMultiple Tables and Aggregate Operators

• COUNT• MAX• MIN• AVG• SUM

SQL – AGGREGATE MULTIPLE TABLES

Structured Query LanguageOther Things

• Elimination of Nulls (ISNULL)• Use of subquerys when the joins just do

not seem right.• Temp Tables (local (#) and global (##)• Export to Excel• Stored Procedures

SQL – OTHER THINGS

SQL – ALL JOINS

Sources

• Microsoft Developer Network - http://msdn.microsoft.com/en-us/sqlserver/default.aspx

• SQL Tutorial - http://www.sql-tutorial.net/• Code project:

http://www.codeproject.com/KB/database/Visual_SQL_Joins.aspx

SQL – ONLINE SOURCES

QUESTIONS

Contact Info

• Fox Valley Technical College• Brian Foote• foote@fvtc.edu

CONTACT INFO

Thank You!

THANK YOU