Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
http://vub.academia.edu/BeatSigner
2 December 2005
Context of Today's Lecture
Programmers Users DB Admins
Application Database
Queries
Programs Schema
DBMS
DML Query DDL
Preprocessor Compiler Compiler
Transaction
Scheduler
Manager
Data
Manager Buffer Recovery
Manager Manager
Database
Manager
Access File
Methods Manager
SQL-86
first ANSI standard version
SQL-89 / SQL 1
SQL-92 / SQL 2
we will mainly discuss features of the SQL-92 standard
SQL:1999 / SQL 3
recursive queries, triggers, object-oriented features, ...
Bit data
fixed or varying sequence of binary digits (0 or 1)
bit = fixedBit | varyingBit;
fixedBit = "BIT" , [ "(" , length , ")" ];
varyingBit = "BIT VARYING" , [ "(" , length , ")" ];
cd
cdID name duration price year
93 Falling into Place 2007 17.90 2007
117 Moudi 3156 15.50 1996
3 Chromatic 3012 16.50 1996
supplier
supplierID name postcode city
5 Urs Frei 8040 Zurich
2 Franz Hohler 5000 Aarau
CREATE TABLE CD (
cdID INTEGER PRIMARY KEY,
name VARCHAR(30) NOT NULL,
duration TIME,
price NUMERIC(6,2),
year SMALLINT
);
Example
INSERT INTO Customer VALUES(8, 'Urs Frei', 'ETH Zentrum', 8001, 'Zurich');
Example
UPDATE Customer SET name = 'Peter Frei' WHERE customerID = 8;
Example
ALTER TABLE Customer ADD birthdate DATE;
Example
CREATE INDEX nameIndex ON Customer (name);
name
Urs Frei
Pieter de Rover
Robert Michelin
Beat Meier
Urs Frei
name
Urs Frei
Pieter de Rover
Robert Michelin
Beat Meier
name newPrice
Falling into Place 26.85
Moudi 23.20
Chromatic 24.75
name postcode
Urs Frei 8092
name price
Moudi 15.50
Chromatic 16.50
name
Urs Frei
Beat Meier
AND OR
True False Unknown True False Unknown
True True False Unknown True True True True
False False False False False True False Unknown
Unknown Unknown False Unknown Unknown True Unknown Unknown
= NOT
True False Unknown True False Unknown
True True False Unknown False True Unknown
False False True Unknown
Unknown Unknown Unknown Unknown
Note that a check for NULL is not the same as a check for
the empty String ''
name street
Beat Meier Bergstrasse 18
Outer Joins
SELECT * FROM R LEFT OUTER JOIN S ON R.A = S.B;
SELECT * FROM R RIGHT OUTER JOIN S ON R.A = S.B;
SELECT * FROM R FULL OUTER JOIN S ON R.A = S.B;
name1 name2
Moudi Chromatic
(SELECT name
FROM Customer)
INTERSECT
(SELECT name
FROM Supplier);
name
Urs Frei
name
Franz Hohler
name postcode
Robert Michelin 75008
Urs Frei 8092
name
Urs Frei
max
3
name
Beat Meier
2 December 2005