PTA_SQL_Schulung

Werbung
Beratung
Organisation
Softwareentwicklung
Einführung
EinführungininSQL
SQL(Structured
(Structured
Query
QueryLanguage)
Language)
seit 1969
Einführung in SQL
Gliederung
Gliederung
• Übersicht
• Data Definition Language (DDL)
–
–
–
–
–
TABLE
VIEW
SEQUENCE
SYNONYM
INDEX
• Data Manipulation Language (DML)
–
–
–
–
–
INSERT
UPDATE
DELETE
SELECT
COMMIT / ROLLBACK
12.02.2007
PTA GmbH, Unternehmensberatung
2
Einführung in SQL
Übersicht
Übersicht
• SQL (Structured Query Language) ist die Standard-DatenbankZugriffssprache.
• Man unterscheidet zwischen:
– DDL (Data Definition Language), d.h. Sprachkonstrukten, um Daten zu
definieren.
– DML (Data Manipulation Language), d.h. Sprachkonstrukten, um Daten
in die Datenbank einzufügen, zu ändern, zu löschen oder aus der
Datenbank abzurufen.
• Syntax und Beispiele orientieren sich an Oracle Version 7.
• Nur die wichtigsten Elemente der Syntax werden beschrieben.
12.02.2007
PTA GmbH, Unternehmensberatung
3
Einführung in SQL
Gliederung
Gliederung
• Übersicht
• Data Definition Language (DDL)
–
–
–
–
–
TABLE
VIEW
SEQUENCE
SYNONYM
INDEX
• Data Manipulation Language (DML)
–
–
–
–
–
INSERT
UPDATE
DELETE
SELECT
COMMIT / ROLLBACK
12.02.2007
PTA GmbH, Unternehmensberatung
4
Einführung in SQL
Gliederung
Gliederung
• Übersicht
• Data Definition Language (DDL)
• Data Manipulation Language (DML)
• Transaktionssteuerung
12.02.2007
PTA GmbH, Unternehmensberatung
5
Einführung in SQL
DDL
DDL
• Mit DDL-Statements können Schema-Objekte in der Datenbank
verwaltet (angelegt, geändert, gelöscht ) werden.
• Schemata sind logische Bereiche in der Datenbank, die in der
Regel einem Benutzer zugeordnet sind.
• Die Objekte, die ein Benutzer erzeugt wie Tabellen, Indizes, Views
usw. liegen im Schema dieses Benutzers.
12.02.2007
PTA GmbH, Unternehmensberatung
6
Einführung in SQL
DDL
DDL-- Beispiel
Beispielfür
für Schema
Schemaund
undSchema-Objekte
Schema-Objekte
User/Schema
Schema-Objekte
ObjektTyp
scott
scott.emp
scott.dept
scott.order
scott.orderView
scott.order.Seq
table
12.02.2007
PTA GmbH, Unternehmensberatung
view
sequence
7
Einführung in SQL
DDL
DDL-- Schema-Objekttypen
Schema-Objekttypen
Schema-Objekt
Beschreibung
TABLE
Eine Tabelle speichert Daten in Zeilen und Spalten.
VIEW
Eine View ist eine virtuelle Tabelle: sie zeigt Daten aus einer
oder mehreren Tabelle(n) oder View(s) basierend auf einer
Abfrage.
SEQUENCE
Eine Sequence ist ein Generator zum Erzeugen von eindeutigen
Nummern.
SYNONYM
Ein Synonym ist ein weiterer Name für ein Schema-Objekt.
INDEX
Indizes sind Strukturen, die Tabellen (und Clustern) zugewiesen
werden können, um SQL-Zugriffe zu beschleunigen.
CLUSTER
Cluster bieten die Möglichkeit, zusammengehörige Daten mehrerer
Tabellen physikalisch zusammenhängend zu speichern.
12.02.2007
PTA GmbH, Unternehmensberatung
8
Einführung in SQL
DDL
DDL-- CREATE
CREATETABLE
TABLE(Tabelle
(Tabelleanlegen)
anlegen)
• Syntax:
CREATE TABLE
[ <schema_name>.]<table_name>
( <column_name>
<datatype>[( <size> ) ]
[ <column_constraint> ], ... )
[<table_constraint> ] ...
[ PCTFREE <percent free space for updates per block>]
[ PCTUSED <percent space used for inserts per block> ]
[ INITTRANS <initial transaction entries per block> ]
[ MAXTRANS <maximal transaction entries per block ]
[ TABLESPACE <tablespace_name> ]
[ CLUSTER <cluster_name> (<key_column>, ..) ]
[ STORAGE <storage clause > ];
12.02.2007
PTA GmbH, Unternehmensberatung
9
Einführung in SQL
DDL
DDL-- CONSTRAINT
CONSTRAINT(Regeln)
(Regeln)
• Syntax:
<table_constraint> :=
CONSTRAINT <constraint_name>
UNIQUE (<column_name>, ...)
PRIMARY KEY (<column_name>, ...)
FOREIGN KEY (<column_name>,...)
REFERENCES <table_name>[(<column_name> [,..])]
USING INDEX
[ PCTFREE <percent free space per block> ]
[ PCTUSED <percent space used for inserts per block> ]
[ INITTRANS <initial transaction entries per block> ]
[ MAXTRANS <maximal transaction entries per block ]
[ TABLESPACE <tablespace_name> ]
[ STORAGE <storage clause > ];
12.02.2007
PTA GmbH, Unternehmensberatung
10
Einführung in SQL
DDL
DDL-- STORAGE
STORAGE(Speicherdefinition)
(Speicherdefinition)
• Syntax:
<storage clause>
STORAGE ( INITIAL <size> K | M
NEXT <size> K | M
MINEXTENTS <size>
MAXEXTENTS <size> | UNLIMITED
PCTINCREASE <size> )
12.02.2007
PTA GmbH, Unternehmensberatung
11
Einführung in SQL
DDL
DDL-- Beispiele
BeispieleCREATE
CREATETABLE
TABLE
create table AUTOR (
ID
integer not null,
NAME
varchar2(40)
);
create table LITERATUR (
ID
integer not null,
TITEL
varchar2(40),
AUTOR
integer,
LITERATURTYP
integer,
ORT
varchar2(20),
JAHR
integer,
ZEITSCHRIFT
varchar2(40),
JAHRGANG
varchar2(20),
BAND
integer,
VONSEITE
integer,
BISSEITE
integer
);
12.02.2007
PTA GmbH, Unternehmensberatung
12
Einführung in SQL
DDL
DDL-- ALTER
ALTERTABLE
TABLE (Tabelle
(Tabelleändern)
ändern)
• Syntax:
ALTER TABLE [ <schema_name>.]<table_name>
Spalte hinzufügen
ADD
( <column_name> <datatype>[( <size> ) ]
[ <column_constraint> ], ... )
(<table_constraint> ... ) /
Spalte ändern
MODIFY (<column_name> <datatype>[( <size> ) ]
[ <column_constraint> ], ... )
Spalte löschen
| CONSTRAINT <constraint_name> ]
/
DROP [ PRIMARY | UNIQUE ( <column> , ... )
| CONSTRAINT <constraint_name> ]
[
[
[
[
[
PCTFREE <percent free space for updates per block> ]
PCTUSED <percent space used for inserts per block> ]
INITTRANS <initial transaction entries per block> ]
MAXTRANS <maximal transaction entries per block ]
STORAGE <storage clause> ];
12.02.2007
PTA GmbH, Unternehmensberatung
13
Einführung in SQL
DDL
DDL-- Beispiele
BeispieleALTER
ALTERTABLE
TABLE
alter table Autor
add constraint Autor_pk
primary key (id)
using index tablespace ts4idx;
alter table Literatur
add constraint Literat_pk
primary key (id)
using index tablespace ts4idx
add constraint Autor_fk
foreign key (autor) references Autor(id);
12.02.2007
PTA GmbH, Unternehmensberatung
14
Einführung in SQL
DDL
DDL-- DROP
DROPTABLE
TABLE(Tabelle
(Tabellelöschen)
löschen)
• Syntax:
DROP TABLE [ <schema_name>.]<table_name> CASCADE CONSTRAINTS;
• Beispiel:
drop table autor cascade constraints;
12.02.2007
PTA GmbH, Unternehmensberatung
15
Einführung in SQL
DDL
DDL-- CREATE/DROP
CREATE/DROPVIEW
VIEW(Sichten
(Sichtenauf
aufTabellen
Tabellen))
• Syntax für das Anlegen/Ändern:
CREATE
[ OR REPLACE ]
[ FORCE | NO FORCE ]
VIEW [ <schema_name>.]<view_name>
( <column_alias >, ..... )
AS
<subquery>
[ WITH READ ONLY | CHECK OPTION
[ CONSTRAINT <constraint_name> ] ];
• Syntax für das Löschen:
DROP VIEW
12.02.2007
[ <schema_name>.]<view_name>;
PTA GmbH, Unternehmensberatung
16
Einführung in SQL
DDL
DDL-- Beispiel
BeispielView
View
drop view AutorLiteraturView1;
create or replace view AutorLiteraturView1
(Autor, Titel, Typ, Ort, Jahr)
as
select a.name, b.titel, c.beschreibung, b.ort, b.jahr
from
Autor a, Literatur b, Literaturtyp c
where
a.id = b.autor
and
b.literaturtyp = c.id;
12.02.2007
PTA GmbH, Unternehmensberatung
17
Einführung in SQL
DDL
DDL-- CREATE/DROP
CREATE/DROPSEQUENCE
SEQUENCE(Zähler)
(Zähler)
• Syntax für das Anlegen/Ändern einer Zählnummer:
CREATE | ALTER SEQUENCE [<schema_name>.]<sequence_name>
INCRMENT BY <integer>
START WITH <integer>
MAXVALUE <integer>
MINVALUE <integer>
CYCLE | NOCYCLE
CACHE | NOCACHE;
• Syntax für das Löschen einer Zählnummer:
DROP SEQUENCE
12.02.2007
[<schema_name>.]<sequence_name>;
PTA GmbH, Unternehmensberatung
18
Einführung in SQL
DDL
DDL-- Beispiel
BeispielSEQUENCE
SEQUENCE
drop sequence LiteratSeq;
create sequence LiteratSeq
increment by 1
maxvalue 999999
minvalue 1
cycle
cache 100;
12.02.2007
PTA GmbH, Unternehmensberatung
19
Einführung in SQL
DDL
DDL-- CREATE/DROP
CREATE/DROPSYNONYM
SYNONYM (Synonym)
(Synonym)
• Syntax für das Anlegen eines Synonyms:
CREATE [ PUBLIC] SYNONYM [<schema_name>.]<synonym_name>
FOR <schema_name>.]<object_name>;
• Syntax für das Löschen eines Synonyms:
DROP SYNONYM [<schema_name>.]<synonym_name>;
12.02.2007
PTA GmbH, Unternehmensberatung
20
Einführung in SQL
DDL
DDL-- Beispiel
BeispielSYNONYM
SYNONYM
drop synonym literatur;
create public synonym literatur
for lit.literatur;
12.02.2007
PTA GmbH, Unternehmensberatung
21
Einführung in SQL
DDL
DDL-- CREATE
CREATEINDEX
INDEX(Tabellenindex
(Tabellenindexanlegen)
anlegen)
• Syntax für das Anlegen eines Tabellenindex:
CREATE INDEX
ON
[
[
[
[
[<schema_name>.]<index_name>
[<schema_name>.]<table_name> ( <column_name>,...)
PCTFREE <percent free space per block> ]
INITTRANS <initial transaction entries per block> ]
MAXTRANS <maximal transaction entries per block ]
TAB
LESPACE <tablespace_name> ]
[ STORAGE <storage clause > ];
12.02.2007
PTA GmbH, Unternehmensberatung
22
Einführung in SQL
DDL
DDL-- Beispiel
BeispielCREATE
CREATEINDEX
INDEX
create index literat_ort_idx
on literat(ort)
tablespace ts4idx;
12.02.2007
PTA GmbH, Unternehmensberatung
23
Einführung in SQL
DDL
DDL-- ALTER/DROP
ALTER/DROPINDEX
INDEX
• Syntax für das Ändern eines Tabellenindex:
ALTER INDEX
[<schema_name>.]<index_name>
[ INITTRANS <initial transaction entries per block> ]
[ MAXTRANS <maximal transaction entries per block ]
[ STORAGE <storage clause > ];
• Syntax für das Löschen eines Tabellenindex:
DROP INDEX
12.02.2007
[<schema_name>.]<index_name>;
PTA GmbH, Unternehmensberatung
24
Einführung in SQL
Gliederung
Gliederung
• Übersicht
• Data Definition Language (DDL)
–
–
–
–
–
TABLE
VIEW
SEQUENCE
SYNONYM
INDEX
• Data Manipulation Language (DML)
–
–
–
–
–
INSERT
UPDATE
DELETE
SELECT
COMMIT / ROLLBACK
12.02.2007
PTA GmbH, Unternehmensberatung
25
Einführung in SQL
DML
DML--INSERT
INSERT(Tabellenzeilen
(Tabellenzeileneinfügen)
einfügen)
• Syntax - Version 1:
INSERT INTO [<schema_name>.]<table_name> | <view_name>
(<column_name1>, ...)
VALUES ( <value1>, ...);
• Syntax - Version 2:
INSERT INTO [<schema_name>.]<table_name> | <view_name>
(<column_name1>, ...)
<subquery>;
12.02.2007
PTA GmbH, Unternehmensberatung
26
Einführung in SQL
DML
DML--Beispiel
BeispielINSERT
INSERT
insert into topic (id, description)
values ( 1, ‘Relational Theory’);
insert into work_table (id, description)
select id, description from topic;
12.02.2007
PTA GmbH, Unternehmensberatung
27
Einführung in SQL
DML
DML--UPDATE
UPDATE(Tabellenzeile
(Tabellenzeileändern)
ändern)
• Syntax - Version 1:
UPDATE [<schema_name>.]<table_name> | <view_name>
SET <column1> = <value>, <column2> = <value>, ...
[WHERE <condition> ];
• Syntax - Version 2:
UPDATE [<schema_name>.]<table_name> | <view_name>
SET <column1> = <subquery>
[WHERE <condition> ];
12.02.2007
PTA GmbH, Unternehmensberatung
28
Einführung in SQL
DML
DML--Beispiel
BeispielUPDATE
UPDATE
update topic
set description = ‘Relational Theory’
where id = 1;
update work_table a
set description =
(select description from topic b where a.id = b.id);
12.02.2007
PTA GmbH, Unternehmensberatung
29
Einführung in SQL
DML
DML--DELETE
DELETE(Tabellenzeile
(Tabellenzeilelöschen)
löschen)
• Syntax:
DELETE FROM [<schema_name>.]<table_name> | <view_name>
[WHERE <condition> ];
• Beispiele:
delete from work_table;
delete from work_table
where description like ‘Relational%’;
12.02.2007
PTA GmbH, Unternehmensberatung
30
Einführung in SQL
DML
DML--SELECT
SELECT(Tabellenzeile
(Tabellenzeileauswählen)
auswählen)
• Syntax:
SELECT [DISTINCT | ALL ] * | <column_name1>, <column_name2>, ...
FROM [<schema_name>.]<table_name> | <view_name>
[WHERE <condition> ]
[ORDER BY <column_name1>, ...];
12.02.2007
PTA GmbH, Unternehmensberatung
31
Einführung in SQL
DML
DML--Beispiele
BeispieleSELECT
SELECT
select * from topic;
select name from lit.autor
where id = 3;
select a.name, b.titel
from autor a, literatur b
where a.id = b.autor
order by a.name;
12.02.2007
PTA GmbH, Unternehmensberatung
32
Einführung in SQL
DML
DML--Transaktionssteuerung
Transaktionssteuerung
• Transaktionen sind atomare, d.h. nicht teilbare logische Arbeitseinheiten; d.h. alle Anweisungen einer Transaktion werden ausgeführt oder nicht ausgeführt.
• Transaktionen werden gestartet, sobald das erste datenverändernde SQL-Statement abgesetzt wird.
• Alle SQL-Statements bis zum COMMIT oder ROLLBACK gehören
zu dieser Transaktion.
12.02.2007
PTA GmbH, Unternehmensberatung
33
Einführung in SQL
DML
DML--Transaktionssteuerung
Transaktionssteuerung
• Eine Transaktion wird mit COMMIT abgeschlossen oder mit
ROLLBACK zurückgerollt:
– Mit COMMIT werden alle Änderungen seit Beginn der Transaktion
festgeschrieben.
– Mit ROLLBACK werden alle Änderungen seit Beginn der Transaktion
wieder rückgängig gemacht.
12.02.2007
PTA GmbH, Unternehmensberatung
34
Herunterladen