EIEIOTECHNOVATION
← Training programmes

EIEIO / DATA SCIENCE

6136-T-SQL 2005 WITH ADVANCED TOPICS

Course outline

4 days

Course Description

In this course, you'll start by learning about the basic features that are available in SQL Server, including how to design and create a database and how to build queries using Transact-SQL, the language of SQL Server. Then, you'll learn how to build effective views, stored procedures, triggers, and user-defined functions using Transact-SQL. You'll learn about the new enhancements to the Transact-SQL programming language including improved support for error handling and hierarchical queries, and how programmers can now use .NET languages like C# and Visual Basic to build database objects. You'll also learn about enhancements made to SQL Server 2005 for handling complex data structures, using partitioning, and working with XML.

Audience

Database developers and SQL Server administrators who need to understand the enhancements made to the Transact￾SQL programming language

Prerequisites

A good working knowledge of SQL Server 2000 or 2005, basic relational database concepts, XML, Transact-SQL, and a fundamental understanding of networking and security concepts is recommended.

Course Contents

A Tour of SQL Server 2005

SQL Server 2005 Editions, Components, and Tools

Editions

Server Components

Management Tools

Documentation and Samples

Using SQL Server Management Studio (SSMS)

Connecting Management Studio

The Object Explorer

Exploring the Sample Databases

Database Objects

Working with Tables and Queries

Creating Tables

Creating Views

:: Course 6136 ::

Generating Scripts

New Transact-SQL Features

Common Table Expressions (CTEs)

Ranking Functions

TOP(n) and APPLY

PIVOT

FOR XML PATH

Try/Catch Error Handling

Using EXECUTE AS

Using Snapshot Isolation

Running CLR Code in SQL Server 2005

Business Intelligence Services

SQL Server Integration Services (SSIS)

SQL Server Business Intelligence Development Studio (BIDS)

Reporting Services

Analysis Services (SSAS)

Designing and Creating a Database

Relational Database Design Principles

The Origins of Relational Design

Data Normalization

Understanding Referential Integrity

Beyond Normalization

Implementing the Design

Database Storage

Creating Databases

Modifying Database Options

Creating Tables

Creating Constraints

Triggers

Creating Indexes

Using Database Diagrams

Data Selection Queries

Understanding Transact-SQL

Schemas and Naming in SQL Server 2005

The SELECT Statement

Selecting All Columns

Concatenating Columns

Naming Columns

Using DISTINCT to Limit Values

The WHERE Clause

Transact-SQL Comparison Operators

The LIKE Operator

The BETWEEN Operator

Using IS NULL to Test for Nulls

Multiple Conditions with AND, OR, and NOT

Operator Precedence

Using the IN Operator

Using ORDER BY to Sort Data

Sorting on a Single Column

Sorting by Multiple Columns

Sorting with Expressions

The GROUP BY Clause

:: Course 6136 ::

Aggregate Functions

Counting Rows

Counting Columns

Counting with a WHERE Clause

Using GROUP BY

Using ORDER BY with GROUP BY

Using HAVING with GROUP BY

TOP Values Queries

Joining Tables

Cross Joins (Cartesian Products)

The Use of Keys in Joining

Join Notation

Inner Joins

Outer Joins

Self Joins

Modifying Data

Inserting Data

Inserting a Single Value

Inserting Multiple Values

Inserting Multiple Rows

Creating a New Table using SELECT INTO

Temporary Tables

Using Bulk Copy to Insert Data

Updating Data

Updating a Single Row

Updating Multiple Rows and Columns

Updating from Another Table

Updating with TOP

Updating Large Value Types with UPDATE.WRITE

Deleting Data

Deleting a Single Row

Deleting Multiple Rows

Understanding Transaction Isolation

Isolation Levels Explained

Blocking and Deadlocks

Using Snapshot Isolation

Working with SQL Server Management Studio

Getting Started with SSMS

Connecting to Management Studio

SSMS Toolbars

Overview of SSMS Menu Options

Configuring SSMS Windows

Exploring the Object Explorer

Right-Click Menu Options

Server and Database Objects

Displaying and Filtering Objects

Finding Objects

Editing Database Objects in the SSMS Designers

Working with the Query Editor

Displaying Multiple Code Windows

Formatting and Editing Code

:: Course 6136 ::

Scripting with SSMS

Executing Queries

Creating Projects and Solutions

Working Offline

Using SQL Server Books Online

Getting Help in SSMS

Transact-SQL Programming

Overview of Transact-SQL

Transact-SQL Extensions

Batches and Scripts

Variables

Delimiters and Operators

Transact-SQL and Data Types

Using Built-In Functions

Working with Nulls

Handling Numbers

Manipulating Strings

Working with Date and Time Values

Using the @@ Functions

Controlling Flow

IF…ELSE

BEGIN…END

GOTO, RETURN, and Labels

CASE

WHILE

WAITFOR

Ranking Results

Transactions and Error Handling

Transaction Concepts

Passing the ACID Test

Transaction Types

Avoiding Blocked Transactions

Working around Deadlocks

Applications and Transactions

Designing Transactional Support

Understanding Compile and Runtime Errors

Creating Explicit Transactions

Explicit Transaction Syntax

Transact-SQL Error Handling in Transactions

Using RAISERROR

Using TRY/CATCH Error Handling

TRY/CATCH Overview

Using TRY/CATCH in a Stored Procedure

Handling Uncommittable Transactions with XACT_STATE

Creating Views

What is a View?

Advantages of Views

Views and Security

Creating Views

View Rules

View Syntax and Options

:: Course 6136 ::

Tools for Creating Views

Nesting Views, Derived Tables, and CTEs

Encrypting View Definitions

Updating Data Using a View

Updating Rules

Updating Behavior

Using Computed Columns

Creating a Computed Column

Indexed Views

How Indexed Views Work

Creating Stored Procedures and Triggers

Creating Stored Procedures

Stored Procedure Features

Stored Procedures Performance Benefits

Reasons to Use Stored Procedures

Stored Procedure Syntax

Creating Stored Procedures Using SSMS

Creating and Executing Stored Procedures

Working with Parameters

Testing and Debugging Stored Procedures

Creating Triggers

Uses for Triggers

How Triggers Work

Creating and AFTER Trigger

Creating an INSTEAD OF Trigger on a View

Creating a DDL Trigger to Restrict Table Creation

Creating User-Defined Functions

User-Defined Function Overview

Scalar Functions

Scalar Function Syntax

Inline Table-Valued Functions

Inline Syntax

Executing Inline Table-Valued Functions

Inline Functions with Parameters

Updating Data with Inline Functions

Multi-Statement Table-Valued Functions

Multi-Statement Function Syntax

Executing Multi-Statement Functions

Joining to Functions

Using Functions, Views, and Stored Procedures

Using Scalar Functions

Using Table-Valued Functions

Choosing Between Functions, Views, and Stored Procedures

:: Course 6136 ::

Using .NET Code in SQL Server 2005

Introduction

Ways to Use SQLCLR

Enabling SQLCLR

Writing SQLCLR Code Manually

Creating SQLCLR Code Using Visual Studio 2005

SQL Data Types

Accessing Local Data

Returning Results

SQLCLR Code Modules

Stored Procedures and Triggers

User-Defined Functions

Aggregates

Managing Code Modules

System Catalogs

Troubleshooting

SQLCLR Security

Code Access Security (CAS)

SQLCLR Permission Sets

T-SQL vs. .NET Code

Advanced Query Techniques

Full-Text Search

SQL Server 2005 Enhancements

Configuring Full-Text Search

Writing Full-Text Queries

The CONTAINS Predicate

The FREETEXT Predicate

Using CONTAINSTABLE and FREETEXTTABLE

Using Full-Text DDL

Generating XML with FOR XML

Using AUTO Mode

Using RAW Mode

Using EXPLICIT Mode

Using PATH Mode

Using APPLY

Comparing APPLY to Using Joins

Using APPLY with Table-Valued Functions

Combining APPLY with FOR XML PATH

Creating Recursive Queries

Using a Common Table Expression (CTE)

Creating Pivot Queries

Rotating Column Data into Column Heading

Executing Dynamic SQL

Overcoming PIVOT Limitations

Using Parameters with sp_executesql

Using QUOTENAME()

Using sp_executesql with Output Parameters

Signing Stored Procedures with Certificates

:: Course 6136 ::

Implementing SQL Server Partitions

Overview of Table-Based Partitioning

Why Partition?

What’s New in SQL Server 2005?

Range Partitions

Partition Key and Number of Partitions

Using Multiple Filegroups

Index Partitioning

Creating Partitioned Tables

Creating a Partition Function

Creating a Partition Scheme

Partitioning Tables and Indexes

Querying Partitions

Using the $PARTITION Function

Catalog Views

Managing Partitions

Modifying Partitioned Tables or Indexes

Modifying a Partition Function

Modifying a Partition Scheme

Backing Up Partitions

Performance Considerations

Complex Querying

Working with NULL Values

SqlTypes and CLR Types

About the ANSI_NULLS Option

NULLs and SqlBoolean

Assigning Null Values

Ranking Grouped Data

The ROW_NUMBER Function

Using the RANK Function

Introducing the DENSE_RANK Function

The NTILE Function

Writing Correlated Subqueries

Subquery Basics

What is a Correlated Subquery?

Using the WHERE Clause

Correlated Subqueries and Updates

Comparing to Joins and Temp Tables

Using Common Table Expressions

When to Use CTEs

CTE Syntax

Recursive CTEs

:: Course 6136 ::

Advanced Techniques

Complex Data and Structures

Issues with Data Types

Working with Multinational Data

Working with Hierarchical Data

Writing More Efficient Queries

The EXISTS Clause

Joins vs. Subqueries

One-Pass Queries

Using Temporary Tables

Table Variables

User-Defined Table-Valued Functions

Common Table Expressions

Worktables

Working wit Complex Queries

Using Implicit Transactions

Keeping it Simple

Maintaining Query Files

Using Source Control and Versioning

Using Visual SourceSafe

Working with XML

The xml Data Type

Declaring XML Objects

Loading Data into an XML Instance

Indexing XML Columns

XML Schema Collections

Typed and Untyped XML

Schema Basics

Registering Schemas

Viewing Stored Schemas

Querying XML

XQuery

FOR XML

OPENXML

Best Practices

Relational vs. XML Data Model

Storing XML in SQL Server 2005

Reasons to Index XML Columns

Querying

Programme scope, delivery arrangements and suitability are confirmed during enquiry.