Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
29 views

Basic SQL

SQL is a standard language used to manage data in relational database systems. It contains clauses for data queries (SELECT), table references (FROM), row filtering (WHERE), and sorting (ORDER BY). SQL can perform operations on sets of rows like unions, intersections, and differences. It also supports functions for aggregation like counting, summing, averaging, and more. SQL was originally developed by IBM in the 1970s and uses concepts from relational algebra and calculus to manipulate data in relational databases.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Basic SQL

SQL is a standard language used to manage data in relational database systems. It contains clauses for data queries (SELECT), table references (FROM), row filtering (WHERE), and sorting (ORDER BY). SQL can perform operations on sets of rows like unions, intersections, and differences. It also supports functions for aggregation like counting, summing, averaging, and more. SQL was originally developed by IBM in the 1970s and uses concepts from relational algebra and calculus to manipulate data in relational databases.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 26

SQL

Structured Query Language

Content (4.1 4.4)

Background
Parts of SQL
Basic Structure
Set Operations
Aggregate Functions

Background

SQL Structured Query Language

Developed by IBM in the 1970s,


originally called Sequel
The standard relational-database
language
Uses relational-algebra and relationalcalculus constructs

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.

Relations using in
Examples

Branch-schema = (branch-name, branch-city,


assets)
Customer-schema = (customer-name, customerstreet, 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, accountnumber)

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 (r1 x r2 x ... x rm))

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

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

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.

from

from Cartesian-product in RA.


Find the Cartesian product borrower x
loan
select
from borrower, loan

from
SQL uses relation-name.attribute-name,

as does relational algebra, to avoid


ambiguity
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

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

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

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.branchcity = Brooklyn

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.

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%

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

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.

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)

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)

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)

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

avg

Find the average account balance


at the Perryridge branch.
select avg (balance)
from account
where branch-name =
Perryridge

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

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

The End

You might also like