Querying Microsoft SQL Server 2012

microsoft-logo1-6-349962-13

Querying Microsoft SQL Server 2012

Course duration: 5 days

Course Overview

This 5-day instructor led course provides students with the technical skills required to write basic Transact-SQL queries for Microsoft SQL Server 2012. This course is the foundation for all SQL Server-related disciplines; namely, Database Administration, Database Development and Business Intelligence. This course helps people prepare for exam 70-461.

All the labs for this course can be performed using the provided virtual machines.  However, if you have a Microsoft Windows Azure account and the classroom virtual machines connect to the internet you may be able to connect to your Windows Azure server and database from the classroom.  Many of the labs in this course are enabled for you to perform the lab while connected to your own Windows Azure database in the cloud. Your instructor should be able to provide a current list of Windows Azure enabled labs

Audience Profile

This course is intended for Database Administrators, Database Developers, and Business Intelligence professionals. The course will very likely be well attended by SQL power users who aren’t necessarily database-focused or plan on taking the exam; namely, report writers, business analysts and client application developers.

Prerequisites

Before attending this course, students must have:

  • Working knowledge of relational databases.
  • Basic knowledge of the Microsoft Windows operating system and its core functionality.

Before attending this course, students should have:

  • Basic understanding of virtualization technology (Classroom labs utilize virtual machines)

To help you prepare for this class, review the following resources:

  • Book: T-SQL Fundamentals for Microsoft SQL Server 2012 and SQL Azure
  • MCTS Self Paced Training Kit 70-461

Course Outline

Module 1: Introduction to Microsoft SQL Server 2012

This module introduces the SQL Server platform and major tools. It discusses editions, versions, tools used to query, documentation sources, and the logical structure of databases.

Lessons

    • Introducing Microsoft SQL Server 2012
  • Getting Started with SQL Server Management Studio

 

Lab: Working with SQL Server 2012 Tools

    • Working with SQL Server Management Studio
    • Creating and Organizing T-SQL scripts
  • Using Books Online

 

    • After completing this module, students will be able to:
    • Describe the architecture and editions of SQL Server 2012.
  • Work with SQL Server Management Studio.This module introduces you to the concepts of SQL Azure. If the virtual machines in your classroom are able to connect to the internet and you have a Windows Azure account you may be able to connect to your Azure server and database. Many of the labs in the rest of this course are enabled for you to perform the lab while connected to your own Azure database in the cloud.

 

Lessons

Module 2: Getting Started with SQL Azure

    • Overview of SQL Azure
  • Working with SQL Azure

 

    • After completing this module, students will be able to:
    • Describe the basic features of SQL Azure.
  • Provision a SQL Azure server and configure its security.This module introduces Transact SQL as the primary querying language of SQL Server. It discusses the basic structure of T-SQL queries, the logical flow of a SELECT statement, and introduces concepts such as predicates and set-based operations.

Module 3: Introduction to T-SQL Querying

Lessons

    • Introducing T-SQL
    • Understanding Sets
    • Understanding Predicate Logic
  • Understanding the Logical Order of Operations in SELECT statements

 

    • Lab: Introduction to Transact-SQL Querying
    • Executing Basic SELECT Statements
    • Executing queries which filter data using predicates
  • Executing queries which sort data using ORDER BY

 

    • After completing this module, students will be able to:
    • Describe the elements of T-SQL and their role in writing queries
    • Describe the use of sets in SQL Server
    • Describe the use of predicate logic in SQL Server
  • Describe the logical order of operations in SELECT statementsThis module introduces the fundamentals of the SELECT statement, focusing on queries against a single table.

 

    • Lessons
    • Module 4: Writing SELECT Queries
    • Writing Simple SELECT Statements
    • Eliminating Duplicates with DISTINCT
    • Using     Column and Table Aliases
  • Writing Simple CASE Expressions

 

    • Lab: Writing Basic SELECT Statements
    • Write simple SELECT Statements
    • Eliminate Duplicates Using Distinct
    • Use Table and Column Aliases
  • Use a Simple CASE Expression

 

  • After completing this module, students will be able to:
  • Write simple SELECT statements.
  • Eliminate duplicates using the DISTINCT clause.
  • Use column and table aliases.
  • Write simple CASE expressions.

Module 5: Querying Multiple Tables

This module explains how to write queries which combine data from multiple sources in SQL Server. The module introduces the use of JOINs in T-SQL queries as a mechanism for retrieving data from multiple tables.

Lessons

    • Understanding Joins
    • Querying with Inner Joins
    • Querying with Outer Joins
  • Querying with Cross Joins and Self Joins

 

    • Lab: Querying Multiple Tables
    • Writing Queries That Use Inner Joins
    • Writing Queries That Use Multiple-Table Inner Join
    • Writing Queries That Use Self Joins
    • Writing Queries That Use Outer Loins
  • Writing Queries That Use Cross Join

 

    • After completing this module, students will be able to:
    • Describe how multiple tables may be queried in a SELECT statement using joins.
    • Write queries that use inner joins.
    • Write queries that use outer joins.
  • Write queries that use self-joins and cross joins.This module explains how to enhance queries to limit the rows they return, and to control the order in which the rows are displayed. The module also discusses how to resolve missing and unknown results.

 

    • Lessons
    • Module 6: Sorting and Filtering Data
    • Sorting Data
    • Filtering Data with a WHERE Clause
    • Filtering with the TOP and OFFSET-FETCH Options
  • Working with Unknown and Missing Values

 

    • Lab: Sorting and Filtering Data
    • Writing Queries That Filter Data Using a WHERE Clause
    • Writing Queries That Filter Data Using an ORDER BY Clause
    • Writing Queries That Filter Data Using the TOP Option
    • Writing Queries That Filter Data Using the OFFSET-FETCH Clause

After completing this module, students will be able to

    • Filter data with predicates in the WHERE clause.
    • Sort data using ORDER BY.
    • Filter data in the SELECT clause with TOP.
  • Filter data with OFFSET and FETCH.This module explains the data types SQL Server uses to store data. It introduces the many types of numeric and special-use data types. It also explains conversions between data types, and the importance of type precedence.

 

Lessons

Module 7: Working with SQL Server 2012 Data Types

    • Introducing SQL Server 2012 Data Types
    • Working with Character Data
    • Working with Date and Time Data
    • Lab: Working with SQL Server 2012 Data Types
    • Writing Queries That Return Date and Time Data
    • Writing Queries That Use Date and Time Functions
    • Writing Queries That Return Character Data
  • Writing Queries That Use Character Functions

 

    • After completing this module, students will be able to:
    • Describe numeric data types, type precedence and type conversions.
    • Write queries using character data types.
  • Write queries using date and time data types.This module introduces the use of functions that are built in to SQL Server Denali, and will discuss some common usages including data type conversion, testing for logical results and null ability.

 

Lessons

Module 8: Using Built-In Functions

    • Writing Queries with Built-In Functions
    • Using Conversion Functions
    • Using Logical Functions
  • Using Functions to Work with NULL

 

    • Lab: Using Built-In Functions
    • Write queries which use conversion functions
    • Write queries which use logical functions
  • Write queries which test for nullability

 

    • After completing this module, students will be able to:
    • Write queries with built-in scalar functions.
    • Use conversion functions.
    • Use logical functions.
  • Use functions that work with NULL.This module introduces methods for grouping data within a query, aggregating the grouped data and filtering groups with HAVING. The module is designed to help the student grasp why a SELECT clause has restrictions placed upon column naming in the GROUP BY clause as well as which columns may be listed in the SELECT clause.

 

Lessons

Module 9: Grouping and Aggregating Data

    • Using Aggregate Functions
    • Using the GROUP BY Clause
  • Filtering Groups with HAVING

 

    • Lab: Grouping and Aggregating Data
    • Write queries which use the GROUP BY clause
    • Write queries which use aggregate functions
    • Write queries which use distinct aggregate functions
  • Write queries which filter groups with the HAVING clause

 

    • After completing this module, students will be able to:
    • Write queries which summarize data using built-in aggregate functions.
    • Use the GROUP BY clause to arrange rows into groups.
  • Use the HAVING clause to filter out groups based on a search condition.This module will introduce the use of subqueries in various parts of a SELECT statement. It will include the use of scalar and multi-result subqueries, and the use of the IN and EXISTS operators.

 

Lessons

Module 10: Using Subqueries

    • Writing Self-Contained Subqueries
    • Writing Correlated Subqueries
  • Using the EXISTS Predicate with Subqueries

 

    • Lab: Using Subqueries
    • Write queries which use self-contained subqueries
    • Write queries which use scalar and multi-result subqueries
  • Write queries which use correlated subqueries and EXISTS predicate

 

    • After completing this module, students will be able to:
    • Describe the uses of queries which are nested within other queries.
    • Write self-contained subqueries which return scalar or multi-valued results.
    • Write correlated subqueries which return scalar or multi-valued results.
  • Use the EXISTS predicate to efficiently check for the existence of rows in a subquery.This module introduces T-SQL expressions which return a valid relational table, typically for further use in the query. The module discusses views, derived tables, common table expressions and inline table-valued functions.

Lessons

Module 11: Using Table Expressions

    • Using Derived Tables
    • Using Common Table Expressions
    • Using Views
  • Using Inline Table-Valued Functions

 

    • Lab: Using Table Expressions
    • Write Queries Which Use Views
    • Write Queries Which Use Derived Tables
    • Write Queries Which Use Common Table Expressions
  • Write Queries Which Use Inline Table-Valued Functions

 

    • After completing this module, students will be able to:
    • Write queries which use derived tables.
    • Write queries which use common table expressions.
    • Create simple views and write queries against them.
  • Create simple inline table-valued functions and write queries against them.This module introduces operations involving multiple sets of data. It will cover the use of the UNION, UNION ALL, APPLY, CROSS APPLY, OUTER APPLY operators as well as the EXCEPT and INTERSECTS operators.

Lessons

Module 12: Using Set Operators

    • Writing Queries with the UNION Operator
    • Using EXCEPT and INTERSECT
  • Using APPLY 

Lab: Using Set Operators

    • Write queries which use UNION set operators and UNION ALL multi-set operators
    • Write queries which use CROSS APPLY and OUTER APPLY operators
  • Write queries which use EXCEPT and INTERSECT operators

 

    • After completing this module, students will be able to:
    • Write queries which combine data using the UNION operator
    • Write queries which compare sets using the INTERSECT and EXCEPT operators
  • Write queries which manipulate rows in a table by using APPLY with the results of a derived table or functionThis module introduces window functions including ranking, aggregate and offset functions. Much of this functionality is new to SQL Server 2012. It will cover the use of T-SQL functions such as ROW_NUMBER, RANK, DENSE_RANK, NTILE, LAG, LEAD, FIRST_VALUE and LAST_VALUE to perform calculations against a set, or window, of rows.

 

Lessons

Module 13: Using Window Ranking, Offset and Aggregate Functions

    • Creating Windows with OVER
  • Exploring Window Functions

 

    • Lab: Using Window Ranking, Offset and Aggregate Functions
    • Write queries which use ranking functions
    • Write queries which use offset functions
  • Write queries which use window aggregate functions

 

    • After completing this module, students will be able to:
    • Describe the benefits to using window functions.
    • Restrict window functions to rows defined in an OVER clause, including partitions and frames.
  • Write queries which use window functions to operate on a window of rows and return ranking, aggregation and offset comparison results.This module discusses techniques for pivoting data in T-SQL as well to introduce the fundamentals of the GROUPING SETS clause. It will also cover the use of GROUP BY ROLLUP and GROUP BY CUBE syntax in SQL Server 2012.

 

Lessons

Module 14: Pivoting and Grouping Sets

    • Writing Queries with PIVOT and UNPIVOT
  • Working with Grouping Sets

 

    • Lab: Pivoting and Grouping Sets
    • Write queries which use the PIVOT operator
    • Write queries which use the UNPIVOT operator
  • Write queries which use the GROUPING SETS subclause

 

    • After completing this module, students will be able to:
    • Write queries which pivot and unpivot result sets
  • Write queries which specify multiple groupings with grouping setsThis module introduces the use of SQL Server system objects in T-SQL queries. It will cover the use of system catalog views, system stored procedures, system functions, and dynamic management objects.

 

Lessons

Module 15: Querying SQL Server Metadata

    • Querying System Catalog Views and Functions
    • Executing System Stored Procedures
  • Querying Dynamic Management Objects

 

    • Lab: Querying SQL Server Metadata
    • Querying System Catalog Views
    • Querying System Functions
  • Querying System Dynamic Management Views

 

    • After completing this module, students will be able to:
    • Write queries that retrieve system metadata using system views and functions.
    • Execute system stored procedures to return system information.
  • Write queries that retrieve system metadata and state information using system dynamic management views and functions.This module introduces the use of existing stored procedures in a T-SQL querying environment. It discusses the use of EXECUTE, how to pass input and output parameters to a procedure, and how to invoke system stored procedures.

 

Lessons

Module 16: Executing Stored Procedures

    • Querying Data with Stored Procedures
    • Passing Parameters to Stored Procedures
    • Creating Simple Stored Procedures
  • Working with Dynamic SQL 

Lab: Executing Stored Procedures

    • Use the EXECUTE statement to invoke stored procedures
    • Pass parameters to stored procedures
  • Execute system stored procedures

 

    • After completing this module, students will be able to:
    • Return results by executing stored procedures.
    • Pass parameters to procedures.
    • Create simple stored procedures which encapsulate a SELECT statement.
  • Construct and execute dynamic SQL with EXEC and sp_executesql.This module provides a basic introduction to T-SQL programming concepts and objects. It discusses batches, variables, control of flow elements such as loops and conditionals, how to create and execute dynamic SQL statements, and how to use synonyms.

 

Lessons

Module 17: Programming with T-SQL

    • T-SQL Programming Elements
  • Controlling Program Flow

 

    • Lab: Programming with T-SQL
    • Declaring Variables and Delimiting Batches
    • Using Control-of-Flow Elements
    • Generating Dynamic SQL
  • Using Synonyms

 

    • After completing this module, students will be able to:
    • Describe the language elements of T-SQL used for simple programming tasks.
    • Describe batches and how they are handled by SQL Server.
    • Declare and assign variables and synonyms.
  • Use IF and WHILE blocks to control program flow.This module introduces the use of error handlers in T-SQL code. It will introduce the difference between compile errors and run-time errors, and will cover how errors affect batches. The module will also cover how to control error handling using TRY/CATCH blocks, the use of the ERROR class of functions, and the use of the new THROW statement.

 

Lessons

Module 18: Implementing Error Handling

    • Using TRY / CATCH Blocks
  • Working with Error Information

 

    • Lab: Implementing Error Handling
    • Redirecting Errors with TRY / CATCH
  • Using THROW to Pass an Error Message Back to a Client

 

    • After completing this module, students will be able to:
    • Describe SQL Server’s behavior when errors occur in T-SQL code.
    • Implement structured exception handling in T-SQL.
    • Return information about errors from system objects.
  • Raise user-defined errors and pass system errors in T-SQL code.This module introduces the concepts of transaction management in SQL Server. It will provide a high-level overview of transaction properties, cover the basics of marking transactions with BEGIN, COMMIT and ROLLBACK.

 

Lessons

Module 19: Implementing Transactions

    • Transactions and the Database Engine
  • Controlling Transactions

 

    • Lab: Implementing Transactions
    • Controlling transactions with BEGIN, COMMIT, and ROLLBACK
  • Adding error handling to a CATCH block

 

    • After completing this module, students will be able to:
    • Describe transactions and the differences between batches and transactions.
    • Describe batches and how they are handled by SQL Server.
    • Create and manage transactions with transaction control language statements.
  • Use SET XACT_ABORT to define SQL Server’s handling of transactions outside TRY / CATCH blocks.This module introduces the concepts of system resource usage and the performance impact of querying SQL Server 2012. It will cover, at a high level, the use of indexes in SQL Server, the use of execution plans in SQL Server Management Studio, and the use of SET options to view system resource usage when executing queries. It will also compare set-based operations with cursor-based operations.

 

Lessons

Module 20: Improving Query Performance

    • Factors in Query Performance
    • Displaying Query Performance DataLab: Improving Query Performance
    •  
    • Viewing Query Execution Plans
  • Viewing Index Usage and Using SET STATISTICS Statements

 

  • After completing this module, students will be able to:
  • Describe components of well-performing queries.
  • Describe the role of indexes and statistics in SQL Server
  • Display and interpret basic query plans
  • Display and interpret basic query performance data