(with Microsoft SQL Server) Svetlin Nakov Telerik Corporation www.telerik.com.

Slides:



Advertisements
Similar presentations
Virtual training week 4 structured query language (SQL)
Advertisements

1Eyad Alshareef Enhanced Guide to Oracle 10g Chapter 3: Using SQL Queries to Insert, Update, Delete, and View Data.
SQL Review Sections 1 - SQL and other basic statements.
Writing Basic SQL SELECT Statements. Capabilities of SQL SELECT Statements A SELECT statement retrieves information from the database. Using a SELECT.
5 Copyright © 2004, Oracle. All rights reserved. Displaying Data from Multiple Tables.
1 Copyright © Oracle Corporation, All rights reserved. Writing Basic SQL SELECT Statements.
2 Copyright © 2004, Oracle. All rights reserved. Restricting and Sorting Data.
WRITING BASIC SQL SELECT STATEMENTS Lecture 7 1. Outlines  SQL SELECT statement  Capabilities of SELECT statements  Basic SELECT statement  Selecting.
Ceng 356-Lab2. Objectives After completing this lesson, you should be able to do the following: Limit the rows that are retrieved by a query Sort the.
Ceng 356-Lab1. Objectives After completing this lesson, you should be able to do the following: Get Familiar with the development environment List the.
Objectives After completing this lesson, you should be able to do the following: Write SELECT statements to access data from more than one table using.
1 Copyright © Oracle Corporation, All rights reserved. Writing Basic SQL SELECT Statements.
4 Copyright © Oracle Corporation, All rights reserved. Displaying Data from Multiple Tables.
Creating E/R Diagrams with SQL Server Management Studio, Writing SQL Queries D0ncho Minkov Telerik Corporation
Copyright © 2004, Oracle. All rights reserved. Lecture 6 Displaying Data from Multiple Tables ORACLE.
Restricting and Sorting Data. ◦ Limiting rows with:  The WHERE clause  The comparison conditions using =,
2 Copyright © Oracle Corporation, All rights reserved. Restricting and Sorting Data.
2 Copyright © 2004, Oracle. All rights reserved. Restricting and Sorting Data.
4 Copyright © 2006, Oracle. All rights reserved. Restricting and Sorting Data.
SQL (DDL & DML Commands)
2 Writing Basic SELECT Statements. 1-2 Copyright  Oracle Corporation, All rights reserved. Capabilities of SQL SELECT Statements Selection Projection.
Copyright  Oracle Corporation, All rights reserved. Writing Basic SQL Statements.
RELATSIOONILISED ANDMEBAASID(alg) SQLi VÕIMALUSED.
Join, Subqueries and set operators. Obtaining Data from Multiple Tables EMPLOYEES DEPARTMENTS … …
Introduction to SQL PART Ⅰ 第一讲 Writing Basic SQL SELECT Statements.
Nikolay Kostov Telerik Corporation
SQL Intro (MS SQL Server and MySQL) Telerik Software Academy Databases.
5 Copyright © 2004, Oracle. All rights reserved. Displaying Data from Multiple Tables.
5 Copyright © 2004, Oracle. All rights reserved. Displaying Data from Multiple Tables.
Intermediate SQL: Aggregated Data, Joins and Set Operators.
Database Fundamental & Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
2 第二讲 Restricting and Sorting Data. Objectives After completing this lesson, you should be able to do the following: Limit the rows retrieved by a query.
Copyright © 2004, Oracle. All rights reserved. Retrieving Data Using the SQL SELECT Statement Satrio Agung Wicaksono, S.Kom., M.Kom.
(with Microsoft SQL Server) Svetlin Nakov Telerik Corporation
Copyright © 2004, Oracle. All rights reserved. Lecture 4: 1-Retrieving Data Using the SQL SELECT Statement 2-Restricting and Sorting Data Lecture 4: 1-Retrieving.
2 Copyright © 2004, Oracle. All rights reserved. Restricting and Sorting Data.
I-1 Copyright س Oracle Corporation, All rights reserved. Data Retrieval.
Using SQL Connecting, Retrieving Data, Executing SQL Commands, … Svetlin Nakov Technical Trainer Software University
1 SQL SQL (Structured Query Language) : is a database language that is used to create, modify and update database design and data. Good Example of DBMS’s.
Creating E/R Diagrams with SQL Server Management Studio, Writing SQL Queries D0ncho Minkov Telerik Corporation
With MSSQL Server Doncho Minkov Telerik Software Academy academy.telerik.com Technical Trainer
1 Copyright © Oracle Corporation, All rights reserved. Writing Basic SQL SELECT Statements.
Copyright س Oracle Corporation, All rights reserved. I Introduction.
2 Copyright © 2009, Oracle. All rights reserved. Restricting and Sorting Data.
Manipulating Data Lesson 3. Objectives Queries The SELECT query to retrieve or extract data from one table, how to retrieve or extract data by using.
Simple Queries DBS301 – Week 1. Objectives Basic SELECT statement Computed columns Aliases Concatenation operator Use of DISTINCT to eliminate duplicates.
Writing Basic SQL Statements. Objectives After completing this lesson, you should be able to do the following: –List the capabilities of SQL SELECT statements.
 CONACT UC:  Magnific training   
1 Copyright © 2007, Oracle. All rights reserved. Retrieving Data Using the SQL SELECT Statement.
1 Introduction to Database Systems, CS420 SQL JOIN, Group-by and Sub-query Clauses.
4 Copyright © 2004, Oracle. All rights reserved. Displaying Data from Multiple Tables.
Oracle 10g Retrieving Data Using the SQL SELECT Statement.
1 Copyright © 2009, Oracle. All rights reserved. Retrieving Data Using the SQL SELECT Statement.
Copyright س Oracle Corporation, All rights reserved. 1 Writing Basic SQL Statements.
1 Copyright © 2004, Oracle. All rights reserved. Retrieving Data Using the SQL SELECT Statement.
4 Copyright © Oracle Corporation, All rights reserved. Displaying Data from Multiple Tables.
SQL Introduction. Table of Contents 1. SQL and T-SQL Languages 2. The “SoftUni” Database Schema 3. Introducing the SELECT SQL Statement  SQL Operators.
Joins, Subqueries, CTE and Indices
Restricting and Sorting Data
Retrieving Data Using the SQL SELECT Statement
Database Modeling and Introduction to SQL
Basic CRUD in SQL Server
Writing Basic SQL SELECT Statements
Basic select statement
Writing Basic SQL SELECT Statements
SQL Fundamentals in Three Hours
Writing Basic SQL SELECT Statements
Manipulating Data Lesson 3.
Restricting and Sorting Data
Presentation transcript:

(with Microsoft SQL Server) Svetlin Nakov Telerik Corporation

1. SQL and T-SQL Languages 2. The Telerik Academy Database Schema 3. Introducing the SELECT SQL Statement  Allowed Operators  The WHERE Clause  Sorting with ORDER BY  Selecting Data From Multiple Tables 2

4. Selecting Data From Multiple Tables  Natural Joins  Join with USING Clause  Inner Joins with ON Clause  Left, Right and Full Outer Joins  Cross Joins 5. Inserting Data 6. Updating Data 7. Deleting Data 3

The SQL Execution Model

 A relational database c an be accessed and modified by executing SQL statements  SQL allows  Defining / modifying the database schema  Searching / modifying table data  A set of SQL commands are available for extracting subset of the table data  Most SQL commands return a single value or record set 5

6 SQL statement is sent to the DB server SELECT Name FROM Departments NameEngineering Sales Marketing … The result is returned (usually as a record set)

 SQL commands are executed through a database connection  DB connection is a channel between the client and the SQL server  DB connections take resources and should be closed when no longer used  Multiple clients can be connected to the SQL server at the same time  SQL commands can be executed in parallel  Transactions and isolation deal with concurrency 7

Introduction

 Structured Query Language (SQL)  Declarative language for query and manipulation of relational data  SQL consists of:  Data Manipulation Language (DML)  SELECT, INSERT, UPDATE, DELETE  Data Definition Language (DDL)  CREATE, DROP, ALTER  GRANT, REVOKE 9

10 SELECT FirstName, LastName, JobTitle FROM Employees INSERT INTO Projects(Name, StartDate) VALUES('Introduction to SQL Course', '1/1/2006') SELECT * FROM Projects WHERE StartDate = '1/1/2006' UPDATE Projects SET EndDate = '8/31/2006' WHERE StartDate = '1/1/2006' DELETE FROM Projects WHERE StartDate = '1/1/2006'

 T-SQL (Transact SQL) is an extension to the standard SQL language  T-SQL is the standard language used in MS SQL Server  Supports if statements, loops, exceptions  Constructions used in the high-level procedural programming languages  T-SQL is used for writing stored procedures, functions, triggers, etc. 11

12 CREATE PROCEDURE EmpDump AS NVARCHAR(100), NVARCHAR(100) DECLARE emps CURSOR FOR DECLARE emps CURSOR FOR SELECT EmployeeID, FirstName, LastName FROM Employees SELECT EmployeeID, FirstName, LastName FROM Employees OPEN emps OPEN emps FETCH NEXT FROM @EmpLName FETCH NEXT FROM @EmpLName WHILE = 0) BEGIN WHILE = 0) BEGIN PRINT AS VARCHAR(10)) + ' ' PRINT AS VARCHAR(10)) + ' ' + ' ' + ' ' FETCH NEXT FROM @EmpLName FETCH NEXT FROM @EmpLName END END CLOSE emps CLOSE emps DEALLOCATE emps DEALLOCATE empsGO

Introducing SELECT Statement

14 Table 1 Table 2 Table 1 Selection Take some of the rows Projection Take some of the columns Join Combine tables by some column

15

 SELECT identifies what columns  FROM identifies which table 16 SELECT *|{[DISTINCT] column|expression [alias],...} FROMtable

 Selecting all columns from departments  Selecting specific columns 17 SELECT * FROM Departments SELECT DepartmentID, DepartmentID, Name Name FROM Departments DepartmentIDNameManagerID1Engineering12 2 Tool design 4 3Sales273 ……… DepartmentIDName1Engineering 2 3Sales

 Arithmetic operators are available:  +, -, *, /  Examples: 18 SELECT LastName, Salary, Salary FROM Employees LastNameSalary (No column name) Gilbert12500, ,00 Brown13500, ,00 Tamburello43300, ,00 SELECT (2 + 3) * 4 --> returns 20

 A NULL is a value that is unavailable, unassigned, unknown, or inapplicable  Not the same as zero or a blank space  Arithmetic expressions containing a NULL value are evaluated to NULL 19 SELECT LastName, ManagerID FROM Employees LastNameManagerIDSánchezNULL Duffy300 Wang1 NULL is displayed as empty space or as NULL

 Aliases rename a column heading  Useful with calculations  Immediately follows the column name  There is an optional AS keyword  Double quotation marks if contains spaces 20 SELECT FirstName, LastName, Salary, Salary*0.2 AS Bonus FROM Employees FirstNameLastNameSalaryBonusGuyGilbert12500, KevinBrown13500,

 Concatenates columns or character strings to other columns  Is represented by plus sign “ + ”  Creates a resultant column that is a character expression 21 SELECT FirstName + ' ' + LastName AS [Full Name], EmployeeID as [No.] FROM Employees Full Name No. Guy Gilbert 1 Kevin Brown 2 Roberto Tamburello 3

 A literal is a character, a number, or a date included in the SELECT list  Date and character literal values must be enclosed within single quotation marks  Each character string is output once for each row returned 22 SELECT FirstName + '''s last name is ' + LastName AS [Our Employees] FROM Employees Our Employees Guy's last name is Gilbert Kevin's last name is Brown Roberto's last name is Tamburello

 The default display of queries is all rows, including duplicate rows  Eliminate duplicate rows by using the DISTINCT keyword in the SELECT clause 23 SELECT DepartmentID FROM Employees DepartmentID SELECT DISTINCT DepartmentID DISTINCT DepartmentID FROM Employees DepartmentID7 2...

 UNION combines the results from several SELECT statements  The columns count and types should match  INTERSECT / EXCEPT perform logical intersection / difference between given two sets of records 24 SELECT FirstName AS Name FROM Employees UNION SELECT LastName AS Name FROM Employees Name A. Scott Abbas Abercrombie...

 Restrict the rows returned by using the WHERE clause:  More examples: 25 SELECT LastName, DepartmentID FROM Employees WHERE DepartmentID = 1 SELECT FirstName, LastName, DepartmentID FROM Employees WHERE LastName = 'Sullivan' LastNameDepartmentIDTamburello1 Erickson1 Goldberg SELECT LastName, Salary FROM Employees WHERE Salary <= 20000

 Using BETWEEN operator to specify a range:  Using IN / NOT IN to specify a set of values:  Using LIKE operator to specify a pattern:  % means 0 or more chars; _ means one char 26 SELECT LastName, Salary FROM Employees WHERE Salary BETWEEN AND SELECT FirstName, LastName, ManagerID FROM Employees WHERE ManagerID IN (109, 3, 16) SELECT FirstName FROM Employees WHERE FirstName LIKE 'S%'

 Checking for NULL value:  Attention: COLUMN=NULL is always false! 27 SELECT LastName, ManagerId FROM Employees WHERE ManagerId IS NULL SELECT LastName, ManagerId FROM Employees WHERE ManagerId IS NOT NULL SELECT LAST_NAME, MANAGER_ID FROM EMPLOYEES WHERE MANAGER_ID = NULL SELECT LAST_NAME, MANAGER_ID FROM EMPLOYEES WHERE NULL = NULL This is always false!

 Using NOT, OR and AND operators and brackets: 28 SELECT FirstName, LastName FROM Employees WHERE Salary >= AND LastName LIKE 'C%' SELECT LastName FROM Employees WHERE ManagerID IS NOT NULL OR LastName LIKE '%so_' SELECT LastName FROM Employees WHERE NOT (ManagerID = 3 OR ManagerID = 4) SELECT FirstName, LastName FROM Employees WHERE (ManagerID = 3 OR ManagerID = 4) AND (ManagerID = 3 OR ManagerID = 4) AND (Salary >= OR ManagerID IS NULL) (Salary >= OR ManagerID IS NULL)

 Sort rows with the ORDER BY clause  ASC : ascending order, default  DESC : descending order 29 SELECT LastName, HireDate FROM Employees ORDER BY HireDate LastNameHireDateGilbert Brown Tamburello SELECT LastName, HireDate FROM Employees ORDER BY HireDate DESC LastNameHireDateValdez Tsoflias Abbas

Selecting Data From Multiple Tables

 Sometimes you need data from more than one table: 31LastNameDepartmentIDDuffy1 Abbas3 Galvin2DepartmentIDName1Engineering 2 Tool design 3Sales LastNameDepartmentNameDuffyEngineering Galvin AbbasSales

 This will produce Cartesian product:  The result: 32 SELECT LastName, Name AS DepartmentName FROM Employees, Departments LastName DepartmentName Duffy Document Control Wang Sullivan DuffyEngineering WangEngineering....

 A Cartesian product is formed when:  A join condition is omitted  A join condition is invalid  All rows in the first table are joined to all rows in the second table  To avoid a Cartesian product, always include a valid join condition 33

 Inner joins  Left, right and full outer joins  Cross joins 34

 To specify arbitrary conditions or specify columns to join, the ON clause is used  Such JOIN is called also INNER JOIN 35 SELECT e.EmployeeID, e.LastName, e.DepartmentID, d.DepartmentID, d.Name AS DepartmentName d.DepartmentID, d.Name AS DepartmentName FROM Employees e INNER JOIN Departments d INNER JOIN Departments d ON e.DepartmentID = d.DepartmentID ON e.DepartmentID = d.DepartmentIDEmployeeIDLastName Depart mentID DepartmentName1Gilbert77Production 2Brown44Marketing 3Tamburello11Engineering

 Inner joins with join conditions pushed down to the WHERE clause 36 SELECT e.EmployeeID, e.LastName, e.DepartmentID, d.DepartmentID, d.Name AS DepartmentName d.DepartmentID, d.Name AS DepartmentName FROM Employees e, Departments d WHERE e.DepartmentID = d.DepartmentID EmployeeIDLastName Depart- mentID Department- Name 1Gilbert77Production 2Brown44Marketing 3Tamburello11Engineering

 Inner join  A join of two tables returning only rows matching the join condition  Left (or right) outer join  Returns the results of the inner join as well as unmatched rows from the left (or right) table  Full outer join  Returns the results of an inner join as well as the results of a left and right join 37

38 SELECT e.LastName EmpLastName, m.EmployeeID MgrID, m.LastName MgrLastName m.EmployeeID MgrID, m.LastName MgrLastName FROM Employees e INNER JOIN Employees m ON e.ManagerID = m.EmployeeID ON e.ManagerID = m.EmployeeIDEmpLastNameMgrIDMgrLastNameErickson3Tamburello Goldberg3Tamburello Duffy109Sánchez Johnson185Hill Higa185Hill Ford185Hill Maxwell21Krebs

39 SELECT e.LastName EmpLastName, m.EmployeeID MgrID, m.LastName MgrLastName m.EmployeeID MgrID, m.LastName MgrLastName FROM Employees e LEFT OUTER JOIN Employees m ON e.ManagerID = m.EmployeeID ON e.ManagerID = m.EmployeeIDEmpLastNameMgrIDMgrLastNameSánchezNULLNULL Benshoof6Bradley Miller14Maxwell Okelberry16Brown Hill25Mu Frum184Richins Culbertson30 Barreto de Mattos

40 SELECT e.LastName EmpLastName, m.EmployeeID MgrID, m.LastName MgrLastName m.EmployeeID MgrID, m.LastName MgrLastName FROM Employees e RIGHT OUTER JOIN Employees m ON e.ManagerID = m.EmployeeID ON e.ManagerID = m.EmployeeIDEmpLastNameMgrIDMgrLastNameLertpiriyasuwat38Liu NULL39Hines NULL40McKay Berglund41Wu Koenigsbauer123Hay NULL124Zabokritski NULL125Decker

41 SELECT e.LastName EmpLastName, m.EmployeeID MgrID, m.LastName MgrLastName m.EmployeeID MgrID, m.LastName MgrLastName FROM employee e FULL OUTER JOIN employee m ON e.ManagerID = m.EmployeeID ON e.ManagerID = m.EmployeeIDEmpLastNameMgrIDMgrLastNameSanchezNULLNULL ……… Cracium3Tamburello Gilbert16Brown ……… NULL17Hartwig NULL1Gilbert ………

 A three-way join is a join of three tables 42 SELECT e.FirstName, e.LastName, t.Name as Towns, a.AddressText t.Name as Towns, a.AddressText FROM Employees e JOIN Addresses a JOIN Addresses a ON e.AddressID = a.AddressID ON e.AddressID = a.AddressID JOIN Towns t JOIN Towns t ON a.TownID = t.TownID ON a.TownID = t.TownIDFirstNameLastNameTownsAddressTextGuyGilbertMonroe 7726 Driftwood Drive KevinBrownEverett 2294 West 39th St. RobertoTamburelloRedmond 8000 Crane Court

 Self-join means to join a table to itself  Always used with table aliases 43 SELECT e.FirstName + ' ' + e.LastName + ' is managed by ' + m.LastName as Message ' is managed by ' + m.LastName as Message FROM Employees e JOIN Employees m ON (e.ManagerId = m.EmployeeId) Message Ovidiu Cracium is managed by Tamburello Michael Sullivan is managed by Tamburello Sharon Salavaria is managed by Tamburello Dylan Miller is managed by Tamburello …

 The CROSS JOIN clause produces the cross- product of two tables  Same as a Cartesian product  Not often used 44 SELECT LastName [Last Name], Name [Dept Name] FROM Employees CROSS JOIN Departments Last Name Dept Name Duffy Document Control Wang DuffyEngineering WangEngineering ……

 You can apply additional conditions in the WHERE clause: 45 SELECT e.EmployeeID, e.LastName, e.DepartmentID, d.DepartmentID, d.Name AS DepartmentName d.DepartmentID, d.Name AS DepartmentName FROM Employees e INNER JOIN Departments d INNER JOIN Departments d ON e.DepartmentID = d.DepartmentID ON e.DepartmentID = d.DepartmentID WHERE d.Name = 'Sales' EmployeeIDLastName Depart- mentID Department- Name 268Jiang33Sales 273Welcker33Sales 275Blythe33Sales

 Joins can use any Boolean expression in the ON clause: 46 SELECT e.FirstName, e.LastName, d.Name as DeptName FROM Employees e INNER JOIN Departments d INNER JOIN Departments d ON (e.DepartmentId = d.DepartmentId ON (e.DepartmentId = d.DepartmentId AND e.HireDate > '1/1/1999' AND e.HireDate > '1/1/1999' AND d.Name IN ('Sales', 'Finance')) AND d.Name IN ('Sales', 'Finance'))FirstNameLastNameDeptNameDeborahPoeFinance WendyKahnFinance ………

Inserting Data in Tables

 INSERT command  INSERT INTO VALUES ( )  INSERT INTO ( ) VALUES ( )  INSERT INTO SELECT  INSERT INTO SELECT 48 INSERT INTO EmployeesProjects VALUES (229, 25) INSERT INTO Projects(Name, StartDate) VALUES ('New project', GETDATE()) INSERT INTO Projects(Name, StartDate) SELECT Name + ' Restructuring', GETDATE() SELECT Name + ' Restructuring', GETDATE() FROM Departments FROM Departments

Updating Data in Tables

 We can update tables based on condition from joined tables 50 UPDATE Employees SET JobTitle = 'Senior ' + JobTitle FROM Employees e JOIN Departments d JOIN Departments d ON e.DepartmentID = d.DepartmentID ON e.DepartmentID = d.DepartmentID WHERE d.Name = 'Sales'

 UPDATE command  UPDATE SET WHERE  UPDATE SET WHERE  Note: Don't forget the WHERE clause! 51 UPDATE Employees SET LastName = 'Brown' WHERE EmployeeID = 1 UPDATE Employees SET Salary = Salary * 1.10, JobTitle = 'Senior ' + JobTitle JobTitle = 'Senior ' + JobTitle WHERE DepartmentID = 3

Deleting Data From Tables

 Deleting rows from a table  DELETE FROM WHERE  DELETE FROM WHERE  Note: Don’t forget the WHERE clause!  Delete all rows from a table at once  TRUNCATE TABLE  TRUNCATE TABLE 53 DELETE FROM Employees WHERE EmployeeID = 1 DELETE FROM Employees WHERE LastName LIKE 'S%' TRUNCATE TABLE Users

 We can delete records from tables based on condition from joined tables 54 DELETE FROM Employees FROM Employees e JOIN Departments d JOIN Departments d ON e.DepartmentID = d.DepartmentID ON e.DepartmentID = d.DepartmentID WHERE d.Name = 'Sales'

55

Questions?