What Is Sql ?: Fundamentals of Sql,T-Sql,Pl/Sql and Datawarehousing.
By Victor Ebai
()
About this ebook
? Designing, building, and querying relational databases in the latest versions of oracle and SQL server databases
? Performing data-quality operations that eliminate corrupted data from databases
? Extending the functionality of SQL using PL/SQL and programmable T-SQL
? Building and loading data warehouses without using an expensive ETL tool
? Troubleshooting and tuning SQL code and database designs
? Extensive use of built-in functions to retrieve and transform data
? Translating complex business rules into database constraints
? Creating advanced queries that answer complex business questions
? Manipulating data within tables
? Creating recoverable business transactions
? Perform nonstandard SQL operations such as deleting duplicate rows
Obtain a free sample of oracle11i and SQL server 2012 databases.
Victor Ebai
Victor Ebai is an independent business intelligence consultant with twelve years’ experience in the business intelligence industry, covering database, report, data warehouse, and SQL query development. Database programming is a passion of Victor’s, and he’s helped several FTSE 100 companies attain their Business Intelligence objectives. He was educated in Coventry University, United Kingdom, where he currently works and resides.
Related to What Is Sql ?
Related ebooks
Oracle SQL Developer Rating: 0 out of 5 stars0 ratingsSQL Server: Tips and Tricks - 2 Rating: 4 out of 5 stars4/5Learning Oracle 12c: A PL/SQL Approach Rating: 0 out of 5 stars0 ratings100+ SQL Queries Jet SQL for Microsoft Office Access Rating: 5 out of 5 stars5/5Querying with SQL T-SQL for Microsoft SQL Server Rating: 3 out of 5 stars3/5Oracle Quick Guides: Part 3 - Coding in Oracle: SQL and PL/SQL Rating: 0 out of 5 stars0 ratingsAdvanced Oracle PL/SQL Developer's Guide - Second Edition Rating: 5 out of 5 stars5/5Oracle SQL and PL/SQL Rating: 5 out of 5 stars5/5SQL Server: Tips and Tricks - 1 Rating: 5 out of 5 stars5/5My Part-Time Study Notes on Mssql Server Rating: 0 out of 5 stars0 ratingsOracle Advanced PL/SQL Developer Professional Guide Rating: 4 out of 5 stars4/5Expert Cube Development with Microsoft SQL Server 2008 Analysis Services Rating: 5 out of 5 stars5/5Introduction to Oracle Database Administration Rating: 5 out of 5 stars5/5SQL Clearly Explained Rating: 5 out of 5 stars5/5Database Design and SQL for DB2 Rating: 5 out of 5 stars5/5Oracle SQL In 10 Minutes Rating: 5 out of 5 stars5/5Oracle SQL Developer 2.1 Rating: 0 out of 5 stars0 ratingsSQL Tutorial For Beginners Rating: 0 out of 5 stars0 ratingsThe SQL Workshop: Learn to create, manipulate and secure data and manage relational databases with SQL Rating: 0 out of 5 stars0 ratingsSQL for Microsoft Office Access Rating: 3 out of 5 stars3/5Relational Database Systems Rating: 0 out of 5 stars0 ratingsOracle GoldenGate 11g Implementer's guide Rating: 5 out of 5 stars5/5SQL Server 2016 Developer's Guide Rating: 0 out of 5 stars0 ratingsSQL Server 2014 Development Essentials Rating: 5 out of 5 stars5/5Starting Database Administration: Oracle DBA Rating: 3 out of 5 stars3/5Excel Pivot Tables & Charts Rating: 0 out of 5 stars0 ratingsAccounting Database Design Rating: 5 out of 5 stars5/5Advanced Analytics with Transact-SQL: Exploring Hidden Patterns and Rules in Your Data Rating: 0 out of 5 stars0 ratingsMC Microsoft Certified Azure Data Fundamentals Study Guide: Exam DP-900 Rating: 0 out of 5 stars0 ratingsJoe Celko's SQL for Smarties: Advanced SQL Programming Rating: 3 out of 5 stars3/5
Programming For You
Python: For Beginners A Crash Course Guide To Learn Python in 1 Week Rating: 4 out of 5 stars4/5Python Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps Rating: 4 out of 5 stars4/5HTML & CSS: Learn the Fundaments in 7 Days Rating: 4 out of 5 stars4/5Java for Beginners: A Crash Course to Learn Java Programming in 1 Week Rating: 5 out of 5 stars5/5SQL: For Beginners: Your Guide To Easily Learn SQL Programming in 7 Days Rating: 5 out of 5 stars5/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5Python Machine Learning By Example Rating: 4 out of 5 stars4/5101 Amazing Nintendo NES Facts: Includes facts about the Famicom Rating: 4 out of 5 stars4/5Pokemon Go: Guide + 20 Tips and Tricks You Must Read Hints, Tricks, Tips, Secrets, Android, iOS Rating: 5 out of 5 stars5/5Linux: Learn in 24 Hours Rating: 5 out of 5 stars5/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Learn SQL in 24 Hours Rating: 5 out of 5 stars5/5SQL All-in-One For Dummies Rating: 3 out of 5 stars3/5Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5PYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5Modern C++ for Absolute Beginners: A Friendly Introduction to C++ Programming Language and C++11 to C++20 Standards Rating: 0 out of 5 stars0 ratingsPython Projects for Beginners: A Ten-Week Bootcamp Approach to Python Programming Rating: 0 out of 5 stars0 ratings
Reviews for What Is Sql ?
0 ratings0 reviews
Book preview
What Is Sql ? - Victor Ebai
WHAT IS SQL?
FUNDAMENTALS OF SQL,T-SQL, PL/SQL
AND DATAWAREHOUSING.
Victor Ebai
US%26UKLogoB%26Wnew.aiAuthorHouse™
1663 Liberty Drive
Bloomington, IN 47403
www.authorhouse.com
Phone: 1-800-839-8640
© 2013 by Victor Ebai. All rights reserved.
No part of this book may be reproduced, stored in a retrieval system, or transmitted by any means without the written permission of the author.
www.whatissqlquery.com
Published by AuthorHouse 12/21/2012
ISBN: 978-1-4772-4644-3 (sc)
ISBN: 978-1-4772-4645-0 (e)
Any people depicted in stock imagery provided by Thinkstock are models, and such images are being used for illustrative purposes only.
Certain stock imagery © Thinkstock.
Because of the dynamic nature of the Internet, any web addresses or links contained in this book may have changed since publication and may no longer be valid. The views expressed in this work are solely those of the author and do not necessarily reflect the views of the publisher, and the publisher hereby disclaims any responsibility for them.
Contents
Part One
Chapter One
Overview
Database Management Systems (DBMS) and Databases
DBMS Tools
The Database
Schemas and Tables
Database Tables
Database Design with Entity Relationship (E-R) Modeling and Normalisation
Overview of Entity Relationship Modeling (E-R Models)
Basic Constructs of E-R Modelling
Contextual Modeling
Conceptual Modeling
Logical Modelling
The Physical Model
Normalisation
First Normal Form (1NF)
Second Normal Form (2NF)
Third Normal Form 3NF
Design Completeness and Table Navigation
Conclusion
Chapter Two
Overview
SQL Overview
Basic Components of SQL
Comments
Nulls
Format Models
Operators and Operands
Column Data Types
Table and Column Aliases
Conclusion
Chapter Three
Overview
Retrieving Data from Single Tables
Sorting Qery Results
Sorting Based on Dates
Sorting Characters
Sorting Numbers
Filtering Data with Comparison Operators
Filtering Data with the BETWEEN and IN Operators
Filtering for Null Values
Filtering with Logical Operators
The Order of Logical Operator Execution
Filtering with T-SQL Pattern Matching Operators
The Brackets [] Wildcard
Filtering with Oracle Pattern Matching Operators
Filtering Data with Expressions Using Functions and Operators (What-IF Analysis)
Filtering Data with Expressions Using Functions and Operators (Data Conversion)
Returning the TOP n Rows with T-SQL
Returning the TOP n Rows with Oracle Inline View
Returning Distinct Rows
Conclusion
Chapter Four
Overview
Retrieving Data from More than One Table
Joining More than One Table
Joins and Constraints
Types of Joins
T—SQL Equip-Join in the WHERE Clause
Qualifiying Column Names
Table Name Aliases
T-SQL Inner Joins in the FROM Clause
Oracle Inner Joins
Outer Joins
T-SQL LEFT and RIGHT OUTER JOIN
T-SQL RIGHT OUTER JOIN and the Influence of the WHERE Clause
Oracle OUTER JOINS
SELF JOINS
Joining More than Two Tables
Cross Joins
Conclusion
Chapter Five
Overview
Subqueries
Subqueries in the SELECT Clause as a Calculated Column
Subqueries in the WHERE Clause as Part of a Condition Expression
Subqueries Using ANY and ALL Multiple Row Comparison Operators
Subqueries in the FROM Clause
Correlated Subqueries with EXISTS Operator
Conclusion
Chapter Six
Overview
Set Operators
UNION Operator
INTERSECT Operator
MINUS and EXCEPT Operators
Oracle MINUS Operator
SQL Server EXCEPT Operator
SET Operator Precedence
Conclusion
Chapter Seven
Overview
Inserting and Updating Data
Inserting a Single Full Row of Data
Inserting a Single Partial Row of Data
INSERTS and Table Constraints
Inserting Multiple Rows of Data
Creating Duplicate Tables
INSERTING Multiple Rows Using INSERT SELECT
Manually Inserting Non-Database Multiple Rows
Transforming Data during INSERTS
INSERT and SEQUENCES
Data Warehousing Incremental INSERTS USING the EXCEPT (MINUS for ORACLE) Operator
UPDATING Tables
Updating Tables with Constant Values
Updating Specific Rows Based on the Validity of a Condition
Updating All Rows
T-SQL Update OUTPUT Clause
UPDATES Using SELECT Subqueries
UPDATES and Table Constraints
MERGE Statements for Data Validation and Verification
Using INSERT and SELECT CASE to Transform Data
Conclusion
Chapter Eight
Overview
Calculated or Virtual Columns and Functions
T-SQL Calculated Columns
Oracle Virtual Columns
Special Virtual Columns Using the SELECT CASE Expression
Oracle Simple CASE Expression
Search Case Expression
BUILT IN Functions
Aggregate Functions
AVG(n)
MAX(n)
MIN(N)
COUNT(n), COUNT (*)
SUM(n)
Aggregate Functions and Grouping
Arithmetic Functions
Character Functions
Data Conversion Functions with Implicit and Explicit Data Conversion
Oracle Data Conversion Functions
Miscellaneous and Null Related Functions
Date and Time Functions
Analytic Functions
System Functions
Virtual Columns Used as Concrete Relational Objects (VIEWS, WITH, and CTEs)
USING Views to References Virtual Columns
Using T-SQL CTEs to Reference Virtual Columns
Oracle CTEs Using Subqueries
Conclusion
Chapter Nine
Overview
Grouping Data
Independent Fact Aggregation
Fact Aggregation Based on Dimensions Using the GROUP BY Clause
Understanding the Changing Input Calculation Context of Multiple Groups
Filtering Groups with the HAVING Clause
Filtering Groups with the HAVING and WHERE Clause
Sumarizing Data at Different Aggregation Levels Using Oracle ROLLUP()
Sumarizing Data at Different Aggregation Using T-SQL ROLLUP()
Conclusion
Chapter Ten
Overview
DELETING Data
DELETING All Rows
Oracle DELETE and Auto COMMIT
Explicitly Committing Oracle DELETE Statements
SQL Server DELETE and Auto COMMIT
DELETE and Database Constraints
Deleting Oracle Duplicate Rows
Deleting SQL Server Duplicate Rows
TRUNCATE versus DELETE Table
Conclusion
Chapter Eleven
Overview
Creating Database Tables and Constraints
Types of Constraints
Creating and Maintaining Tables
Creating Oracle Tables
Modifying Oracle Tables
Renaming Tables
Altering Table Columns
Altering CONSTRAINTS
Enabling and Disabling Constraints
Deleting Tables and Constraints
Creating and Maintaining SQL Server Tables
Conclusion
Chapter Twelve
Overview of Creating Advanced Database Objects
Creating Synonyms
Creating Views
T-SQL Views
Oracle Views
T-SQL Common Table Expressions (CTEs)
Using the Oracle WITH Clause to Replicate T-SQL CTEs
Creating Sequences
Creating Oracle Sequences
Indexes and ROWIDs
Triggers
Database Level DDL Triggers
Table Level Triggers and Data History Maintenance
SQL Server AFTER UPDATE Triggers
Oracle AFTER UPDATE Triggers
T-SQL Table Variables with the UPDATE OUTPUT Clause
Conclusion
Chapter Thirteen
Overview
SQL Performance Tuning
Tuning the Business Process
The Optimiser
Schema Design for Performance OLAP or OLTP
Constraints and Performance
Denormalising OLTP Databases for Performance
Tuning SQL Statements
Displaying Execution Plans
Oracle Execution Plans
Restructuring SQL Statements for Performance
Using SQL Hints to Influence the Optimiser
JOIN Hints
Table Hints
Query Hints
Tuning the Database for Performance
Tuning Transactions
Conclusion
Part Two
Overview
PL /SQL Programmable T-SQL Overview
Oracle PL/SQL
Anonymous Blocks
The Declaration Section
The Execution Section
The Exception Section
General Guidelines
PL/SQL Variables and Constants
Declaration of Variables and Constants
Variable Value Assignment
Scope of Variables
PL/SQL Control Constructs
Conditional Control Statements
Iterative Control Constructs
Sequential Control with All Other Process Flow Controls
Cursors and Records
Cursors
Records
Declaring Record Data Types
Assigning Values to Records
Implicit Cursors
Explicit Cursors
Opening the Cursor
Fetching the Cursor
Closing the Cursor
Explicit Cursor Attributes
Oracle REF CURSOR And Dynamic SQL
Subprograms, Procedures, Functions, and Parameters
Subprogram Parameters
Stored Procedures
User-Defined Functions
Error Handling
Named Predefined Exceptions
Unnamed Predefined Exceptions
User-Defined Exceptions
PL/SQL Transaction Processing
SET TRANSACTION
COMMIT
ROLLBACK Using EXCEPTIONS
SAVEPOINT Using COMMIT, EXCEPTIONS, and ROLLBACK
Oracle Table Functions and User-Defined Types
Programmable T—SQL
T-SQL OBJECT_ID Function
T-SQL Anonymous Block
T-SQL DECLARE
Assigning Values to Variables Using the SET Keyword
Assigning Values to Variables Using the SELECT Keyword
T-SQL Execution Section
T-SQL Exception Handling (Try… CATCH)
T-SQL Flow Control
T-SQL Conditional Logic
T-SQL Iteration
T-SQL Sequential Control
Cursors in T-SQL
T-SQL Functions and Procedures
T-SQL Stored Procedures
T-SQL Functions
T-SQL Table Functions
T-SQL Transactions Processing
T-SQL SET TRANSACTION Isolation Level
T-SQL BEGIN and COMMIT TRANSACTION
T-SQL BEGIN, ROLLBACK TRANSACTION
T-SQL SAVE Transaction and ROLLBACK Using TRY CATCH Error Handlers
Transaction Control and Data Warehousing Dimension Loads
Transaction Control and Data Warehousing Fact Table Loads
Data Standardization, Validation, and Correction Using Programmable Objects
Conclusion
Appendix
Getting Started with Oracle
Installing Oracle 11g Express
Opening the Oracle Query Editor
Execution Using SQL Plus to Access the Oracle 11g Hr database
Getting Started with SQL Server 2012
Installing SQL Server 2012 Express with Advanced Services
Opening the SQL Server Management Studio and Attaching the AdventureWorks2012 Database
About the Author
About the Book
Acknowledgments
I want to thank the various authors who have written valuable books on SQL and Business Intelligence. My research for this book included works by Ben Forta, Itzik Ben-Gan, Jason Price, Ralf Kimball and Cindi Howson.
I am also very grateful to Microsoft and Oracle for providing free development tools for aspiring developers.
Dedication
This book is dedicated to my mum Helen who has always been there in all situations. Thanks for the smiles mum.
Introduction
The SQL programming language is the most widely used database programming language. It is used either directly or embedded within other languages to manage business information assets. Though this language has been standardised by international standards bodies (ISO and ANSI), there are still significant deviations in its implementation by the combined market leaders, namely Microsoft and Oracle Corporation. Larger companies operate heterogeneous database environments which generally include oracle and SQL server databases thus there is a high demand of SQL expertise for both. Moreover, with the increase in demand for business intelligence applications, there is also an increasing demand for SQL datawarehousing expertise. The book covers all of these and is based on the latest database releases (oracle 11g and SQL Server 2012). To get the best out of What Is SQL go to the appendix and download and install the free sample databases so that you can experiment with the examples.
Part One of this book practically wrote itself through my own misconceptions about SQL at the start of my Business Intelligence career. It was hard to find any book which met the demands of the ever changing business world. Most good SQL books simply state how to use SQL statements without including the business context thus the user will be at a loss on when and why the statements should be applied in the business environment. There are also several critical nonstandard business intelligence requirements which are ignored by most books. Some of these omissions include data verification, validation and correction concerns or the manipulation of duplicate rows. With all this in mind I decided to write this book to add to and update the wealth of SQL knowledge already in the public domain. Part One will teach you the most important aspects of SQL from database design, data retrieval and modification to more complex concepts such as triggers and performance tuning. All concepts are clearly demonstrated with repeatable practical examples.
Part Two of this book extends the knowledge already gained in Part One. It extends the power of SQL by using its procedural extensions by oracle (PL/SQL) and SQL server (programmable T-SQL). It enables the user to execute complex business processes using these extensions. These extensions are particularly important for complex transactional processing, where a set of mutually dependent SQL statements are executed together. It also teaches the reader how to automate business processes using functions and procedures. The elementary components of these extensions are clearly stated and the business context is also clearly illustrated using repeatable practical examples. The reader will learn how to write functions, procedures, and recoverable transactions which will enable them to develop useful business applications.
Who is What IS SQL for? And how should it be used?
My advice to anyone who uses this book is to be courageous and keep going. If a concept seems out of reach then try the examples. If this does not help, just move on to the next topic and revisit the tricky ones at a later time. The first two chapters are very theoretical and set the foundations of SQL. They can be used as a reference for advanced readers. For those who want to learn by example and hit the road running chapter three is a good starting point. All the examples have been thoroughly tested and are error free. Feel free to copy and paste each example into the SQL editors to replicate the results. The code can also be downloaded from the support website.
• The absolute beginner. All the elementary components are stated and simple repeatable examples are used for clarity.
• The experts and intermediate users. Most standard and nonstandard constructs are illustrated thus this book can be used as a reference. The procedural extensions are also fully covered.
• Business Users. The business context of SQL is clearly explained and the transformation of business requirements to SQL statements is demonstrated.
• Students. This book prepares students for the challenges they will face in the ever changing business environment. Most examples are based on everyday business requirements.
PART ONE
Chapter One
Overview
This chapter introduces relational Database Management Systems (DBMS) and databases. A brief overview of E-R modelling and normalisation is also introduced. By the end of this chapter, the user should be able to design and document simple databases based on clear business requirements. The details regarding how to obtain and install Oracle11g and Microsoft SQL server 2012 databases can be found in the appendix.
Database Management Systems (DBMS) and Databases
Everyday activities such as using the Internet, the ATM machine, buying groceries and paying bills all produce vast amounts of data. With this exponential increase of data from numerous sources, a system is needed to harness its potential and deliver useful information to organisations and people. Thus, DBMSs are used.
A DBMS is software used to manage and control the capture, access, maintenance, storage, organization, and delivery of data in a secure and consistent manner.
DBMS becomes available once the software is installed and provides tools for the creation, maintenance, and administration of databases. The data DBMSs manage is stored in databases. Most database operations are executed using SQL statements. These statements are ether issued through application software such as SAP Hr, Oracle applications, or Maximo or through an SQL editor.
DBMS Tools
During installation, the software creates log files and a system database known as the ‘data dictionary’, which stores and maintains information about all current and future database objects. The DBMS also provides security tools to create and manage users and other database objects using privileges. Built-in functions, procedures, tablespaces, SQL engines/editors, connection packages, and system views are also created and enabled for future use by database administrators and developers.
The Database
The database is primarily made up of tables. Tables are made up of rows and columns that are used to structure and organise data. The database is designed through a process known as entity relationship modelling and/or normalisation. The end product of this process is a logical database model that details which tables are to be created and what the relationships between them are. Once this model is available, the physical database can be created using SQL by the database developer/administrator. Other useful database objects that could be created include views, stored procedures, triggers, sequences, synonyms, schemas, constraints, and so forth. The description and creation of all these objects is covered in the advanced chapters of this book.
Schemas and Tables
Schemas are logical partitions of databases created to facilitate the management of other database objects. They group relational objects into logical units based on their business function. For example, a database that contains human resources and production tables will have human resources and production schemas. In this way, all tables (objects) in a schema can be backed up or deleted as a group. To access a schema object, the object name must be prefix with the schema name separated by a dot. This is referred to as the fully qualified name of the object. For example, the best way to access the employee table in the HumanResources schema of the SQL server AdventureWorks2012 database is to use the following fully qualified name: HumanResources.Employee. Note that the oracle examples do not include the schema name because the user is already connected to the HR shema thus its application is implicit.
Database Tables
Tables are made up of horizontal rows that are divided into vertical columns, such as in an Excel spreadsheet. A row represents an instance of your table data. Each column holds one detail about the data in a row. For example, in an employee table, each row will hold a set of values in each column particular to an employee. Each column holds a detail value of that employee, such as his or her last name, hire date, and first name.
The database accesses table data only through rows. Thus, if data from a column is required, the database first finds the row that contains the column and then retrieves the column value. Every column has a defined data type that dictates the type of data it can contain. For example, the employee_id column will only accept number data types. If an attempt is made to insert a date data type into this column, an error will occur and the data will be rejected. Every table is owned by a schema and the schema name should always prefix table names in SQL statements. Following is an example of an employee table:
SKU-000601305_TEXT.pdfDatabase Design with Entity Relationship (E-R) Modeling and Normalisation
Entity relationship modelling is used to design databases from scratch. The outputs from this process are a data model and a data dictionary. The model is a pictoral entity relationship conceptual representation of what data is needed to support business processes. The model and data dictionary also includes the relationships between the data entities and the business rules that govern their lifecycle. The model is independent of any DBMS and their simplicity serves as a perfect communication tool between business and IT. A common analogy used to describe the final model is an architects side plan of a building. Just as the walls and rooms detailed in the plan are eventualy constructed into physical walls and rooms, the entities attributes and their business rules are eventually created as physical database tables, columns, and constraints. E-R mdelling will generally produce a normalised database stucture. However, during or after E-R modeling, normalisation can be used to ensure that the designed database tables are in 3rd normal form. Note that there is no absolutely correct design but some designs are more efficient than others, and with enough experience simple databases can be designed by intuition without going throught the modelling process.
Overview of Entity Relationship Modeling (E-R Models)
The E-R modelling process generally goes through four stages, with each stage adding more detail to models produced from the previous stage. This process is known as decomposition. The models in each stage are developed based on expanding data perspectives of the different business stakeholders. For example, a business owner perceives data as a set of discreet entities while the database designer understands that these entities are in fact related. The modelling stages include contextual, conceptual, logical, and physical modelling, and then the physical model is implemented. These different models implicitly document the database at different levels, facilitating its integration into the corporate computing architecture models. It also facilitates communication between IT and different levels of management and support staff.
Basic Constructs of E-R Modelling
Entities: These are the principal data objects about which a business is interested in. They are both tangible and intangible objects that are important to the business. Examples of tangible entities include employees and offices, while intangible entities include jobs, projects, and addresses. Entities are transformed to tables in the physical model. An entity can be classified as either being dependent or independent. A dependent entity is one that requires another entity for its identification, while an independent entity identifies itself.
Attributes: Attributes describe the entity they are