Course Outline:
Part 1: What we need to know before learning to write queries
- Module 1: Introduction to Microsoft SQL Server
- Overview of items we will need for this course:
- Microsoft SQL Server Management Studio (SSMS)
- Connecting to a server
- The Object Explorer
- The Query Window
- Module 2: Writing Scripts
- Creating a Project / Solution
- What is a Script?
- What is a Batch
- The Use statement
- The Go command
- Declaring a variable
- Begin End
- While Loop
- If Statement
- The Return, Break, Continue keywords
Part 2: Retrieving and Manipulating Data
- Module 3: Select Statements
- SELECT List
- Using an Alias for column names
- FROM Clause
- WHERE Clause
- IN operator
- BETWEEN operator
- LIKE operator
- AND / OR / NOT operators
- ORDER BY Clause
- TOP keyword
- Module 4: Useful T-SQL Functions
- Module 5: Joining Multiple Tables
- JOIN Operator
- LEFT / RIGHT / OUTER JOIN
- UNION
- Module 6: Grouping and Summarizing Data
- Working with Aggregate Functions
- GROUP BY Clause
- HAVING Clause
- COMPUTE and COMPUTE BY
- Module 7: Using Subqueries
- Subqueries as expressions
- Subqueries as Tables
- Correlated Queries
- EXIST Clause
Part 3: Inserting, Updating and Deleting Data
- Module 8: Modifying Data
- INSERT statements
- UPDATE statements
- DELETE statements
- Output clause
- Transactions
- Error Handling
- Try/Catch
Part 4: Advanced T-SQL Topics
- Module 9: Advanced T-SQL Topics
- Stored Procedures
- Views
- User Defined Functions Overview
- Triggers Overview
- For XML / For JSON
- CTE
- Merge
- Temporary Tables
Part 5: Overview of Microsoft SQL Server (If Time Permits)
- Appendix 1: Misc Optional Instructor Lead Overviews
- Query Performance Overview
- Query Execution Plans
- Administration Overview
- Implementing Overview
- SSRS Described
- SSIS Described
- SSAS Described
- Appendix 2: Overview of Relational Data
- Tables
- Data types overview
- Relationships overview
- Database Diagrams
- Schemas
Additional Boot Camp Topics
Designing and Implementing Tables
This module explains how to design, create, and alter tables. Also it focusses on working with schemas.
Lessons
- Designing Tables
- Working with Schemas
- Creating and Altering Tables
Lab : Designing and Implementing Tables
- Improving the Design of Tables
- Creating a Schema
- Creating the Tables
After completing this module, students will be able to:
- Design Tables.
- Work with Schemas.
- Create and Alter Tables.
Ensuring Data Integrity through Constraints
This module explains how to enforce data integrity, and implement domain integrity to maintain high quality data. Also it focusses on implementing Entity and Referential Integrity.
Lessons
- Enforcing Data Integrity
- Implementing Domain Integrity
- Implementing Entity and Referential Integrity
Lab : Ensuring Data Integrity through Constraints
- Designing Constraints
- Testing the constraints
After completing this module, students will be able to:
- Explain the available options for enforcing data integrity and the levels at which they should be applied.
- Implement domain integrity.
- Implement entity and referential integrity.
Planning for SQL Server Indexing
This module explains the core indexing concepts and effectiveness of each data type commonly used in indexes.
Lessons
- Core Indexing Concepts
- Data Types and Indexes
- Single Column and Composite Indexes
Lab : Planning for SQL Server Indexing
- Exploring existing index statistics
- Designing column orders for indexes
After completing this module, students will be able to:
- Explain core indexing concepts.
- Describe the effectiveness of each data type common used in indexes.
- Plan for single column and composite indexes.
Implementing Table Structures in SQL Server
This module explains how tables can be structured in SQL Server databases. Also it focusses on designing and working with clustered indexes.
Lessons
- SQL Server Table Structures
- Working with Clustered Indexes
- Designing Effective Clustered Indexes
Lab : Implementing Table Structures in SQL Server
- Creating Tables as Heaps
- Creating Tables with Clustered Indexes
- Comparing the Performance of Clustered Indexes vs. Heaps
After completing this module, students will be able to:
- Explain how tables can be structured in SQL Server databases.
- Work with clustered indexes.
- Design effective clustered indexes.
Reading SQL Server Execution Plans
This module explains how to design additional indexes. Also it focusses on how to read and interpret execution plans.
Lessons
- Execution Plan Core Concepts
- Common Execution Plan Elements
- Working with Execution Plans
Lab : Reading SQL Server Execution Plans
- Actual vs. Estimated Plans
- Identifying Common Plan Elements
- Querying Cost Comparison
After completing this module, students will be able to:
- Explain the core concepts related to the use of execution plans.
- Describe the role of the most common execution plan elements.
- Work with execution plans.
Improving Performance through Nonclustered Indexes
This module explains how nonclustered indexes have the potential to significantly enhance the performance of applications and how to use a tool that can help design these indexes appropriately.
Lessons
- Designing Effective Nonclustered Indexes
- Implementing Nonclustered Indexes
- Using the Database Engine Tuning Advisor
Lab : Improving Performance through Nonclustered Indexes
- Nonclustered index usage review
- Improving nonclustered index designs
- Working with SQL Server Profiler and Database Engine Tuning Advisor
- Designing nonclustered index
After completing this module, students will be able to:
- Design effective nonclustered indexes
- Implement nonclustered indexes
- Use the database engine tuning advisor to design indexes
Designing and Implementing Views
This module introduces Views, and explains how to create and manage Views. Also it focusses on the performance consideration for Views.
Lessons
- Introduction to Views
- Creating and Managing Views
- Performance Considerations for Views
Lab : Designing and Implementing Views
- Designing, Implementing and Testing the WebStock Views
- Designing and Implementing the Contacts View
- Modifying the AvailableModels View
After completing this module, students will be able to:
- Explain the role of views in database development.
- Implement views.
- Describe the performance related impacts of views.
Designing and Implementing Stored Procedures
This module describes the potential advantages of the use of stored procedures along with guidelines on creating them.
Lessons
- Introduction to Stored Procedures
- Working With Stored Procedures
- Implementing Parameterized Stored Procedures
- Controlling Execution Context
Lab : Designing and Implementing Stored Procedures
- Creating stored procedures
- Creating a parameterized stored procedure
- Altering the execution context of stored procedures
After completing this module, students will be able to:
- Describe the role of stored procedures and the potential benefits of using them.
- Work with stored procedures.
- Implement parameterized stored procedures.
- Control the execution context of a stored procedure.
Merging Data and Passing Tables
This module reviews the techniques that provide the ability to process sets of data rather than individual rows. Also it focusses on how these techniques can be used in combination with TABLE parameter types to minimize the number of required stored procedure calls in typical applications.
Lessons
- Using the MERGE Statement
- Implementing Table Types
- Using TABLE Types As Parameters
Lab : Passing Tables and Merging Data
- Creating a Table Type
- Using a Table Type Parameter
- Using a Table Type with MERGE
After completing this module, students will be able to:
- Use the MERGE statement.
- Implement table types.
- Use TABLE types as parameters.
Designing and Implementing User-Defined Functions
This module explains how to design and implement user-defined functions that enforce business rules or data consistency, and modify and maintain existing functions written by other developers.
Lessons
- Overview of Functions
- Designing and Implementing Scalar Functions
- Designing and Implementing Table-Valued Functions
- Implementation Considerations for Functions
- Alternatives to Functions
Lab : Designing and Implementing User-Defined Functions
- Formatting Phone Numbers
- Modifying an Existing Function
- Resolve a Function-related Performance Issue
After completing this module, students will be able to:
- Design and implement scalar functions.
- Design and implement table-valued functions.
- Describe implementation considerations for functions.
- Describe alternatives to functions.
Creating Highly Concurrent SQL Server Applications
This module explains how to use transactions and the SQL Server locking mechanisms to meet the performance and data integrity requirements of your applications.
Lessons
- Introduction to Transactions
- Introduction to Locks
- Management of Locking
- Transaction Isolation Levels
Lab : Creating Highly Concurrent SQL Server Applications
- Detecting Deadlockss
- Investigating Transaction Isolation Levels
After completing this module, students will be able to:
- Describe the role of transactions
- Explain the role of locks
- Manage locking
- Work with transaction isolation level
Handling Errors in T-SQL Code
This module explores T-SQL error handling, looks at how it has traditionally been implemented, and how structured exception handling can be used.
Lessons
- Understanding T-SQL Error Handling
- Implementing T-SQL Error Handling
- Implementing Structured Exception Handling
Lab : Handling Errors in T-SQL Code
- Replacing @@ERROR based error handling with structured exception handling
- Adding deadlock retry logic to the stored procedure
After completing this module, students will be able to:
- Design T-SQL error handling
- Implement T-SQL error handling
- Implement structured exception handling
Responding to Data Manipulation via Triggers
This module, explains what DML triggers are and how they enforce data integrity. Also it focusses on the different types of triggers available, and how to define triggers in a database.
Lessons
- Designing DML Triggers
- Implementing DML Triggers
- Advanced Trigger Concepts
Lab : Responding to Data Manipulation via Triggers
- Creating and Testing the Audit Trigger
- Improving the Audit Trigger
After completing this module, students will be able to:
- Design DML triggers.
- Implement DML triggers.
- Explain advanced DML trigger concepts.
Implementing Managed Code in SQL Server
This module explains how to use CLR integrated code to create user-defined database objects that are managed by the .NET Framework.
Lessons
- Introduction to SQL CLR Integration
- Importing and Configuring Assemblies
- Implementing SQL CLR Integration
Lab : Designing and Implementing Views
- Assessing Proposed CLR Code
- Implementing a CLR Assembly
- Implementing a CLR User-defined Aggregate and CLR User-defined Data Type
After completing this module, students will be able to:
- Explain the importance of SQL Server CLR Integration.
- Import and configure assemblies.
- Implement objects that have been created within .NET assemblies.
Storing XML Data in SQL Server
This module introduces XML and shows how XML data can be stored within SQL Server.
Lessons
- Introduction to XML and XML Schemas
- Storing XML Data and Schemas in SQL Server
- Implementing the XML Data Type
Lab : Storing XML Data in SQL Server
- Appropriate Usage of XML Data Storage in SQL Server
- Investigating the Storage of XML Data in Variables
- Investigating the use of XML Schema Collections
- Investigating the Creation of Database Columns Based on XML
After completing this module, students will be able to:
- Describe XML and XML schemas.
- Store XML data and associated XML schemas in SQL Server.
- Implement the XML data type within SQL Server.
Querying XML Data in SQL Server
This module shows how XML data can be queried, including queries written in a language called XQuery.
Lessons
- Using the T-SQL FOR XML Statement
- Getting Started with XQuery
- Shredding XML
Lab : Querying XML Data in SQL Server
- Learning to query SQL Server data as XML
- Writing a stored procedure returning XML
- Writing a stored procedure that updates using XML
After completing this module, students will be able to:
- Use the T-SQL FOR XML Statement.
- Work with basic XQuery queries.
- Shred XML to a relational form.
Working with SQL Server Spatial Data
This module introduces Spatial Data, and explains how to work with SQL Server Spatial Data Types.
Lessons
- Introduction to Spatial Data
- Working with SQL Server Spatial Data Types
- Using Spatial Data in Applications
Lab : Working with SQL Server Spatial Data
- Familiarity With Geometry Data Type
- Adding Spatial Data to an Existing Table
- Business Application of Spatial Data
After completing this module, students will be able to:
- Describe the importance of spatial data and the industry standards related to it.
- Explain how to store spatial data in SQL Server.
- Perform calculations on and query SQL Server spatial data.
Working with Full-Text Indexes and Queries
This module introduces Full-Text Indexing and how to implement Full-Text Indexes in SQL Server.
Lessons
- Introduction to Full-Text Indexing
- Implementing Full-Text Indexes in SQL Server
- Working with Full-Text Queries
Lab : Working with Full-Text Indexes and Queries
- Implementing a full-text index
- Implementing a stoplist
- Creating a stored procedure to implement a full-text search
After completing this module, students will be able to:
- Describe why user interfaces in existing applications are not sufficient for end user search needs
- mplement full-text indexes in SQL Server
- Query SQL Server using full-text queries
|