Module 1: Introduction to Transact-SQL
Overview
The Transact-SQL Programming Language Types of Transact-SQL Statements Transact-SQL Syntax Elements
The Transact-SQL Programming Language
Implements Entry-Level ANSI SQL-92 ISO Standard Can Be Run on Any Entry-Level Compliant Product Contains Additional Unique Functionality
Types of Transact-SQL Statements
Data Definition Language Statements Data Control Language Statements Data Manipulation Language Statements
Data Definition Language Statements
Define the Database Objects
CREATE object_name
ALTER object_name DROP object_name
Must Have the Appropriate Permissions
USE northwind CREATE TABLE customer (cust_id int, company varchar(40), contact varchar(30), phone char(12) ) GO
Data Control Language Statements
Set or Change Permissions
GRANT DENY REVOKE
Must Have the Appropriate Permissions
USE northwind GRANT SELECT ON products TO public GO
Data Manipulation Language Statements
USE DML Statements to Change Data or Retrieve Information SELECT INSERT UPDATE DELETE Must Have the Appropriate Permissions
USE northwind SELECT categoryid, productname, productid, unitprice FROM products GO
Transact-SQL Syntax Elements
Batch Directives Comments Identifiers Types of Data Variables
System Functions Operators Expressions Control-of-Flow Language Elements Reserved Keywords
Batch Directives
GO
Delineates batches of Transact-SQL statements to tools and utilities
Is not an actual Transact-SQL statement
Executes a user-defined function, system procedure, user-defined stored procedure, or an extended stored procedure Controls the execution of a character string within a Transact-SQL batch
EXEC
Comments
In-line Comments
Example 1
SELECT productname , (unitsinstock - unitsonorder) -- Calculates inventory , supplierID FROM products GO
Block Comments
Example 3
/* This code retrieves all rows of the products table and displays the unit price, the unit price increased by 10 percent, and the name of the product. */ USE northwind SELECT unitprice, (unitprice * 1.1), productname FROM products GO
Identifiers
Standard Identifiers
First character must be alphabetic Other characters can include letters, numerals, or symbols
Identifiers starting with symbols have special uses Delimited Identifiers Use when names contain embedded spaces Use when reserved words are portions of names Enclose in brackets ([ ]) or quotation marks (" ")
Naming Guidelines for Identifiers
Keep Names Short
Use Meaningful Names Where Possible Use Clear and Simple Naming Conventions Use an Identifier That Distinguishes Types of Object
Views Stored procedures Sales table and sales role
Keep Object Names and User Names Unique
Types of Data
Numbers Dates Characters Binary Unique Identifiers (GUID)
SQL Variants Image and Text Table Cursor User-defined
Variables
User-defined with DECLARE @ Statement
Assigned Values with SET or SELECT @ Statement
Variables Have Local Scope
USE northwind DECLARE @EmpID varchar(11) ,@vlName char(20) SET @vlname = 'Dodsworth' SELECT @EmpID = employeeid FROM employees WHERE LastName = @vlname SELECT @EmpID AS EmployeeID GO
System Functions
Aggregate Functions
USE northwind SELECT AVG (unitprice) AS AvgPrice FROM products GO
Scalar Functions
USE northwind SELECT DB_NAME() AS 'database GO
Rowset Functions
SELECT * FROM OPENQUERY (OracleSvr, 'SELECT name, id FROM owner.titles')
System Function Examples
Example 1
SELECT 'ANSI:', CONVERT(varchar(30), GETDATE(), 102) AS Style UNION SELECT 'Japanese:', CONVERT(varchar(30), GETDATE(), 111) UNION SELECT 'European:', CONVERT(varchar(30), GETDATE(), 113) GO
Result Style
ANSI:
Japanese: European:
1998.03.19
1998/03/19 19 Mar 1998 16:34:40:616
Operators
Types of Operators
Arithmetic Comparison String concatenation Logical
Operator Precedence Levels
Expressions
Combination of Symbols and Operators Evaluation to Single Scalar Value Result Data Type Dependent on the Elements Within the Expression
USE SELECT
northwind OrderID, ProductID ,(UnitPrice * Quantity) as ExtendedAmount FROM [Order Details] WHERE (UnitPrice * Quantity) > 10000 GO
Control-of-Flow Language Elements
Example 2 DECLARE @n tinyint SET @n = 5 IF (@n BETWEEN 4 and 6) BEGIN WHILE (@n > 0) BEGIN SELECT @n AS 'Number' ,CASE WHEN (@n % 2) = 1 THEN 'EVEN' ELSE 'ODD' END AS 'Type' SET @n = @n - 1 END END ELSE PRINT 'NO ANALYSIS GO
Statement Level
BEGIN END block IF ELSE block WHILE constructs
Row Level
CASE function
Reserved Keywords
Identifier Names That Have Special Meaning
Transact-SQL keywords ANSI SQL-92 keywords ODBC reserved keywords
Do Not Use Reserved Keywords for Identifier Names
Lab A: Using SQL Server Books Online
Review
The Transact-SQL Programming Language Types of Transact-SQL Statements Transact-SQL Syntax Elements