Microsoft SQL Server 2014 Programming

5 days

Course Overview

This 5 day course is intended for students new to querying and programming with Microsoft SQL Server products and who need a total immersion in the subject on the SQL Server 2014 platform. This is a comprehensive and intensive course with plenty of illustrated examples and augmented with practical hands-on exercises. All of the recently added and enhanced Transact-SQL features introduced in SQL Server (such as Window Functions) are included here to enable delegates to fully leverage the power of this latest release of Microsoft’s flagship database product. To cater for the more experienced SQL Server developer, this course can also be tailored to include only the material required.

Course Objectives

Upon successful completion of this course, students will be able to:

  • Identify the Primary Components of a Typical SQL Server 2014 Installation
  • Identify the Tools Available in SQL Server 2014
  • Use SQL Server Management Studio (SSMS)
  • Understand the Components of Transact-SQL (T-SQL)
  • Retrieve, Filter and Sort Data
  • Work with the Native SQL Server Data Types
  • Use Variables
  • Work with SQL Server Date and Time Data
  • Query Data from Multiple Tables by Using Joins
  • Summarize and Group Data
  • Use Window Functions for Ranking and Aggregating Data
  • Combine and Limit Result Sets
  • Work with Subqueries
  • Use Crosstab Queries
  • Use Common Table Expressions
  • Modify Data with INSERT, DELETE and UPDATE
  • Merge Data with the MERGE Statement
  • Understand and Implement Transactions
  • Understand SQL Server Locks
  • Understand SQL Server Indexes
  • Understand Query Performance Issues
  • Create and Manage Views
  • Control the Flow of Program Execution
  • Create and Implement Stored Procedures
  • Handle Errors and Exceptions
  • Create and Implement User Defined Functions
  • Create and Implement Triggers

Target student

This 5 day course is intended for students new to querying with Microsoft SQL Server products and who need a total immersion in the subject of SQL Server 2014.

Prerequisites

Students should ideally be familiar with basic programming concepts. They should also understand the fundamental design of relational databases including, but not restricted to, the purpose of primary and foreign keys, entity relationships, and data normalization.

Course Outline

1. Introduction to SQL Server Management Studio

  • Identify the Tools and Components of SQL Server
  • Identifying the Elements of SQL Server Management Studio (SSMS)
  • Objects in a SQL Server Database
  • Synonyms
  • Database Diagrams
  • Components of a SQL Server Database Table

2. Introduction to SQL and Transact-SQL

  • ANSI-SQL and Transact-SQL (T-SQL)
  • Categories of SQL Statements
  • T-SQL Scripts
  • Using Batches
  • Adding Comments to T-SQL Code

3. Using the SELECT Statement to Retrieve Data

  • Examine the Basic Syntax of the SELECT Statement
  • Using String Literals and Expressions
  • Retrieving Columns of Data from a Table
  • Using Aliases for Column Names

4. Filtering Rows of Data with the WHERE Clause

  • How to Use the WHERE Clause
  • Overview of Operators
  • Filter Data by Using Comparison Operators
  • Filter Data by Using String Comparisons
  • Filter Data by Using Logical Operators
  • Filter Data Using a Range of Values
  • Filter Data Using a List of Values
  • Filter Data with NULL Values

5. Formatting and Sorting Result Setse

  • Sorting Data Using the ORDER BY Clause
  • Overview of Operators
  • Eliminating Duplicate Rows with DISTINCT
  • Introducing Native SQL Server Functions
  • Functions Relating to NULL Values
  • Using the CASE Expression

6. Working with SQL Server Data Types

  • Native SQL Server Data Types
  • Working with Variables
  • Data Type Precedence
  • Implicit Data Type Conversions
  • Explicit Data Type Conversion Functions
  • Querying and Modifying Date and Time Data
  • Native SQL Server Date and Time Functions

7. Querying Data from Multiple Tables by Using Joins

  • Introduction to Joins
  • Using Inner Joins
  • Using Outer Joins
  • Using Cross Joins
  • Using Aliases for Table Names
  • Joining More than Two Tables
  • Joining a Table to Itself (Self Join)
  • Using Non-Equi Joins

8. Summarizing Data Using Aggregate Functions

  • Using Aggregate Functions Native to SQL Server
  • Using Aggregate Functions with NULL Values
  • Grouping Summarized Data with GROUP BY
  • Filtering Grouped Data Using the HAVING Clause
  • Using the ROLLUP and CUBE Operators
  • Using GROUPING SETS

9. Window Functions

  • Aggregate Window Functions
  • Ranking Window Functions
  • Analytic Window Functions

10. Combining and Limiting Result Sets

  • Combining Result Sets Using the UNION Operator
  • Using the EXCEPT and INTERSECT Operators
  • Using UNION, EXCEPT, and INTERSECT Together
  • Limiting Result Sets Using the TOP Operator
  • Using OFFSET/FETCH NEXT Filters
  • Using the TABLESAMPLE Operator

11. Working with Subqueries

  • Introduction to Subqueries
  • Using Subqueries as Expressions and Derived Tables
  • Using Correlated Subqueries
  • Using EXISTS with Correlated Subqueries
  • Using the APPLY Operator
  • Temporary Tables

12. Crosstab Queries

  • Using the PIVOT Operator
  • Using the UNPIVOT Operator
  • 13. Common Table Expressions
  • Introduction to Common Table Expressions
  • Using Common Table Expressions
  • Recursive Queries Using Common Table Expressions

14. Inserting Data into Tables

  • Inserting a Single Row into a Table
  • Inserting Multiple Rows into a Table
  • Inserting Values into Identity Columns
  • The SEQUENCE Object
  • Differentiating Various INSERT Statements
  • Using the OUTPUT Clause with the INSERT Statement

15. Deleting Data from Tables

  • Deleting Rows from a Table
  • Truncating a Table
  • Deleting Rows Based on Data in Other Tables
  • Using the OUTPUT Clause with the DELETE Statement

16. Updating Data in Tables

  • Updating Rows in a Table
  • Updating Rows Based on Data in Other Tables
  • Using the OUTPUT Clause with the UPDATE

17. Merging Data

  • The MERGE Statement
  • Practical Examples of Using MERGE

18. Transactions and Locking

  • What Is a Transaction?
  • How SQL Server Modifies Data in Tables
  • Managing Transactions
  • Nested Transactions
  • Transaction Isolation Levels
  • SQL Server Locking Architecture
  • Managing Locks

19. Performance Considerations for Writing Queries

  • How SQL Server Processes T-SQL Queries
  • Execution Plans
  • Dynamically Generating T-SQL Code
  • Understanding SQL Server Index Architecture
  • Creating and Using Non-Clustered Indexes
  • Creating and Using Clustered Indexes
  • Writing Efficient Search Arguments

20. Implementing Views

  • Overview of Views
  • Creating and Modifying a View
  • Considerations When Creating Views
  • Examining the Impact of Using SELECT * in Views
  • Restrictions for Modifying Data by Using Views
  • Indexed Views
  • Partitioned Views

21. Controlling Program Execution

  • Control-of-Flow Language Statements
  • Logical Functions

22. Implementing Stored Procedures

  • Overview of Stored Procedures
  • How Stored Procedures Are Executed by SQL Server
  • Creating and Using a Stored Procedure
  • Parameterising Stored Procedures
  • Returning Values from a Stored Procedure
  • Using Table Valued Parameters (TVPs)
  • Controlling Execution Context

23. Error Handling

  • Using @@ERROR
  • Using RAISERROR
  • Using TRY…CATCH
  • Using the THROW Statement

24. Implementing User Defined Functions

  • Overview of User Defined Functions (UDFs)
  • Creating and Modifying UDFs
  • Restrictions When Creating UDFs
  • Implementing Different Types of UDFs

25. Implementing Triggers

  • Overview of Triggers
  • How Triggers Work
  • AFTER Triggers
  • INSTEAD OF Triggers
  • Overview of DDL Triggers

Appendix 1. Querying Metadata

  • Understanding Metadata
  • Querying Metadata by Using Views
  • Querying Metadata by Using Stored Procedures
  • Querying Metadata by Using Functions
  • Metadata Discovery in SQL Server

Appendix 2. Distributed Queries

  • Ad Hoc Distributed Queries
  • Linked Servers
  • Distributed Queries Against Linked Servers