Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Concurrency control wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Clusterpoint wikipedia , lookup
Versant Object Database wikipedia , lookup
Relational model wikipedia , lookup
Database model wikipedia , lookup
Open Database Connectivity wikipedia , lookup
SQL SERVER 2012 DEVELOPMENT 5 Day, Hands-On Course Author © David Ringsell 1 2. LANGUAGE FEATURES SQL Server Programming Tools Elements of Transact-SQL SQL Server Object Names Additional Language Elements Local Variables Operators Functions Ways to Execute Transact-SQL Statements New Transact-SQL (T-SQL) Features 2 SQL Server Programming Tools SQL Server Management Studio Color-codes syntax elements automatically Multiple query windows Customizable views of result sets Graphical execution plans Execute portions of scripts osql Utility Command-line utility 3 The Transact-SQL Programming Language SQL Server Implementation of Entry-Level ANSI ISO Standard Can Be Run on Any Entry-Level Compliant Product Contains Additional Unique Functionality 4 Elements of Transact-SQL Data Control Language Statements Data Definition Language Statements Data Manipulation Language Statements SQL Server Object Names Naming Guidelines 5 Data Control Language Statements Set or Change Permissions GRANT DENY REVOKE By Default, Only sysadmin, dbcreator, db_owner, and db_securityadmin Roles Can Execute 6 Data Definition Language Statements Define the Database Objects CREATE object_type object_name ALTER object_type object_name DROP object_type object_name 7 Data Manipulation Language Statements Use When Working with Data in the Database SELECT INSERT UPDATE DELETE 8 SQL Server Object Names 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 (" ") 9 Naming Guidelines Use Meaningful Names Where Possible Keep Names Short Use a Clear and Simple Naming Convention Chose an Identifier That Distinguishes Types of Objects Views Stored procedures Keep Object Names and User Names Unique 10 Additional Language Elements Local Variables Operators Functions Function Examples Control of Flow Language Elements Comments 11 Local Variables User-defined with DECLARE Statement Assigned Values with SET or Select Statement DECLARE @vLastName char(20), @vFirstName varchar(11) SET @vLastName = 'Dodsworth' SELECT @vFirstName = FirstName FROM Northwind..Employees WHERE LastName = @vLastName PRINT @vFirstName + ' ' + @vLastName GO 12 Operators Types of Operators Arithmetic Comparison String concatenation Logical Operator Precedence Levels 13 Functions Aggregate Functions SELECT AVG (UnitPrice) FROM Products Scalar Functions SELECT DB_NAME() AS 'database' Rowset Functions SELECT * FROM OPENQUERY (OracleSvr, 'SELECT ENAME, EMPNO FROM SCOTT.EMP') 14 Function Examples SELECT 'ANSI:' AS Region, CONVERT(varchar(30), GETDATE(), 102) AS Style UNION SELECT 'European:', CONVERT(varchar(30), GETDATE(), 113) UNION SELECT 'Japanese:', CONVERT(varchar(30), GETDATE(), 111) Result Region Style ANSI: European: Japanese: 2000.03.22 1 22 Mar 1 2000 14:20:00:010 2000/03/22 15 Control of Flow Language Elements Statement Level BEGIN…END blocks IF…ELSE blocks WHILE constructs Row Level IF USER_NAME() <> 'dbo' BEGIN RAISERROR('Must be sysadmin to Perform Operation', 10, 1) RETURN END ELSE DBCC CHECKDB(Northwind) CASE expression 16 Comments In-Line Comments SELECT ProductName, (UnitsInStock + UnitsOnOrder) AS Max -- Calculates inventory , SupplierID FROM Products Block Comments /* ** 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. */ SELECT UnitPrice, (UnitPrice * 1.1), ProductName FROM Products 17 Ways to Execute TransactSQL Statements Dynamically Constructing Statements Using Batches Using Scripts Using Transactions Using XML 18 Dynamically Constructing Statements Use EXECUTE with String Literals and Variables Use When You Must Assign Value of Variable at Execution Time Any Variables and Temporary Tables Last Only DECLARE @dbname varchar(30), @tblname varchar(30) SET During @dbname =Execution 'Northwind' SET @tblname = 'Products' EXECUTE ('USE ' + @dbname + ' SELECT * FROM '+ @tblname) 19 Using Batches One or More Transact-SQL Statements Submitted Together Define a Batch by Using the GO Statement How SQL Server Processes Batches You Cannot Combine Some Statements in a Batch CREATE PROCEDURE CREATE VIEW CREATE TRIGGER CREATE RULE CREATE DEFAULT 20 Using Scripts Contain Saved Statements Can Be Written in Any Text Editor Save by using .sql file name extension Execute in SQL Query Analyzer or osql Utility Use to Recreate Database Objects or to Execute Statements Repeatedly 21 Using Transactions Processed Like a Batch Data Integrity Is Guaranteed Changes to the Database Are Either Applied Together or Rolled Back BEGIN TRANSACTION UPDATE savings SET amount = (amount - 100) WHERE custid = 78910 … <Rollback transaction if error> UPDATE checking SET amount = (amount + 100) WHERE custid = 78910 … <Rollback transaction if error> COMMIT TRANSACTION 22 New Transact-SQL (T-SQL) Common Table Expressions (CTE) Useful for recursive queries Ranking Functions RANK, DENSE_RANK, ROW_NUMBER, PARTITION BY TOP(N) N can be a parameter or expression APPLY Run a query for each row and merge results PIVOT Rotate data into row headings FOR XML PATH Easier control over XML result 23 Try/Catch Error Handling BEGIN TRY -- Statement with error END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS Number, ERROR_SEVERITY() AS Severity, ERROR_STATE() AS State, ERROR_PROCEDURE() AS procedureName, ERROR_LINE() AS Line, ERROR_MESSAGE() AS messageText; END CATCH 24 EXECUTE AS Used to specify security context under which stored procedure executes WITH EXECUTE AS options: SELF the user who created the stored procedure OWNER the owner of the stored procedure 'user_name' a specified user name 25 Snapshot Isolation Level New isolation level for transactions No locks placed when reading data No dirty reads Always see the last committed values Uses tempdb to store row versions Can significantly improve concurrency 26 Running CLR Code in SQL Server 2012 Overcomes limitations of Transact-SQL by hosting the Common Language Runtime (CLR) Good for processor-intensive code Transact-SQL best for DML Use a .NET Framework language to write: Stored procedures User-defined functions Triggers User-defined types Aggregates 27 Recommended Practices Keep Business Logic on the Server As Stored Procedures Use ANSI SQL Syntax Choose an Appropriate Naming Convention Save Statements As Scripts and Comment Them Thoroughly Format Transact-SQL Statements to Be Legible to Others 28 2. REVIEW SQL Server Programming Tools Elements of Transact-SQL SQL Server Object Names Additional Language Elements Local Variables Operators Functions Ways to Execute Transact-SQL Statements New Transact-SQL (T-SQL) Features 29 CHAPTER CONTENTS 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. SQL SERVER OVERVIEW LANGUAGE FEATURES DESIGN A DATABASE IMPLEMENT TABLES ACCESS AND MODIFY DATA IMPLEMENT VIEWS IMPLEMENT FUNCTIONS IMPLEMENT TRIGGERS IMPLEMENT STORED PROCEDURES INDEXING TABLES ACCESSING LINKED SERVERS TRANSACTIONS AND LOCKS 30