- Courses - University of California, Berkeley

advertisement
Relational Algebra and Calculus:
Introduction to SQL
University of California, Berkeley
School of Information
IS 257: Database Management
IS 257 – Fall 2012
2012-09-11 SLIDE 1
Announcements
• TA for the course
• Accounts set up (?)
IS 257 – Fall 2012
2012-09-11 SLIDE 2
Lecture Outline
• Review
– Logical Design and Normalization
• Relational Algebra
• Relational Calculus
• Introduction to SQL
IS 257 – Fall 2012
2012-09-11 SLIDE 3
Lecture Outline
• Review
– Logical Design and Normalization
• Relational Algebra
• Relational Calculus
• Introduction to SQL
IS 257 – Fall 2012
2012-09-11 SLIDE 4
Normalization
• Normalization theory is based on the
observation that relations with certain
properties are more effective in inserting,
updating and deleting data than other sets
of relations containing the same data
• Normalization is a multi-step process
beginning with an “unnormalized” relation
– Hospital example from Atre, S. Data Base:
Structured Techniques for Design,
Performance, and Management.
IS 257 – Fall 2012
2012-09-11 SLIDE 5
Normal Forms
•
•
•
•
•
•
First Normal Form (1NF)
Second Normal Form (2NF)
Third Normal Form (3NF)
Boyce-Codd Normal Form (BCNF)
Fourth Normal Form (4NF)
Fifth Normal Form (5NF)
IS 257 – Fall 2012
2012-09-11 SLIDE 6
Normalization
No transitive
dependency
between
nonkey
attributes
All
determinants
are candidate
keys - Single
multivalued
dependency
IS 257 – Fall 2012
BoyceCodd and
Higher
Functional
dependency
of nonkey
attributes on
the primary
key - Atomic
values only
Full
Functional
dependency
of nonkey
attributes on
the primary
key
2012-09-11 SLIDE 7
Normalizing to death
• Normalization splits database information
across multiple tables.
• To retrieve complete information from a
normalized database, the JOIN operation
must be used.
• JOIN tends to be expensive in terms of
processing time, and very large joins are
very expensive.
IS 257 – Fall 2012
2012-09-11 SLIDE 8
Downward Denormalization
Customer
ID
Address
Name
Telephone
Before:
Order
Order No
Date Taken
Date Dispatched
Date Invoiced
Cust ID
IS 257 – Fall 2012
After:
Customer
ID
Address
Name
Telephone
Order
Order No
Date Taken
Date Dispatched
Date Invoiced
Cust ID
Cust Name
2012-09-11 SLIDE 9
Upward Denormalization
Order
Order No
Date Taken
Date Dispatched
Date Invoiced
Cust ID
Cust Name
Order Item
Order No
Item No
Item Price
Num Ordered
IS 257 – Fall 2012
Order
Order No
Date Taken
Date Dispatched
Date Invoiced
Cust ID
Cust Name
Order Price
Order Item
Order No
Item No
Item Price
Num Ordered
2012-09-11 SLIDE 10
Denormalization
• Usually driven by the need to improve
query speed
• Query speed is improved at the expense
of more complex or problematic DML
(Data manipulation language) for updates,
deletions and insertions.
IS 257 – Fall 2012
2012-09-11 SLIDE 11
Using RDBMS to help normalize
• Example database: Cookie
• Database of books, libraries, publisher and
holding information for a shared (union)
catalog
IS 257 – Fall 2012
2012-09-11 SLIDE 12
Cookie relationships
IS 257 – Fall 2012
2012-09-11 SLIDE 13
Cookie BIBFILE relation
ACCNO
A003
T082
C024
B006
B007
B005
B008
B010
B009
B012
B011
B014
B013
B016
B017
F047
B116
S102
B118
B018
C031
C032
C034
AUTHOR
TITLE
LOC
PUBID DATE
AMERICAN LIBRARY ASSOCIATION
ALA BULLETIN
CHICAGO
04
ANDERSON, THEODORE THE TEACHING OF MODERN
PARIS LANGUAGES53
1955
AXT, RICHARD G.
COLLEGE SELF STUDYBOULDER,
: LECTURES
CO.ON INSTITU
51
1960
BALDERSTON, FREDERICKMANAGING
E.
TODAYS UNIVERSITY
SAN FRANCISCO 27
1975
BARZUN, JACQUES
TEACHER IN AMERICA GARDEN CITY
18
1954
BARZUN, JACQUES
THE AMERICAN UNIVERSITY
NEW YORK
: HOW IT RUNS,
24 W 1970
BARZUN, JACQUES
THE HOUSE OF INTELLECT
NEW YORK
24
1961
BELL, DANIEL
THE COMING OF POST-INDUSTRIAL
NEW YORK SOCIETY
09 :
1976
BENSON, CHARLES S. IMPLEMENTING THE LEARNING
SAN FRANCISCO
SOCIETY 27
1974
BERG, IVAR
EDUCATION AND JOBSBOSTON
: THE GREAT TRAINING
10
1971
BERSI, ROBERT M.
RESTRUCTURING THE BACCALAUREATE
WASHINGTON, D.C.03
1973
BEVERIDGE, WILLIAM I. THE ART OF SCIENTIFIC
NEW
INVESTIGATION
YORK
58
1957
BIRD, CAROLINE
THE CASE AGAINST COLLEGE
NEW YORK
08
1975
BISSELL, CLAUDE T.
THE STRENGTH OF THE
TORONTO
UNIVERSITY
57
1968
BLAIR, GLENN MYERS
EDUCATIONAL PSYCHOLOGY
NEW YORK
30
1962
BLAKE, ELIAS, JR.
THE FUTURE OF THE BLACK
CAMBRIDGE,
COLLEGES
MA. 02
1971
BOLAND, R.J.
CRITICAL ISSUES IN INFORMATION
CHICHESTER,
SYSTEMS
ENG.63 R 1987
BROWN, SANBORN C., ED.
SCIENTIFIC MANPOWER
CAMBRIDGE, MASS.
29
1971
BUCKLAND, MICHAEL K. LIBRARY SERVICES IN ELMSFORD,
THEORY ANDNY
CONTEXT
70
1983
BUDIG, GENE A.
ACADEMIC QUICKSANDLINCOLN,
: SOME NEBRASKA
TRENDS AND
37 ISS 1973
CALIFORNIA. DEPT. OF JUSTICE
LAW IN THE SCHOOL MONTCLAIR, N.J. 35
1974
CAMPBELL, MARGARET A.WHY WOULD A GIRL GO
OLD
INTO
WESTBURY,
MEDICINE?
N.Y.
48
1973
CARNEGIE COMMISSION ON
A DIGEST
HIGHER
OF REPORTS
NEW
OF YORK
THE CARNEGIE
30 COMM
1974
IS 257 – Fall 2012
PRICE
$3.00
$10.95
$7.00
$6.00
$7.00
$5.00
$8.00
$10.00
$9.00
$12.00
$11.00
$14.00
$13.00
$14.00
$11.00
$14.25
$30.95
$4.00
$12.00
$13.00
$0.50
$1.50
$3.50
PAGINATION
ILL
63 V.
ILL.
294 P.
X, 300 P. GRAPHS
XVI, 307 P.
280 P.
XII, 319 P.
VIII, 271 P.
XXVII, 507 P.
XVII, 147 P.
XX, 200 P.
IV, 160P.
XIV, 239 P.
XII, 308 P.
VII, 251 P.
678 P.
VIII, PP. 539
XV, 394 P. ILL.
X, 180 P.
XII, 201 P. ILL.
74 P.
IV, 87 P.
V, 114 P.
399 P.
HEIGHT
26
22
28
24
18
20
21
21
24
21
23
18
18
21
24
23
24
26
23
23
21
24
24
2012-09-11 SLIDE 14
How to Normalize?
• Currently no way to have multiple authors
for a given book, and there is duplicate
data spread over the BIBFILE table
• Can we use the DBMS to help us
normalize?
• It is possible (but takes a bit more SQL
knowledge than has been hinted at so far)
– We will return to this problem later
– But CONCEPTUALLY…
IS 257 – Fall 2012
2012-09-11 SLIDE 15
Using RDBMS to Normalize
Create a new table for Authors that includes author
name and an automatically incrementing id
number (for primary key)
Populate the table using the unique author names
(which get assigned id numbers) by extracting
them from the BIBFILE
Create a new table containing a author_id and an
ACCNO
Populate the new table by matching the Authors
and BIBFILE names
Drop the Author name column from BIBFILE
IS 257 – Fall 2012
2012-09-11 SLIDE 16
Advantages of RDBMS
• Relational Database Management
Systems (RDBMS)
• Possible to design complex data storage
and retrieval systems with ease (and
without conventional programming).
• Support for ACID transactions
– Atomic
– Consistent
– Independent
– Durable
IS 257 – Fall 2012
2012-09-11 SLIDE 17
Advantages of RDBMS
• Support for very large databases
• Automatic optimization of searching (when
possible)
• RDBMS have a simple view of the
database that conforms to much of the
data used in business
• Standard query language (SQL)
IS 257 – Fall 2012
2012-09-11 SLIDE 18
Disadvantages of RDBMS
• Until recently, no real support for complex
objects such as documents, video, images,
spatial or time-series data. (ORDBMS add -- or
make available support for these)
• Often poor support for storage of complex
objects from OOP languages (Disassembling the
car to park it in the garage)
• Usually no efficient and effective integrated
support for things like text searching within fields
(MySQL does have simple keyword searching
now with index support)
IS 257 – Fall 2012
2012-09-11 SLIDE 19
Lecture Outline
• Review
– Logical Design and Normalization
• Relational Algebra
• Relational Calculus
• Introduction to SQL
IS 257 – Fall 2012
2012-09-11 SLIDE 20
Relational Algebra
• Relational Algebra is a collection of
operators that take relations as their
operands and return a relation as their
results
• First defined by Codd
– Include 8 operators
• 4 derived from traditional set operators
• 4 new relational operations
From: C.J. Date, Database Systems 8th ed.
IS 257 – Fall 2012
2012-09-11 SLIDE 21
Relational Algebra Operations
•
•
•
•
•
•
•
•
Restrict
Project
Product
Union
Intersect
Difference
Join
Divide
IS 257 – Fall 2012
2012-09-11 SLIDE 22
Restrict
• Extracts specified tuples (rows) from a
specified relation (table)
– Restrict is AKA “Select”
IS 257 – Fall 2012
2012-09-11 SLIDE 23
Project
• Extracts specified attributes(columns) from
a specified relation.
IS 257 – Fall 2012
2012-09-11 SLIDE 24
Product
• Builds a relation from two specified
relations consisting of all possible
concatenated pairs of tuples, one from
each of the two relations. (AKA Cartesian
Product)
Product
a
b
c
IS 257 – Fall 2012
x
y
a
a
b
b
c
c
x
y
x
y
x
y
2012-09-11 SLIDE 25
Union
• Builds a relation consisting of all tuples
appearing in either or both of two specified
relations.
IS 257 – Fall 2012
2012-09-11 SLIDE 26
Intersect
• Builds a relation consisting of all tuples
appearing in both of two specified relations
IS 257 – Fall 2012
2012-09-11 SLIDE 27
Difference
• Builds a relation consisting of all tuples
appearing in first relation but not the
second.
IS 257 – Fall 2012
2012-09-11 SLIDE 28
Join
• Builds a relation from two specified
relations consisting of all possible
concatenated pairs, one from each of the
two relations, such that in each pair the
two tuples satisfy some condition. (E.g.,
equal values in a given col.)
A1 B1
A2 B1
A3 B2
IS 257 – Fall 2012
B1 C1
B2 C2
B3 C3
(Natural
or Inner)
Join
A1 B1 C1
A2 B1 C1
A3 B2 C2
2012-09-11 SLIDE 29
Outer Join
• Outer Joins are similar to PRODUCT -- but
will leave NULLs for any row in the first
table with no corresponding rows in the
second.
Outer
Join
A1
A2
A3
A4
IS 257 – Fall 2012
B1
B1
B2
B7
B1 C1
B2 C2
B3 C3
A1 B1 C1
A2 B1 C1
A3 B2 C2
A4 * *
2012-09-11 SLIDE 30
Divide
• Takes two relations, one binary and one
unary, and builds a relation consisting of
all values of one attribute of the binary
relation that match (in the other attribute)
all values in the unary relation.
Divide
a
a
a
b
c
IS 257 – Fall 2012
x
y
z
x
y
a
x
y
2012-09-11 SLIDE 31
ER Diagram: Acme Widget Co.
Emp#
Wage
ISA
Hourly
Sales
Cust#
Customer
Employee
Sales-Rep
Writes
Orders
Invoice
Invoice# Rep#
Cust#
IS 257 – Fall 2012
Part#
Invoice# Quantity
Contains
Line-Item
Contains
Part
Part#
Count
Price
2012-09-11 SLIDE 32
Employee
SSN
123-76-3423
342-88-7865
486-87-6543
843-36-7659
IS 257 – Fall 2012
Lastname
Jones
Smith
Hendersen
Martinez
Firstname
Janet
Thomas
Charles
Roberto
Middlename Birthdate
Mary
6/25/1963
Frederick
8/4/1970
Robert
9/23/1961
Garcia
7/8/1958
Address
234 State
12 Lambert
44 Central
76 Highland
2012-09-11 SLIDE 33
Part
Part #
1
2
3
4
5
6
7
8
9
IS 257 – Fall 2012
Name
Price
Count
Big blue widget
3.76
2
Small blue Widget
7.35
4
Tiny red widget
5.25
7
large red widget
157.23
23
double widget rack
10.44
12
Small green Widget
30.45
58
Big yellow widget
7.96
1
Tiny orange widget
81.75
42
Big purple widget
55.99
9
2012-09-11 SLIDE 34
Sales-Rep
SSN
Rep # Sales
123-76-3423
1 $12,345.45
843-36-7659
2 $231,456.75
Hourly
SSN
Wage
342-88-7865
$12.75
486-87-6543
$20.50
IS 257 – Fall 2012
2012-09-11 SLIDE 35
Customer
Cust #
COMPANY
Integrated Standards
1 Ltd.
STREET1
STREET2
CITY
STATE
ZIPCODE
35 Broadway
Floor 12
New York
NY
02111
34 Bureaucracy Plaza
3 Control Elevation
Place
Floors 1-172
Cyber Assicates
Center
Phildelphia
PA
03756
Cyberoid
NY
08645
35 Libra Plaza
Nashua
NH
09242
1 Broadway
Middletown
IN
32467
88 Oligopoly Place
3 Independence
Parkway
Sagrado
TX
78798
Rivendell
CA
93456
8 Little Mighty Micro
34 Last One Drive
Orinda
CA
94563
9 SportLine Ltd.
38 Champion Place
Compton
CA
95328
2 MegaInt Inc.
3 Cyber Associates
General
4 Consolidated
Consolidated
5 MultiCorp
Internet Behometh
6 Ltd.
Consolidated
7 Brands, Inc.
IS 257 – Fall 2012
Suite 882
2012-09-11 SLIDE 36
Invoice
Invoice # Cust #
Rep #
93774
3
84747
4
88367
5
88647
9
776879
2
65689
6
IS 257 – Fall 2012
1
1
2
1
2
2
2012-09-11 SLIDE 37
Line-Item
Invoice # Part #
93774
84747
88367
88647
776879
65689
93774
88367
IS 257 – Fall 2012
Quantity
3
10
23
1
75
2
4
3
22
5
76
12
23
10
34
2
2012-09-11 SLIDE 38
Join Items
Invoice # Part #
Quantity
93774
3
10
84747
23
1
88367
75
2
88647
4
3
776879
22
5
65689
76
12
93774
23
10
88367
34
2
Part #
Cust #
…
COMPANY
Integrated Standards
1 Ltd.
35 Broadway
Floor 12
New York
NY
02111
34 Bureaucracy Plaza
3 Control Elevation
Place
Floors 1-172
Cyber Assicates
Center
Phildelphia
PA
03756
Cyberoid
NY
08645
35 Libra Plaza
Nashua
NH
09242
1 Broadway
Middletown
IN
32467
88 Oligopoly Place
3 Independence
Parkway
Sagrado
TX
78798
Rivendell
CA
93456
8 Little Mighty Micro
34 Last One Drive
Orinda
CA
94563
9 SportLine Ltd.
38 Champion Place
Compton
CA
95328
2 MegaInt Inc.
Invoice # Cust #
Rep #
93774
3
84747
4
88647
5
88367
9
776879
2
65689
6
IS 257 – Fall 2012
1
1
2
1
2
2
Name
Price
Count
1 Big blue widget
3.76
2
2 Small blue Widget
7.35
4
3 Tiny red widget
5.25
7
4 large red widget
157.23
23
5 double widget rack
10.44
12
6 Small green Widget
30.45
58
7 Big yellow widget
7.96
1
8 Tiny orange widget
81.75
42
9 Big purple widget
55.99
9
…
… CITY
…STATE ZIPCODE
STREET1
STREET2
3 Cyber Associates
General
4 Consolidated
Consolidated
5 MultiCorp
Internet Behometh
6 Ltd.
Consolidated
7 Brands, Inc.
Suite 882
2012-09-11 SLIDE 39
Relational Algebra
• What is the name of the customer who
ordered Large Red Widgets?
– Restrict “large Red Widgets” row from Part as
temp1
– Join temp1 with Line-item on Part # as temp2
– Join temp2 with Invoice on Invoice # as temp3
– Join temp3 with Customer on cust # as temp4
– Project Company from temp4 as answer
IS 257 – Fall 2012
2012-09-11 SLIDE 40
Lecture Outline
• Review
– Logical Design and Normalization
• Relational Algebra
• Relational Calculus
• Introduction to SQL
IS 257 – Fall 2012
2012-09-11 SLIDE 41
Relational Calculus
• Relational Algebra provides a set of explicit
operations (select, project, join, etc) that can be
used to build some desired relation from the
database
• Relational Calculus provides a notation for
formulating the definition of that desired relation
in terms of the relations in the database without
explicitly stating the operations to be performed
• SQL is based on the relational calculus and
algebra
IS 257 – Fall 2012
2012-09-11 SLIDE 42
Lecture Outline
• Review
– Logical Design and Normalization
• Relational Algebra
• Relational Calculus
• Introduction to SQL
IS 257 – Fall 2012
2012-09-11 SLIDE 43
SQL
• Structured Query Language
• Used for both Database Definition,
Modification and Querying
• Basic language is standardized across
relational DBMS’s. Each system may
have proprietary extensions to standard.
• Relational Calculus combines Restrict,
Project and Join operations in a single
command. SELECT.
IS 257 – Fall 2012
2012-09-11 SLIDE 44
SQL - History
• QUEL (Query Language from Ingres)
• SEQUEL from IBM San Jose
• ANSI 1992 Standard is the version used
by most DBMS today (SQL92)
• Basic language is standardized across
relational DBMSs. Each system may have
proprietary extensions to standard.
IS 257 – Fall 2012
2012-09-11 SLIDE 45
SQL99
• In 1999, SQL:1999 – also known as SQL3 and
SQL99 – was adopted and contains the
following eight parts:
–
–
–
–
–
–
–
–
The SQL/Framework (75 pages)
SQL/Foundation (1100 pages)
SQL/Call Level Interface (400 pages)
SQL/Persistent Stored Modules (PSM) (160 pages)
SQL/Host Language Bindings (250 pages)
SQL Transactions (??)
SQL Temporal objects (??)
SQL Objects (??)
• Designed to be compatible with SQL92
IS 257 – Fall 2012
2012-09-11 SLIDE 46
SQL:2003
• Further additions to the standard including XML
support and Java bindings, as well as finally
standardizing autoincrement data
• ISO/IEC 9075-14:2006 defines ways in which
SQL can be used in conjunction with XML.
– It defines ways of importing and storing XML data in
an SQL database, manipulating it within the database
and publishing both XML and conventional SQL-data
in XML form.
– In addition, it provides facilities that permit
applications to integrate into their SQL code the use
of XQuery, the XML Query Language published by
the World Wide Web Consortium (W3C), to
concurrently access ordinary SQL-data and XML
documents.
From the ISO/IEC web site
IS 257 – Fall 2012
2012-09-11 SLIDE 47
SQL:1999
• The SQL/Framework --SQL basic
concepts and general requirements.
• SQL/Call Level Interface (CLI) -- An API
for SQL. This is similar to ODBC.
• SQL/Foundation --The syntax and SQL
operations that are the basis for the
language.
IS 257 – Fall 2012
2012-09-11 SLIDE 48
SQL99
• SQL/Persistent Stored Modules (PSM) -Defines the rules for developing SQL
routines, modules, and functions such as
those used by stored procedures and
triggers. This is implemented in many
major RDBMSs through proprietary,
nonportable languages, but for the first
time we have a standard for writing
procedural code that is transportable
across databases.
IS 257 – Fall 2012
2012-09-11 SLIDE 49
SQL99
• SQL/Host Language Bindings --Define ways to
code embedded SQL in standard programming
languages. This simplifies the approach used by
CLIs and provides performance enhancements.
• SQL Transactions --Transactional support for
RDBMSs.
• SQL Temporal objects --Deal with Time-based
data.
• SQL Objects --The new Object-Relational
features, which represent the largest and most
important enhancements to this new standard.
IS 257 – Fall 2012
2012-09-11 SLIDE 50
SQL99 (Builtin) Data Types
NEW
IN SQL99
SQL
Data Types
Predefined
Types
Ref Types
Numeric
String
Bit
Exact
User-Defined
Types
Arrays
Character
Approximate
DateTime
Blob
Fixed
ROW
Data Struct
Interval
Boolean
Date
Time
Fixed
Varying
Varying
Timestamp
CLOB
IS 257 – Fall 2012
2012-09-11 SLIDE 51
SQL Uses
• Database Definition and Querying
– Can be used as an interactive query language
– Can be imbedded in programs
• Relational Calculus combines Select,
Project and Join operations in a single
command: SELECT
IS 257 – Fall 2012
2012-09-11 SLIDE 52
SELECT
• Syntax:
SELECT [DISTINCT] attr1, attr2,…, attr3
FROM rel1 r1, rel2 r2,… rel3 r3 WHERE
condition1 {AND | OR} condition2 ORDER
BY attr1 [DESC], attr3 [DESC]
IS 257 – Fall 2012
2012-09-11 SLIDE 53
SELECT
• Syntax:
SELECT a.author, b.title FROM authors a,
bibfile b, au_bib c WHERE a.AU_ID =
c.AU_ID and c.accno = b.accno ORDER BY
a.author ;
• Examples in Access...
IS 257 – Fall 2012
2012-09-11 SLIDE 54
SELECT Conditions
•
•
•
•
•
•
= equal to a particular value
>= greater than or equal to a particular value
> greater than a particular value
<= less than or equal to a particular value
<> not equal to a particular value
LIKE “*term*” (may be other wild cards in
other systems)
• IN (“opt1”, “opt2”,…,”optn”)
• BETWEEN val1 AND val2
• IS NULL
IS 257 – Fall 2012
2012-09-11 SLIDE 55
Relational Algebra Selection using SELECT
• Syntax:
SELECT * WHERE condition1 {AND | OR}
condition2;
IS 257 – Fall 2012
2012-09-11 SLIDE 56
Relational Algebra Projection using SELECT
• Syntax:
SELECT [DISTINCT] attr1, attr2,…, attr3
FROM rel1 r1, rel2 r2,… rel3 r3;
IS 257 – Fall 2012
2012-09-11 SLIDE 57
Relational Algebra Join using SELECT
• Syntax:
SELECT * FROM rel1 r1, rel2 r2 WHERE
r1.linkattr = r2.linkattr ;
IS 257 – Fall 2012
2012-09-11 SLIDE 58
Sorting
• SELECT BIOLIFE.`Common Name`,
BIOLIFE.`Length (cm)`
FROM BIOLIFE
ORDER BY BIOLIFE.`Length (cm)` DESC;
IS 257 – Fall 2012
2012-09-11 SLIDE 59
Subqueries
• SELECT SITES.`Site Name`,
SITES.`Destination no`
FROM SITES
WHERE sites.`Destination no` IN
(SELECT `Destination no` from DEST
where `avg temp (f)` >= 78);
• Can be used as a form of JOIN.
IS 257 – Fall 2012
2012-09-11 SLIDE 60
Aggregate Functions
•
•
•
•
•
•
Count
Avg
SUM
MAX
MIN
Many others are available in different
systems
IS 257 – Fall 2012
2012-09-11 SLIDE 61
Using Aggregate functions
• SELECT attr1, Sum(attr2) AS name
FROM tab1, tab2 ...
GROUP BY attr1, attr3 HAVING condition;
IS 257 – Fall 2012
2012-09-11 SLIDE 62
Using an Aggregate Function
• SELECT DIVECUST.Name,
Sum(Rental_Price*qty) AS Total
FROM (DIVECUST INNER JOIN DIVEORDS ON
DIVECUST.Customer_No =
DIVEORDS.Customer_No) INNER JOIN
DIVEITEM ON DIVEORDS.Order_No =
DIVEITEM.Order_No
GROUP BY DIVECUST.Name
HAVING ((DIVECUST.Name) LIKE
‘%Jazdzewski%’);
IS 257 – Fall 2012
2012-09-11 SLIDE 63
GROUP BY
• SELECT DEST.[Destination Name],
Count(*) AS Expr1
FROM DEST INNER JOIN DIVEORDS
ON DEST.[Destination Name] =
DIVEORDS.Destination
GROUP BY DEST.[Destination Name]
HAVING ((Count(*))>1);
• Provides a list of Destinations with the
number of orders going to that destination
Note: the square brackets are not part of the standard,
But are used in Access for names with embedded blanks
IS 257 – Fall 2012
2012-09-11 SLIDE 64
Create Table
• CREATE TABLE table-name (attr1 attrtype PRIMARYKEY, attr2 attr-type,…,attrN
attr-type);
– Adds a new table with the specified attributes
(and types) to the database.
• In MySQL (5.5+)
– CREATE TABLE newtablename SELECT …
• Creates new table with contents from SELECT
command including data types
IS 257 – Fall 2012
2012-09-11 SLIDE 65
Access Data Types
•
•
•
•
•
•
•
•
•
Numeric (1, 2, 4, 8 bytes, fixed or float)
Text (255 max)
Memo (64000 max)
Date/Time (8 bytes)
Currency (8 bytes, 15 digits + 4 digits decimal)
Autonumber (4 bytes)
Yes/No (1 bit)
OLE (limited only by disk space)
Hyperlinks (up to 64000 chars)
IS 257 – Fall 2012
2012-09-11 SLIDE 66
Access Numeric types
• Byte
– Stores numbers from 0 to 255 (no fractions). 1 byte
• Integer
– Stores numbers from –32,768 to 32,767 (no fractions) 2
bytes
• Long Integer (Default)
– Stores numbers from –2,147,483,648 to 2,147,483,647 (no
fractions). 4 bytes
• Single
– Stores numbers from -3.402823E38 to –1.401298E–45 for
negative values and from 1.401298E–45 to 3.402823E38
for positive values.
4 bytes
• Double
– Stores numbers from –1.79769313486231E308 to –
4.94065645841247E–324 for negative values and from
1.79769313486231E308 to 4.94065645841247E–324 for
positive values.
15
8 bytes
• Replication ID
– Globally unique identifier (GUID)
IS 257 – Fall 2012
N/A
16 bytes
2012-09-11 SLIDE 67
Oracle Data Types
•
•
•
•
CHAR (size) -- max 2000
VARCHAR2(size) -- up to 4000
DATE
DECIMAL, FLOAT, INTEGER, INTEGER(s),
SMALLINT, NUMBER, NUMBER(size,d)
– All numbers internally in same format…
• LONG, LONG RAW, LONG VARCHAR
– up to 2 Gb -- only one per table
• BLOB, CLOB, NCLOB -- up to 4 Gb
• BFILE -- file pointer to binary OS file
IS 257 – Fall 2012
2012-09-11 SLIDE 68
Creating a new table from existing tables
• Access and PostgreSQL Syntax:
SELECT [DISTINCT] attr1, attr2,…, attr3 INTO
newtablename FROM rel1 r1, rel2 r2,… rel3
r3 WHERE condition1 {AND | OR} condition2
ORDER BY attr1 [DESC], attr3 [DESC]
IS 257 – Fall 2012
2012-09-11 SLIDE 69
How to do it in MySQL
mysql> SELECT * FROM foo;
+---+
|n|
+---+
|1|
+---+
mysql> CREATE TABLE bar (m INT) SELECT n FROM foo;
Query OK, 1 row affected (0.02 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM bar;
+------+---+
|m |n|
+------+---+
| NULL | 1 |
+------+---+
IS 257 – Fall 2012
2012-09-11 SLIDE 70
Download