Presentation is loading. Please wait.

Presentation is loading. Please wait.

SQL Structured Query Language Meizhen Huang. Content (4.1 – 4.4) Background Parts of SQL Basic Structure Set Operations Aggregate Functions.

Similar presentations


Presentation on theme: "SQL Structured Query Language Meizhen Huang. Content (4.1 – 4.4) Background Parts of SQL Basic Structure Set Operations Aggregate Functions."— Presentation transcript:

1 SQL Structured Query Language Meizhen Huang

2 Content (4.1 – 4.4) Background Parts of SQL Basic Structure Set Operations Aggregate Functions

3 Background SQL – Structured Query Language Developed by IBM in the 1970 ’ s, originally called Sequel The standard relational-database language Uses relational-algebra and relational- calculus constructs

4 Parts of SQL DDL: commands for defining relation schemas, deleting relations, and modifying relation schemas. DML: based on the relational algebra and the tuple relational calculus. Integrity: commands for specifying integrity constraints for the data in the DB. Authorization: commands for specifying access rights to relations and views.

5 Relations using in Examples Branch-schema = (branch-name, branch-city, assets) Customer-schema = (customer-name, customer- street, customer-city) Loan-schema = (loan-number,branch-name, amount) Borrower-schema = (customer-name, loan-number) Account-schema = (account-number, branch-name, balance) Depositor-schema = (customer-name, account- number)

6 Basic Structure Basic structure of SQL includes three clauses: select, from and where. A typical SQL has the form select A1, A2, …, An from r1,r2, …,rm where P Ai – an attribute ri – a relation p – a predicate This query is equivalent to the relational algebra expression:  A1, A2,..., An (  P (r 1 x r 2 x... x r m ))

7 select select – projection in RA select without elimination of duplicates “ Find the names of all branches in the loan relation. ” select branch-name select all branch-name from loan from loan  select with elimination of duplicates select distinct branch-name from loan

8 select  “ * ” can be used to denote “ all attributes ”. select * from loan The select clause may also contain arithmetic expressions involving the operators +, -, *, and / operating on constants or attributes of tuples. select loan-number, branch-name, amount*100 from loan

9 where where – selection predicate of RA e.g. “ Find all loan numbers for loans made at the Perryridge branch with loan amounts greater that $1200. ” select loan-number from loan where branch-name = ‘ Perryridge ’ and amount > 1200 Note: SQL uses and, or, and not instead of , v, and  in the where clause.  e.g., select loan-number from loan where amount between 90000 and 100000 Note: similarly, we can use the not between comparison operator.

10 from from – Cartesian-product in RA. “ Find the Cartesian product borrower x loan ” select  from borrower, loan

11 from n SQL uses relation-name.attribute-name, as does relational algebra, to avoid ambiguity n “ Find the name, loan number and loan amount of all customers having a loan at the Perryridge branch. ” select customer-name, borrower.loan-number, amount from borrower, loan where borrower.loan-number = loan.loan-number and branch-name = ‘ Perryridge ’

12 Rename Rename can be operated on both relations and attributes. old-name as new-name  e.g., select customer-name, borrower.loan- number as loan-id, amount from borrower, loan where borrower.loan-number = loan.loan-number

13 Tuple Variables Tuple variables are defined in the from clause by way of the as clause. “ Find all customers who have a loan from the bank, find their names, loan numbers, and loan amount. ” select customer-name, T.loan-number, S.amount from borrower as T, loan as S where T.loan-number = S.loan-number

14 Tuple Variables Tuple variables are most useful for comparing two tuples in the same relation. “ Find the names of all branches that have assets greater than at least one branch located in Brooklyn. ” select distinct T.branch-name from branch as T, branch as S where T.assets > S.assets and S.branch-city = ‘ Brooklyn ’

15 String Operations The strings are enclosed by single quotes, for example, ‘ Perryridge ’. The most commonly used operation on strings is pattern matching using “ like ”. Pattern has two special characters: * Percent(%):matches any substring * Underscore(_): matches any character - ‘ Perry% ’ matches any string beginning with “ Perry ”. - ‘ _ _ _ % ’ matches any string of at least 3 characters. Note: Patterns are case sensitive.

16 String Operations “ Find the names of all customers whose street address includes the substring ‘ Main ’. ” select customer-name from customer where customer-street like ‘ %Main% ’

17 Ordering the Display of Tuples The order by clause list the result in sorted order. select distinct customer-name from borrower, loan where borrower.loan-number = loan.loan-number and branch- name = ‘ Perryridge ’ order by customer-name Note: by default, the order by clause lists items in ascending order. ( desc or asc ) select * from loan order by amount desc, loan-number asc

18 Set Operations The set operations union, intersect, and except operate on relations and correspond to the relational algebra operations  union all, intersect all and except all.

19 Union “ Find all customers having a loan, an account, or both at the bank. ” (select customer-name from depositor) union (select customer-name from borrower)

20 Intersect “ Find all customers who have both a loan and an account at the bank. ” (select distinct customer-name from depositor) intersect (select distinct customer-name from borrower)

21 Except “ Find all customers who have an account but no loan at the bank. ” (select distinct customer-name from depositor) except (select customer-name from borrower)

22 Aggregation Functions Aggregation functions take a collection of values as input and return a single value. * Average: avg (number) * Minimum: min * Maximum: max * Total: sum (number) * Count: count

23 avg “ Find the average account balance at the Perryridge branch. ” select avg (balance) from account where branch-name = ‘ Perryridge ’

24 group by Aggregation function can be applied to a group of sets of tuples by using group by clause. “ Find the average account balance at each branch. ” select branch-name, avg(balance) from account group by branch-name

25 having It is useful to state a condition that applies to groups rather than to tuples. “ Find the branches where the average account balance is more than $1200. ” select branch-name, ave(balance) from account group by branch-name having avg(balance) > 1200

26 The End


Download ppt "SQL Structured Query Language Meizhen Huang. Content (4.1 – 4.4) Background Parts of SQL Basic Structure Set Operations Aggregate Functions."

Similar presentations


Ads by Google