19
Module 9: Introduction to Programming Objects

Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Embed Size (px)

Citation preview

Page 1: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Module 9: Introduction to Programming Objects

Page 2: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Overview

Displaying the Text of a Programming Object

Introduction to Views

Advantages of Views

Creating Views

Introduction to Stored Procedures

Introduction to Triggers

Introduction to User-defined Functions

Page 3: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Displaying the Text of a Programming Object

EXEC sp_helptext [@objectname = ] ‘name’

Not Every Programming Object Has Associated Text

USE libraryEXEC sp_helptext 'dbo.OverdueView'GO

USE libraryEXEC sp_helptext 'dbo.OverdueView'GO

Page 4: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Introduction to Views

TitleViewTitleViewTitleViewTitleView

title title author author

Last of the MohicansThe Village Watch-TowerPoems

Last of the MohicansThe Village Watch-TowerPoems

James Fenimore CooperKate Douglas WigginWilfred Owen

James Fenimore CooperKate Douglas WigginWilfred Owen

titletitletitletitle

title_notitle_no title title author author synopsissynopsis

123

123

Last of the MohicansThe Village Watch-TowerPoems

Last of the MohicansThe Village Watch-TowerPoems

James Fenimore CooperKate Douglas WigginWilfred Owen

James Fenimore CooperKate Douglas WigginWilfred Owen

~~~~~~~~~

~~~~~~~~~

User’s ViewUser’s ViewUser’s ViewUser’s View

USE libraryGOCREATE VIEW dbo.TitleViewAS SELECT title, author FROM titleGO

USE libraryGOCREATE VIEW dbo.TitleViewAS SELECT title, author FROM titleGO

Page 5: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Advantages of Views

Focus the Data for Users Focus on important or appropriate data only Limit access to sensitive data

Mask Database Complexity

Hide complex database design

Simplify complex queries, including distributed queries to heterogeneous data

Simplify Management of User Permissions

Organize Data for Export to Other Applications

Page 6: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Creating Views

Defining Views

Restrictions on Creating Views

Example: Viewing Information from Multiple Tables

Page 7: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Defining Views

USE libraryGOCREATE VIEW dbo.UnpaidFinesView (Member, TotalUnpaidFines)ASSELECT member_no, (sum(fine_assessed-fine_paid)) FROM loanhist GROUP BY member_no HAVING SUM(fine_assessed-fine_paid) > 0GO

USE libraryGOCREATE VIEW dbo.UnpaidFinesView (Member, TotalUnpaidFines)ASSELECT member_no, (sum(fine_assessed-fine_paid)) FROM loanhist GROUP BY member_no HAVING SUM(fine_assessed-fine_paid) > 0GO

SELECT * FROM UnpaidFinesViewGO

SELECT * FROM UnpaidFinesViewGO

Example 1: Creating a ViewExample 1: Creating a View

Example 2: Querying a ViewExample 2: Querying a View

Page 8: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Restrictions on Creating Views

Can Reference a Maximum of 1024 Columns

Cannot Include COMPUTE or COMPUTE BY clauses

Cannot Include ORDER BY Clause, Unless Used in Conjunction with a TOP Clause

Cannot Include the INTO Keyword

Cannot Reference a Temporary Table

Must Be Expressed as a Single Transact-SQL Batch

Page 9: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

lastnamelastnamelastnamelastname

ThomasFunk

ThomasFunk

firstnamefirstnamefirstnamefirstname

GaryFrank

GaryFrank

Birth DateBirth DateBirth DateBirth Date

92.01.1684.01.18

92.01.1684.01.18

member_nomember_nomember_nomember_no

1213

1213

adult_noadult_noadult_noadult_no

116

116

birth_datebirth_datebirth_datebirth_date

1992-01-16 00:00:00.0001984-01-18 00:00:00.000

1992-01-16 00:00:00.0001984-01-18 00:00:00.000

Example: Viewing Information from Multiple Tables

member juvenile

BirthdayView

USE libraryGOCREATE VIEW dbo.birthdayview (lastname, firstname, birthday)ASSELECT lastname, firstname ,CONVERT(char(8), birth_date, 2) FROM member INNER JOIN juvenile ON member.member_no = juvenile.member_no GO

USE libraryGOCREATE VIEW dbo.birthdayview (lastname, firstname, birthday)ASSELECT lastname, firstname ,CONVERT(char(8), birth_date, 2) FROM member INNER JOIN juvenile ON member.member_no = juvenile.member_no GO

member_nomember_nomember_nomember_no

11121314

11121314

lastnamelastnamelastnamelastname

ThomasThomasFunk Rudd

ThomasThomasFunk Rudd

firstnamefirstnamefirstnamefirstname

GaryClairFrankClair

GaryClairFrankClair

middleinitialmiddleinitialmiddleinitialmiddleinitial

~~~~~~~~~~~~

~~~~~~~~~~~~

photographphotographphotographphotograph

~~~~~~~~~~~~

~~~~~~~~~~~~

Page 10: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Defining Stored Procedures

Advantages of Using Stored Procedures

Introduction to Stored Procedures

Page 11: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Defining Stored Procedures

A Stored Procedure Is a Precompiled Collection of Transact-SQL Statements

A Stored Procedure Encapsulates Repetitive Tasks

Stored Procedures Can:

Contain statements that perform operations

Accept input parameters Return status value to indicate success or failure Return multiple output parameters

Page 12: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Advantages of Using Stored Procedures

Share Application Logic

Shield Database Schema Details

Provide Security Mechanisms

Improve Performance

Reduce Network Traffic

Page 13: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Introduction to Triggers

A Trigger Is a Special Type of Stored Procedure

A Trigger Is:

Associated with a table

Invoked automatically

Not called directly

Treated as part of the transaction that fired it

Page 14: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Introduction to User-defined Functions

What Is a User-defined Function?

Creating a User-defined Function

Page 15: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

What Is a User-defined Function?

Scalar Functions

Similar to a built-in function

Returns a single data value built by a series of statements

Multi-Statement Table-valued Functions

Content like a stored procedure

Referenced like a view

In-line Table-valued Functions

Similar to a view with parameters

Returns a table as the result of single SELECT statement

Page 16: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Creating a User-defined Function

Restrictions on User-defined Functions

Creating a User-defined Function

USE northwindGOCREATE FUNCTION fn_NewRegion ( @myinput nvarchar(30) ) RETURNS nvarchar(30)BEGIN IF @myinput IS NULL SET @myinput = 'Not Applicable'

RETURN @myinputENDGO

USE northwindGOCREATE FUNCTION fn_NewRegion ( @myinput nvarchar(30) ) RETURNS nvarchar(30)BEGIN IF @myinput IS NULL SET @myinput = 'Not Applicable'

RETURN @myinputENDGO

Page 17: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Verify Object Definition Text with EXEC sp_helptextVerify Object Definition Text with EXEC sp_helptext

Use Views to Capture and Reuse QueriesUse Views to Capture and Reuse Queries

Use Stored Procedures to Encapsulate Complex ProceduresUse Stored Procedures to Encapsulate Complex Procedures

Use User-defined Functions to Encapsulate ExpressionsUse User-defined Functions to Encapsulate Expressions

Recommended Practices

Page 18: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Lab A: Working with Views

Page 19: Module 9: Introduction to Programming Objects. Overview Displaying the Text of a Programming Object Introduction to Views Advantages of Views Creating

Review

Displaying the Text of a Programming Object

Introduction to Views

Advantages of Views

Creating Views

Introduction to Stored Procedures

Introduction to Triggers

Introduction to User-defined Functions