SQL I. SQL – Introduction  Standard DML/DDL for relational DB’s  DML = “Data Manipulation Language” (queries, updates)  DDL = “Data Definition Language”

Slides:



Advertisements
Similar presentations
Chapter 4: SQL  Basic Structure  Data Definition Language  Modification of the Database  Set Operations  Aggregate Functions  Null Values  Nested.
Advertisements

Ver 1,12/09/2012Kode :CCs 111,Sistem basis DataFASILKOM Chapter 3: SQL Bambang Irawan Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan.
CS4432: Database Systems II Query Operator & Algebraic Expressions 1.
1 Today’s Class  Relational Model  SQL CS F212 Database Systems.
E-R Diagram for a Banking Enterprise
CMSC424, Spring 2005 CMSC424: Database Design Lecture 5.
Oct 28, 2003Murali Mani Relational Algebra B term 2004: lecture 10, 11.
SQL Sangeeta Devadiga CS157A, Fall Outline Background Data Definition Basic Structure Set Operation.
SQL.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts Ordering the Display of Tuples List in alphabetic order the names of all customers having.
CMSC424: Database Design Instructor: Amol Deshpande
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 3: SQL.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts Chapter 4: SQL Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries.
SQL Structured Query Language Meizhen Huang. Content (4.1 – 4.4) Background Parts of SQL Basic Structure Set Operations Aggregate Functions.
Slides adapted from A. Silberschatz et al. Database System Concepts, 5th Ed. SQL Database Management Systems I Alex Coman, Winter 2006.
CMSC424: Database Design Instructor: Amol Deshpande
SQL (DML) II. Review: Formal Semantics of SQL: RA* SELECT A1, A2, …, An FROM r1, r2, …, rm WHERE P Query: Semantics:  * A1, A2,..., An (  * P (r1 x*
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 3: SQL.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts Aandachtspunten Deadlines – alles op tijd inleveren! n Lees goed wat van je verwacht wordt!
Instructor: Mohamed Eltabakh
Relational Algebra. Relational Query Languages n Query = “retrieval program” n Language examples: ù Theoretical : 1. Relational Algebra 2. Relational.
CIS552SQL1 Data Definition Language Insertions Basic Query Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations.
Nov 18, 2003Murali Mani Relational Algebra B term 2004: lecture 10, 11.
Murali Mani Relational Algebra. Murali Mani What is Relational Algebra? Defines operations (data retrieval) for relational model SQL’s DML (Data Manipulation.
SQL Operations Aggregate Functions Having Clause Database Access Layer A2 Teacher Up skilling LECTURE 5.
Chapter 3: SQL Data Definition Language Data Definition Language Basic Structure of SQL Basic Structure of SQL Set Operations Set Operations Aggregate.
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 3: SQL.
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 3: SQL.
Database System Concepts, 5th Ed. Bin Mu at Tongji University Chapter 3: SQL.
-- Introduction to database principles Maoying Wu March 11, 2013 Chapter 3: Basic SQL.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts Chapter 4: SQL Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries.
SQL. Basic Structure SQL is based on set and relational operations with certain modifications and enhancements A typical SQL query has the form: select.
3.1 Chapter 3: SQL. 3.2 Chapter 3: SQL Basic Query Structure Set Operations Aggregate Functions Null Values Nested Subqueries Complex Queries Views Modification.
COMP 5138 Relational Database Management Systems Semester 2, 2007 Lecture 5B Introduction to SQL.
Lecture 6 Structured Query Language SQL Lecture 6 Structured Query Language SQL Instructor: Haya Sammaneh.
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 3: SQL.
3.1 Chapter 3: SQL Schema used in examples p (omit 3.8.2, , 3.11)
Relational Algebra Instructor: Mohamed Eltabakh 1.
SQL – Introduction  Standard DML/DDL for relational DB’s  DML = “Data Manipulation Language” (queries, updates)  DDL = “Data Definition Language” (create.
CS 370 Database Systems Lecture 12 Introduction to SQL.
Chapter 3: SQL. 3.2Unite International CollegeDatabase Management Systems Chapter 3: SQL Data Definition Basic Query Structure Set Operations Aggregate.
Chapter 6: Formal Relational Query Languages. 6.2 Chapter 6: Formal Relational Query Languages Relational Algebra Tuple Relational Calculus Domain Relational.
Chapter 3: SQL. 3.2Unite International CollegeDatabase Management Systems Chapter 3: SQL Data Definition Basic Query Structure Set Operations Aggregate.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts Chapter 4: SQL Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries.
©Silberschatz, Korth and Sudarshan3.1Database System Concepts, 5 th Edition, Oct 5, 2006 SQL Data Definition Basic Query Structure Set Operations Aggregate.
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 3: SQL.
More SQL Today:  Nested Queries  More SQL Nested Queries in SQL  Queries containing other queries  Inner query:  Can appear in FROM or WHERE clause.
Chapter 8: SQL. Data Definition Modification of the Database Basic Query Structure Aggregate Functions.
1 CSCE Database Systems Anxiao (Andrew) Jiang The Database Language SQL.
©Silberschatz, Korth and Sudarshan3.1Database System Concepts Extended Relational-Algebra-Operations Generalized Projection Aggregate Functions Outer Join.
Relational Algebra Instructor: Mohamed Eltabakh 1.
SCUHolliday - coen 1787–1 Schedule Today: u Subqueries, Grouping and Aggregation. u Read Sections Next u Modifications, Schemas, Views. u Read.
Relational Algebra Instructor: Mohamed Eltabakh 1.
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 3: SQL Bambang.
SQL and Relational Algebra
Structured Query Language
Structured Query Language (Data Manipulation Language)
Relational Algebra.
Introduction to SQL.
Relational Algebra - Part 1
Chapter 3: Relational Model III
Structured Query Language (SQL)
Chapter 3: SQL.
SQL Structured Query Language 11/9/2018 Introduction to Databases.
Chapter 3: SQL.
CS 405G: Introduction to Database Systems
Instructor: Mohamed Eltabakh
SQL: Structured Query Language
CS 405G: Introduction to Database Systems
Presentation transcript:

SQL I

SQL – Introduction  Standard DML/DDL for relational DB’s  DML = “Data Manipulation Language” (queries, updates)  DDL = “Data Definition Language” (create tables, indexes, …)  Also includes:  view definition  security  integrity constraints  transactions  History:  System R project at IBM: “SEQUEL”  later, becomes standard: Structured Query Language

A Simple SELECT-FROM-WHERE Query SELECT bname FROM loan WHERE amt > 1000 Similar to:  bname (  amt>1000 (loan)) But not quite…. Duplicates are retained, i.e. result not a set Why preserve duplicates? eliminating them is costly often, users don’t care can also write: SELECT DISTINCT bname FROM loan WHERE amt> 1000

Another SFW query SELECT cname, balance FROM depositor, account WHERE depositor.acct_no = account.acct_no depositor (customer-name, account-number) account (account-number, branch-name, balance) Similar to :  cname, balance (depositor account) Note: you can also write SELECT cname, balance FROM depositor AS d, account AS a WHERE d.acct_no = a.acct_no

In general SELECT A1, A2, …, An FROM r1, r2, …, rm [WHERE P]  WHERE clause optional (missing WHERE clause means WHERE is true) Conceptual Algorithm: 1.FROM clause: cartesian product ( X ) t1  r1 x r2 x … x rm 2.WHERE clause: selection ( s ) t2   P ( t1) 3.SELECT clause: projection ( p ) result   A1, A2, …., An (t2) Note: will never be implemented with product (X) !

The SELECT clause equivalent to projection, despite name can use “*” to get all attributes e.g., can write SELECT DISTINCT to eliminate duplicates can write SELECT ALL to preserve duplicate (default) can include arithmetic expressions e.g., SELECT bname, acct_no, balance*1.05 FROM account SELECT * FROM loan

The WHERE clause  equivalent to selection, despite name…  WHERE predicate can be:  Simple: attribute relop attribute or constant (relop: )  Complex: using AND, OR, NOT, BETWEEN  e.g. SELECT lno FROM loan WHERE amt BETWEEN 9000 AND SELECT lno FROM loan WHERE amt >= 9000 AND amt <= 10000

Formal Semantics of SQL  RA can only express SELECT DISTINCT queries  to express SQL, must extend to a bag algebra, a bag (aka: multiset) like sets, but can have duplicates e.g. { 4, 5, 4, 6} e.g. balances =

The FROM clause  Equivalent to cartesian product ( X ) (or depending on the WHERE clause)  binds tuples in relations to variable names  e.g.: FROM borrower, loan  computes: borrower x loan  identifies borrower, loan columns (attrs) in the results e.g. allowing one to write: WHERE borrower.lno = loan.lno FROM borrower b, loan l WHERE b.lno = l.lno Simplifies the expression Needed for self-joins

Step 1 – Cross Product SELECT S.name, E.cid FROM Students S, Enrolled E WHERE S.sid=E.sid AND E.grade=‘B'

Step 2) Discard tuples that fail predicate SELECT S.name, E.cid FROM Students S, Enrolled E WHERE S.sid=E.sid AND E.grade=‘B'

Step 3) Discard Unwanted Columns SELECT S.name, E.cid FROM Students S, Enrolled E WHERE S.sid=E.sid AND E.grade=‘B'

Formal Semantics of SQL: RA* 1.  * P (r) : preserves copies in r  * cname = “Smith” (balances)   * A1, A2, …, An (r): no duplicate elimination  * cname ( balances) = balances

Formal Semantics of SQL: RA* 3. r  * s : additive union: e.g. if r =, s = then: r  * s = A B 1 a 2 b A B 2 b 3 a 1 a A B 1 a 2 b 3 a 1 a

Formal Semantics of SQL: RA* 4. r -* s : bag difference e.g. r -* s = s - * r = A B 1 a A B 3 a A B 1 a 2 b A B 2 b 3 a 1 a r s

Formal Semantics of SQL: RA* 5. r x* s : cartesian product with bags e.g. if: r =, s = then: r x* s = A B 1 a 2 b C  C   A B C 1 a  1 a  1 a  1 a  2 b  2 b 

Formal Semantics of SQL: RA* SELECT A1, A2, …, An FROM r1, r2, …, rm WHERE P Query Semantics:  * A1, A2,..., An (  * P (r1 x* r2 x*... rm)) Query: SELECT DISTINCT A1, A2,..., An FROM r1, r2,..., rm WHERE P Q: What is the only RA operator that need be changed above? Ans:  *

More SQL: AS 1. Using AS in FROM clause introduces tuple variables e.g.: 2. Using AS in SELECT clause renames columns in result (  ) e.g.: SELET DISTINCT T.bname FROM branch AS T, branch AS S WHERE T.assets > S.assets SELET bname, acct_no, balance*1.05 AS newbal FROM account

More SQL: Intro Give a name to a query result (  ) E.g. intuitively: BranchNames  CREATE TABLE BranchNames AS SELECT DISTINCT bname FROM branch SELECT DISTINCT bname FROM branch

More SQL - String Operations  SQL includes a string-matching operator  percent (%). The % character matches any substring.  underscore (_). The _ character matches any character.  E.g. Find the names of all customers whose street includes the substring “Main”. SELECT customer-name FROM customer WHERE cstreet LIKE ‘ %Main% ’ match the name “Main%”: use:like ‘Main\%’ escape ‘\’ SQL supports a variety of string operations such as concatenation (using “||”) converting from upper to lower case (and vice versa) finding string length, extracting substrings, etc.

More SQL: Set/Bag operations Set operations: UNION, INTERSECT, EXCEPT (MINUS) Bag operations: UNION ALL, INTERSECT ALL, EXCEPT ALL Duplicate counting: Given m copies of  in r and n copies of  in s Q: How many copies of  in r UNION ALL s 2. r INTERSECT ALL s 3. r EXCEPT ALL s 1. Ans : m + n 2. Ans: min (m,n) 3. Ans: max(0, m-n)

More SQL: Set/Bag operations Example Queries: (SELECT cname FROM depositor) (SELECT cname FROM borrower) ? ? = UNION returns names of customers with saving accts, loans, or both ? = INTERSECT returns names of customers with saving accts AND loans ? = EXCEPT returns names of customers with saving accts but NOT loans

Order by Example: List in alphabetical order, the names of all customers with loans at Perry branch: SELECT DISTINCT cname FROM borrower b, loan l WHERE b.lno = l.lno AND bname = “Perry” ORDER BY cname Result: cname Adams Byers Smith..... can also write: ORDER BY cname DESC or ORDER BY cname ASC (default) like SELECT DISTINCT, very expensive...

Aggregate Operators Aggregate Operators: AVG (col): average of values in col MIN (col) : minimum value in col MAX (col): maximum value in col SUM (col): sum of values in col COUNT (col): number of values in col Examples: 1. Find the average acct Perry: SELECT AVG (bal) FROM account WHERE bname = “Perry” 2. Find the number of tuples in customer: SELECT COUNT(*) FROM customer account (acct_no, bname, bal) 3. Find the number of depositors SELECT COUNT( DISTINCT cname) FROM depositor COUNT, SUM, AVG have a DISTINCT version