Einführung in PROC SQL

Größe: px
Ab Seite anzeigen:

Download "Einführung in PROC SQL"

Transkript

1 Einführung in PROC SQL Einführung in PROC SQL Page Überblick Was ist SQL und PROC SQL? PROC SQL und SAS DATA Step Data Definition Language: Erstellen/Löschen von Tabellen/Views/Indizes (CREATE, DROP) : Struktur von SQL Abfragen (SELECT) Einfügen/Ändern/Löschen (INSERT, UPDATE, DELETE) Verknüpfen von Tabellen (JOIN) Geschachtelte Abfragen (Subqueries) Verknüpfen von Abfragen (Set Operatoren) Performanz und PROC SQL SAS und relationale Datenbanken (SAS/ACCESS Software) SAS-Treff am URZ Heidelberg

2 Einführung in PROC SQL Page Was ist SQL und PROC SQL? Structured Query Language (SQL): Standardisiert, weit verbreitet in relationalen Datenbanken (zb Oracle, MySQL, Access etc) Relationale Datenbank: Datenbank mit Tabellen und Relationen (EFCodd) Fourth-Generation Language ISO- und ANSI-Standard Datenbankhersteller mit eigenen SQL-Erweiterungen PROC SQL: SAS Implementierung von SQL Teil der SAS-Base Software SAS unterstützt viele Features des SQL Standards (SQL-9) Page PROC SQL und SAS DATA Step Terminologie SQL Term Tabelle Zeile Spalte Datenbank SAS Term SAS data file Beobachtung Variable Bibliothek Syntax proc sql <option(s)>; / anfang / create table ; / sql befehle/ select ; drop table ; / ende / SAS-Treff am URZ Heidelberg

3 Einführung in PROC SQL Page 5 PROC SQL und SAS DATA Step Kategorien von Befehlen in SQL Data Definition Language (DDL) Definition des Datenbankschemas (DML) Datenmanipulation Data Control Language (DCL) Rechteverwaltung Page 6 PROC SQL und SAS DATA Step Kategorien von Befehlen in SQL Data Definition Language (DDL) Definition des Datenbankschemas (DML) Datenmanipulation Data Control Language (DCL) Rechteverwaltung SAS-Treff am URZ Heidelberg

4 Einführung in PROC SQL Page 7 Beispieldatensätze Relation Page 8 Beispieldatensätze my_dbpatients ID SEX PRIMMD BIRTHDTE LASTNAME FIRSTNAME 97 0AUG98 Bauer Jürgen 97 7MAR95 Betz Stefan 989 0JUL98 Casper Martha 00 5MAY96 Hemmingw Greg 5 97 AUG97 Humboldt Karla my_dbadmits PT_ID ADMDATE DISDATE MD_ID HOSP_ID DEST BP_SYS BP_DIA PRIMDX 07FEB999 08FEB APR999 5APR SEP999 9SEP JUN998 JUN MAR998 5MAR SAS-Treff am URZ Heidelberg

5 Einführung in PROC SQL Page 9 Beispieldatensätze my_dbhospital HOSP_ID HOSPNAME TOWN NBEDS TYPE Big University Hospital NewMitfo 8 Our Lady of Charity NorthMit 65 Veteran s Administration WestMitf 76 Community Hospital Derbyvil 8 5 City Hospital NewMitfo 05 my_dbdoctors MD_ID LASTNAME Fitzhugh Fitzhugh Mac Arthur Mac Arthur Rosenberg HOSPADM Page 0 Data Definition Language Erstellen von Tabellen (CREATE) ) aus Spaltenbeschreibungen create table my_dbdoctors / leere tabelle erstellt / ( MD_ID num, LASTNAME char(8), HOSPADM num ); describe table my_dbdoctors; SAS-Treff am URZ Heidelberg 5

6 Einführung in PROC SQL Page Data Definition Language ) anlog einer existierenden Tabelle / leere tabelle erstellt / create table my_dbdoctors_kopie like my_dbdoctors; ) aus einer Abfrage create table my_dbdoctors_kopie as / tabelle mit inhalt / select from my_dbdoctors; Page Data Definition Language Erstellen von Views (CREATE) - eine View ist eine gespeicherte Abfrage - speichersparend - virtuelle Tabelle, die uu mehrere Tabellen zusammenführt - versteckt komplizierte Abfragen, oder auch Zeilen create view my_dbdiagnosis_view as select from my_dbadmits where primdx like '0%'; / primary diagnosis / select from my_dbdiagnosis_view; SAS-Treff am URZ Heidelberg 6

7 Einführung in PROC SQL Page Data Definition Language describe view my_dbdiagnosis_view; Im Log Fenster: NOTE: SQL view MY_DBDIAGNOSIS_VIEW is defined as: select from MY_DBADMITS where primdx like '0%'; Page Data Definition Language PROC SQL Tabellen und Views Input für weitere SAS Prozeduren Vermeiden von order by innerhalb einer View Daten werden bei jeder Referenzierung auf die View sortiert wenn eine View oft referenziert wird Tabelle erstellen wenn sich die Struktur von Tabellen ändert besser keine Views benutzen SAS-Treff am URZ Heidelberg 7

8 Einführung in PROC SQL Page 5 Data Definition Language Erstellen von Indizes (CREATE) - einfacher Index (simpler index) über eine einzige Spalte create index id / indexname = spaltenname! / on my_dbpatients(id); NOTE: Simple index id has been defined - zusammengesetzter Index (composite index) über mehrere Spalten create index name on my_dbpatients(lastname,firstname); NOTE: Composite index name has been defined Page 6 Data Definition Language SAS-Treff am URZ Heidelberg 8

9 Einführung in PROC SQL Page 7 Data Definition Language Index erstellen mit SAS ) mit PROC DATASETS proc datasets library = my_db; modify patients; index delete id; / index löschen / index create id; / simpler index / index create name = (lastname firstname); / composite index / run; ) mit DATA Set Option data my_dbpatients(index = (lastname)); set my_dbpatients; run; Page 8 Data Definition Language Löschen von Tabellen/Views/Indizes (DROP) drop table my_dbpatients; drop view diagnosis_view; drop index name on my_dbpatients; drop index id on my_dbpatients; SAS-Treff am URZ Heidelberg 9

10 Einführung in PROC SQL Page 9 Struktur von SQL Abfragen (SELECT) select from where group by 5 having 6 order by optional Page 0 - alle Spalten auswählen: select from my_dbpatients; proc sql outobs = 5; / nur 5 beobachtungen / select from my_dbpatients; SAS-Treff am URZ Heidelberg 0

11 Einführung in PROC SQL Page - Spalten auswählen: select firstname,lastname from my_dbpatients; / ausgabereihenfolge wie angegeben / select from my_dbdoctors(drop = HOSPADM); / DATA step option / Page - Duplikate eliminieren: select distinct / verschieden in ALLEN spalten / from my_dbpatients; oder mit SAS: proc sort data = my_dbpatients out = my_dbpatients_nodup noduplicates; by lastname; run; SAS-Treff am URZ Heidelberg

12 Einführung in PROC SQL Page - Duplikate eliminieren: select distinct lastname / verschieden in nur einer spalte / from my_dbpatients; LASTNAME Bauer Betz Casper Hemmingw Humboldt Kampinsk Lessing Mayer Page oder mit SAS: proc sort data = my_dbpatients out = my_dbpatients_nodup nodupkey; by lastname; run; zusätzliche Spalten Obs ID SEX PRIMMD BIRTHDTE LASTNAME FIRSTNAME 0 Jan965 Bauer Jürgen 97 OCT9 Betz Stefan 6 APR95 Casper Martha 80 MAY9 Hemmingw Greg DEC9 Humboldt Karla 6 00 JAN9 Kampinsk Igor FEB96 Lessing Katrin SAS-Treff am URZ Heidelberg

13 Einführung in PROC SQL Page 5 - Anlegen von neuen Spalten (CASE Anweisung): create table my_dbbp as select pt_id, bp_sys label = 'Blutdruck systolisch (mmhg)', bp_dia label = 'Blutdruck diastolisch (mmhg)', case when (bp_sys >= 0) and (bp_dia >= 90) then 'hoch' else 'normal' end as Blutdruck / weitere case anweisungen / from my_dbadmits; PT_ID Blutdruck systolisch (mmhg) Blutdruck diastolisch (mmhg) Blutdruck normal 0 0 Hoch Page 6 - Auswahl von Beobachtungen (WHERE): select from my_dbbp where blutdruck = 'hoch'; - einige Operatoren: SAS-Treff am URZ Heidelberg

14 Einführung in PROC SQL Page 7 - Duplikate ausgeben (GROUP BY, HAVING): create table my_dbdoctors_dup as select md_id, lastname, hospadm as hospital, count() as anzahl from my_dbdoctors group by md_id having count() >= MD_ID LASTNAME Avitable Avitable Fitzhugh Fitzhugh Hanratty Hanratty hospital anzahl order by lastname; 7 Hanratty Page 8 oder mit SAS: proc sort data = my_dbdoctors; by md_id; run; data my_dbdoctors_dup; set my_dbdoctors (rename = (hospadm=hospital)); by md_id; if not (firstmd_id and lastmd_id); run; proc sort data = my_dbdoctors_dup; by lastname; run; SAS-Treff am URZ Heidelberg

15 Einführung in PROC SQL Page 9 Einfügen von Beobachtungen (INSERT) ) mit values statement insert into my_dbdoctors values (, 'Harald', ) values (, 'Harald', ); Page 0 ) mit set statement insert into my_dbdoctors set md_id =, lastname = 'Harald', hospadm = set md_id =, lastname = 'Harald', hospadm = ; ) aus einer Abfrage: insert into my_dbdoctors_new select from my_dbdoctors; / werden angehangen / SAS-Treff am URZ Heidelberg 5

16 Einführung in PROC SQL Page Ändern von Beobachtungen (UPDATE) update my_dbhospital set nbeds = nbeds 0; / ALLE einträge geändert! / einschränken mit where Page Löschen von Beobachtungen (DELETE) delete from my_dbdoctors; / ALLE einträge gelöscht! / einschränken mit where delete from my_dbdoctors where md_id = ; SAS-Treff am URZ Heidelberg 6

17 Einführung in PROC SQL SAS-Treff am URZ Heidelberg 7 Page Verknüpfen von mehreren Tabellen (JOIN) - vergleichbar zu merge - Daten werden horizontal miteinander verknüpft 9 Z Y X Tabelle One B A Tabelle Two Bespieldaten: Page select from my_dbone, my_dbtwo; / keine where-bedingung angegeben / B A Z Y X x5 Einträge Kartesisches Produkt

18 Einführung in PROC SQL Page 5 Kartesisches Produkt: vollständige Kombination von Datensätzen miteinander sehr rechenintensiv Im SAS Log Fenster: select 978 from my_dbone, my_dbtwo; NOTE: The execution of this query involves performing one or more Cartesian product joins that can not be optimized 979 NOTE: PROCEDURE SQL used (Total process time): real time 00 seconds cpu time 000 seconds Page 6 (Fast) immer will man nur eine Untermenge des kartesischen Produktes Inner Join Right Join Left Join Full Join Outer Joins SAS-Treff am URZ Heidelberg 8

19 Einführung in PROC SQL Page 7 Inner Join - Schnittmenge select from my_dbone as a, my_dbtwo as b where ax = ba; oder select from my_dbone as a inner join my_dbtwo as b on ax = ba; X Y Z A B Page 8 oder mit SAS: proc sort data = my_dbone; by X; run; proc sort data = my_dbtwo; by A; run; data my_dbinner_join; merge my_dbone (in = one) my_dbtwo (in = two rename = (A = X)); by X; if one and two; run; SAS-Treff am URZ Heidelberg 9

20 Einführung in PROC SQL Page 9 Outer Joins Als Ergebnis wird eine Tabelle ausgegeben, die - alle gemeinsamen Beobachtungen enthält und - zusätzlich die restlichen Zeilen der linken (left join) bzw der rechten Tabelle (right join) Page 0 Left Join linke Tabelle ist Mastertabelle (dh alle Zeilen der linken Tabelle mit den entsprechenden Zeilen der rechten Tabelle) select from my_dbone as a left join my_dbtwo as b on ax = ba; X Y Z A B in linker und rechter Tabelle 9 nur in linker Tabelle SAS-Treff am URZ Heidelberg 0

21 Einführung in PROC SQL Page oder mit SAS: / left join / data my_dbleft_join; merge my_dbone (in = one) my_dbtwo (rename = (A = X)); by X; if one; run; Page Right Join rechte Tabelle ist Mastertabelle (dh alle Zeilen der rechten Tabelle mit den entsprechenden Zeilen der linken Tabelle) select from my_dbone as a right join my_dbtwo as b on ax = ba; X Y Z A B SAS-Treff am URZ Heidelberg

22 Einführung in PROC SQL Page oder mit SAS: / right join / data my_dbright_join; merge my_dbone my_dbtwo (in = two rename = (A = X)); by X; if two; run; Page Full Join Kombination aus left join und right join select from my_dbone as a full join my_dbtwo as b on ax = ba; X Y Z A B 5 6 aus rechter Tabelle aus linker Tabelle SAS-Treff am URZ Heidelberg

23 Einführung in PROC SQL Page 5 oder mit SAS: / full join / data my_dbfull_join; merge my_dbone my_dbtwo (rename = (A = X)); by X; run; Bemerkungen: - mit PROC SQL kein sortieren vorher notwenig - Variablen können unterschiedliche Namen haben (kein rename notwendig) Page 6 Geschachtelte Abfragen (Subqueries) Eine Tabelle in einem Join kann wiederum eine SQL Abfrage sein Beispiel: Wir wollen den Namen von jedem Patienten der eingeliefert wurde select id, lastname, firstname from my_dbpatients where id in (select distinct pt_id from my_dbadmits); diese Abfrage wäre auch mit einem inner join möglich SAS-Treff am URZ Heidelberg

24 Einführung in PROC SQL Page 7 Beispiel: Wir wollen zu jedem Patient alle Aufnahmen herausfinden, die von seinem Hausarzt durchgeführt wurden Dabei interessiert uns der Patientenname, Patientenid, Aufnahmedatum, Arztname Wir brauchen Informationen aus Tabellen: my_dbadmits, my_dbpatients, my_dbdoctors Page 8 my_dbadmits: Daraus bekommen wir alle Patienten, die eingeliefert wurden (nicht jeder der 5 Patienten wurde eingeliefert) und den Arzt, der eingeliefert hat PT_ID ADMDATE DISDATE MD_ID HOSP_ID DEST BP_SYS BP_DIA PRIMDX my_dbpatients: Daraus bekommen wir Patientennamen und ids und die Hausarztid ID SEX PRIMMD BIRTHDTE LASTNAME FIRSTNAME my_dbdoctors: Daraus bekommen wir die Arztid und den Arztnamen MD_ID LASTNAME HOSPADM SAS-Treff am URZ Heidelberg

25 Einführung in PROC SQL Page 9 create table my_dbadm_prim as select pt_id, admdate, patlastname as patname, docmd_id, doclastname as doclastname from my_dbadmits as adm inner join my_dbpatients as pat on (admpt_id = patid) and (admmd_id = patprimmd) inner join (select distinct md_id, lastname from my_dbdoctors) as doc on (admmd_id = docmd_id) order by admpt_id, admdate; Page 50 create table my_dbadm_prim as select pt_id, admdate, patlastname as patname, docmd_id, doclastname as doclastname from my_dbadmits as adm inner join my_dbpatients as pat on (admpt_id = patid) and (admmd_id = patprimmd) inner join (select distinct md_id, lastname from my_dbdoctors) as doc on (admmd_id = docmd_id) order by admpt_id, admdate; Erste Abfrage liefert nur Einträge für Patienten, die eingeliefert worden sind und der Einweisungsarzt der Hausarzt des Patienten ist SAS-Treff am URZ Heidelberg 5

26 Einführung in PROC SQL Page 5 create table my_dbadm_prim as select pt_id, admdate, patlastname as patname, docmd_id, doclastname as doclastname from my_dbadmits as adm inner join my_dbpatients as pat on (admpt_id = patid) and (admmd_id = patprimmd) inner join (select distinct md_id, lastname from my_dbdoctors) as doc on (admmd_id = docmd_id) order by admpt_id, admdate; Zweite Abfrage liefert nur unterschiedliche Einträge für jeden Arzt, der Einlieferungsarzt ist und gleichzeitig Hausarzt Page 5 PT_ID ADMDATE patname MD_ID doclastname APR999 Betz 97 Fitzhugh 5 0APR999 Lessing 97 Fitzhugh 5 0MAR999 Lessing 97 Fitzhugh 5 9JAN999 Lessing 97 Fitzhugh 7 08SEP996 Schreibe 7 Hanratty 7 8JUL996 Schreibe 7 Hanratty 0 0NOV998 Bauer MacArthu 5 7AUG997 Humboldt 00 Colanton 5 5MAY997 Humboldt 00 Colanton SAS-Treff am URZ Heidelberg 6

27 Einführung in PROC SQL Page 5 In SAS: data my_dbadm_prim (drop = primmd); merge my_dbadmits (in = adm keep = pt_id admdate md_id) my_dbpatients (in = pat keep = id lastname primmd rename = (id = pt_id)); by pt_id; if adm and pat and (md_id = primmd); run; proc sort data = my_dbdoctors; by md_id; run; data my_dbdoctors_nodup; set my_dbdoctors(keep = md_id lastname); by md_id; if firstmd_id; run; proc sort data = my_dbadm_prim; by md_id; run; data my_dbadm_prim; merge my_dbadm_prim (in = prim rename = (lastname = patname)) my_dbdoctors_nodup (rename = (lastname = docname)); by md_id; if prim; run; Page 5 Verknüpfung von mehreren Abfragen (Set Operatoren) - vergleichbar mit set - Daten werden vertikal miteinander verknüpft - grundsätzlich Verknüpfung nach Spaltenposition - zt kein direktes Gegenstück in SAS Bespieldaten: Tabelle One Tabelle Two Y 9 A A 5 B SAS-Treff am URZ Heidelberg 7

28 Einführung in PROC SQL Page 55 UNION EXCEPT INTERSECT OUTER UNION Modifikation durch: Spaltenreihenfolge uu wichtig ALL - Doppelte Zeilen werden nicht unterdrückt nicht mit OUTER UNION verwendbar, da hier bereits alle Zeilen ausgegeben werden CORRESPONDING (CORR) - Spalten mit gleichem Namen werden überlagert (gleiche Spaltennamen erkannt) Page 56 Union - Alle Zeilen aus Tabellen ausgegeben ohne doppelte Zeilen ( sonst ALL) - Verknüpfung der Spalten entsprechend der Position, dh Variablen gleichen Namens nicht erkannt ( sonst CORR) - resultierenden Spalten erhalten die Namen der ersten Tabelle select from my_dbone union select from my_dbtwo; A Y SAS-Treff am URZ Heidelberg 8

29 Einführung in PROC SQL Page 57 select from my_dbone union corr / verknüpfung über gl spaltennamen / select from my_dbtwo; A 5 7 select from my_dbone union all / doppelte Zeilen ausgeben / select from my_dbtwo; Y 9 A Page 58 Except - Ergebnisse aus one, jedoch nicht in two - für doppelte Zeilen ALL verwenden - Vergleich anhand gemeinsamer Variablen mit CORR select from my_dbone except select from my_dbtwo; Y 9 A SAS-Treff am URZ Heidelberg 9

30 Einführung in PROC SQL Page 59 Intersect nur Beobachtungen, die in beiden Dateien die gleichen Ausprägungen in den angegebenen Spalten haben select from my_dbone intersect select from my_dbtwo; Y A Page 60 Outer Union select from my_dbone outer union select from my_dbtwo; Y 9 A A B SAS-Treff am URZ Heidelberg 0

31 Einführung in PROC SQL Page 6 select from my_dbone outer union corr / gl spaltennamen erkannt / select from my_dbtwo; Y 9 A B Page 6 Performanz und PROC SQL Tipps für performante SQL Abfragen: - where Bedingung spezifizieren - eher join als eine subquery verwenden - auf order by in Views verzichten - Indexieren SAS-Treff am URZ Heidelberg

32 Einführung in PROC SQL Page 6 Performanz und PROC SQL Der Index - Ohne Index wird eine Tabelle sequentiell gelesen - ein Index ist eine geordnete Struktur (zb Baum) mit Verweis auf Einträge Ordnung verkürzt also die Suche nach einem bestimmten Datensatz - ein Index kann die Verknüpfung von Tabellen (joins) beschleunigen Sinnvoll einen Index zu erstellen: - bestimmte Spalten immer wieder in joins genutzt - Spaltenwerte viele untersch Werte besitzen (einzelne Datensätze gut diskriminieren) (zb patienten id geschlecht) - Teilmenge der gesamten Daten benötigt wird Page 6 Performanz und PROC SQL Beispiel: Indexstruktur - binärer Baum record identifier 00 lastname Betz firstname Stefan - zyklenfreie Graphstruktur - besteht aus Knoten verbunden durch gerichtete Kanten Polak Kampinski Mayer Edgar Igor Karl 005 Lessing Katrin 006 Casper Martha 007 Schreiber Tobias 008 Schwartkopf Walter 009 Naipaul Victor 00 Bauer Jürgen 0 Voltus Jean 0 Bauer Alberta 0 Shakes William 0 Hemmingway Greg 05 Humboldt Karla SAS-Treff am URZ Heidelberg

33 Einführung in PROC SQL Page 65 Performanz und PROC SQL Abfrage: select name, vorname from my_dbpatient where lastname = 'Humboldt' and firstname = 'Karla'; Ohne Index sequentielle Suche in der ungeordneten Tabelle 5 Schritte zum Finden Index über die Spalten Name und Vorname binärer Baum wird angelegt Page 66 Shakes William, 0 Voltus Jean, 0 Schwartzkopf Walter, 008 Schreiber Tobias, 007 Polak Edgar, 00 Naipaul Victor, 009 Mayer Karl, 00 Lessing Katrin, 005 Kampinski Iger, 00 Humboldt Karla, 05 Hemmingway Greg, 0 Casper Martha, 006 Betz Stefan, 00 Bauer Jürgen, 00 Bauer Alberta, 0 SAS-Treff am URZ Heidelberg

34 Einführung in PROC SQL Page 67 Shakes William, 0 Voltus Jean, 0 Schwartzkopf Walter, 008 Schreiber Tobias, 007 Polak Edgar, 00 Naipaul Victor, 009 Mayer Karl, 00 Lessing Katrin, 005 Kampinski Iger, 00 Humboldt Karla, 05 Hemmingway Greg, 0 Casper Martha, 006 Betz Stefan, 00 Bauer Jürgen, 00 Bauer Alberta, 0 Page 68 Shakes William, 0 Voltus Jean, 0 Schwartzkopf Walter, 008 Schreiber Tobias, 007 Polak Edgar, 00 Naipaul Victor, 009 Mayer Karl, 00 Lessing Katrin, 005 Kampinski Iger, 00 Humboldt Karla, 05 Hemmingway Greg, 0 Casper Martha, 006 Betz Stefan, 00 Bauer Jürgen, 00 Bauer Alberta, 0 SAS-Treff am URZ Heidelberg

35 Einführung in PROC SQL Page 69 Shakes William, 0 Voltus Jean, 0 Schwartzkopf Walter, 008 Schreiber Tobias, 007 Polak Edgar, 00 Naipaul Victor, 009 Mayer Karl, 00 Lessing Katrin, 005 Kampinski Iger, 00 Humboldt Karla, 05 Hemmingway Greg, 0 Casper Martha, 006 Betz Stefan, 00 Bauer Jürgen, 00 Bauer Alberta, 0 Schritte zum Finden der internen Adresse und Schritt zum Nachschauen des Datensatzes in der Tabelle Page 70 Performanz und PROC SQL Manche Knoten sind durch das Umorganisieren schlechter als vorher platziert (zb Betz Stefan ) Im Durchschnitt verringert sich aber die Anzahl der Vergleiche Blattknoten möglichst die gleiche Distanz zum Wurzelknoten balancierter Baum nach Hinzufügen/Löschen Baum wieder ausbalancieren B-Bäume in DB (balancierte Bäume weniger Zugriffe) zusätzlicher Speicherverbrauch für einen Index jedoch werden die meisten Datenbanken viel häufiger gelesen als geschrieben Indexierte Daten müssen vor einer by Verarbeitung nicht mehr sortiert werden Indizes werden beim nachfolgenden sortieren ungültig (force Option setzen) proc sort data = my_dbtwo force; by A; run; SAS-Treff am URZ Heidelberg 5

36 Einführung in PROC SQL Page 7 Performanz und PROC SQL Beispiel: select id, sex, couple_id from spousescouples_0 where id not in (select id from spousesall); Ohne Index: NOTE: PROCEDURE SQL used (Total process time): real time 6:95 cpu time 5:06 Mit Index (id): 76 create index id 77 on spousescouples_0(id); real time :5975 cpu time 9 seconds create index id 80 on spousesall; real time 5:88 cpu time 09 seconds NOTE: SQL Statement used (Total process time): real time :08 cpu time 5 seconds Page 7 SAS und relationale Datenbanken SAS/ACCESS Software: Schnittstelle zwischen SAS SW und einem anderen DB Management System Zugriffsmöglichkeiten: libname Anweisung - einer Datenbank eine SAS library zuweisen - Zugriff auf DB mit DATA Step Programmierung - Optimierung von joins und anderen Funktionen (Indizes der Datenbank genutzt) libname my_lib mysql user = testuser password = testpass database = mysqldb server = mysqlserv port = 9876; proc print data = my_libemployees; where dept = 'CSR00';run; PROC SQL Pass-Through Facility - SQL Erweiterungen der jeweiligen DB können genutzt werden - Optimierung von joins und anderen Funktionen (Indizes der Datenbank genutzt) connect to mysql (user = ); select from connection to mysql (select from customers); disconnect from mysql; SAS-Treff am URZ Heidelberg 6

37 Einführung in PROC SQL Page 7 Zusammenfassung Nicht behandelt: - Aggregierungsfunktionen - Makrovariablen und SQL Fazit: - Kompaktere Anweisungen mit PROC SQL - Set Operatoren kein direktes Gegenstück für UNION, EXCEPT, INTERSECT in SAS - Keine statistischen Auswertungen mit PROC SQL - SQL ist DER Standard für relationale Datenbanksysteme Page 7 Literaturliste DATA Step vs PROC SQL: What s a neophyte to do? Craig Dickstein, (Paper 6-6) An Introduction to PROC SQL, Rosalind K Gusinow and J Michael Miscisin (Handson Workshops) SAS Institute Inc, 00 SAS/ACCESS 9 Supplement for MySQL SAS Institute Inc, 00 SAS9 SQL Procedure User s Guide PROC SQL for DATA Step Die-Hards, Williams, CS (manche Beispiele) Creating and Exploiting SAS Indexes Michael A Raithel (Paper -9) Proceedings of the th Annual NorthEast SAS Users Group Conference, Washington, DC, 999 Undocumented and Hard-to-find SQL Features Kirk Paul Lafler (Paper 9-8) Frequently Asked Questions about SAS Indexes (Paper 008-0) An Introduction to SQL in SAS Pete Lund (Paper 57-0) SQL SET OPERATORS: SO HANDY VENN YOU NEED THEM, Howard Schreier (PAPER -) Top Ten Reasons to Use PROC SQL Weiming Hu (Paper 0-9) SAS-Treff am URZ Heidelberg 7

38 Einführung in PROC SQL Page 75 Einführung in PROC SQL Vielen Dank für die Aufmerksamkeit! Bei weiteren Fragen: SAS-Treff am URZ Heidelberg 8

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Der SAS DataStep und die Prozedur SQL. 2014 Cellent Finance Solutions GmbH 05.06.2014 Seite: 1

Der SAS DataStep und die Prozedur SQL. 2014 Cellent Finance Solutions GmbH 05.06.2014 Seite: 1 Der SAS DataStep und die Prozedur SQL 2014 Cellent Finance Solutions GmbH 05.06.2014 Seite: 1 Zahlen und Fakten auf einen Blick Firmensitz: Geschäftsstellen: Branchenerfahrung: Umsatz: Anzahl Mitarbeiter:

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten

Mehr

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

Labor 3 - Datenbank mit MySQL

Labor 3 - Datenbank mit MySQL Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.

Mehr

Übersicht der wichtigsten MySQL-Befehle

Übersicht der wichtigsten MySQL-Befehle Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit

Mehr

MySQL Installation. AnPr

MySQL Installation. AnPr Name Klasse Datum 1 Allgemeiner Aufbau Relationale Datenbank Management Systeme (RDBMS) werden im Regelfall als Service installiert. Der Zugriff kann über mehrere Kanäle durchgeführt werden, wobei im Regelfall

Mehr

MySQL 101 Wie man einen MySQL-Server am besten absichert

MySQL 101 Wie man einen MySQL-Server am besten absichert MySQL 101 Wie man einen MySQL-Server am besten absichert Simon Bailey simon.bailey@uibk.ac.at Version 1.1 23. Februar 2003 Change History 21. Jänner 2003: Version 1.0 23. Februar 2002: Version 1.1 Diverse

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

105.3 SQL-Datenverwaltung

105.3 SQL-Datenverwaltung LPI-Zertifizierung 105.3 SQL-Datenverwaltung Copyright ( ) 2009 by Dr. W. Kicherer. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

Arbeiten mit einem lokalen PostgreSQL-Server

Arbeiten mit einem lokalen PostgreSQL-Server Arbeiten mit einem lokalen PostgreSQL-Server Download für das Betriebssystem Windows PostgreSQL-Server und pgadmin: http://www.enterprisedb.com/products-servicestraining/pgdownload#windows pgadmin: http://www.pgadmin.org/download/windows.php

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

SQL. Fortgeschrittene Konzepte Auszug

SQL. Fortgeschrittene Konzepte Auszug SQL Fortgeschrittene Konzepte Auszug Levels SQL92 Unterteilung in 3 Levels Entry Level (i.w. SQL89) wird von nahezu allen DBS Herstellern unterstützt Intermediate Level Full Level SQL DML 2-2 SQL92 behebt

Mehr

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung Informa=onssysteme Sommersemester 2015 6. Sichten, Integrität und Zugriffskontrolle Vorlesung "Informa=onssysteme" Sommersemester 2015 Überblick Sichten Integritätsbedingungen Zugriffsrechte SQL- Schema und SQL- Katalog Das Informa=onsschema

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198 Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen

Mehr

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 7 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws1314/dbsys/exercises/

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL XAMPP-Systeme Teil 3: My SQL Daten Eine Wesenseigenschaft von Menschen ist es, Informationen, in welcher Form sie auch immer auftreten, zu ordnen, zu klassifizieren und in strukturierter Form abzulegen.

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

SEMINAR Modifikation für die Nutzung des Community Builders

SEMINAR Modifikation für die Nutzung des Community Builders 20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen

Mehr

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 22. April 2013 - MySQL Sebastian Cuy sebastian.cuy@uni-koeln.de Datenbanken Was sind eigentlich Datenbanken? Eine

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Informationen aus der Datenbank lesen Klasse SQLiteDatabase enthält die Methode query(..) 1. Parameter: Tabellenname

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert. Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

Mehr

MySQL: Einfaches Rechnen. www.informatikzentrale.de

MySQL: Einfaches Rechnen. www.informatikzentrale.de MySQL: Einfaches Rechnen Vorweg: Der Merksatz Warum geht Herbert oft laufen? Vorweg: Der Merksatz Warum geht Herbert oft laufen?...... WHERE... GROUP BY... HAVING... ORDER BY... LIMIT Beispieldatenbank

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Fachhochschule Deggendorf Platzziffer:...

Fachhochschule Deggendorf Platzziffer:... Sommersemester 2008 Zahl der Blätter: 9 Fachbereich: Betriebswirtschaft WI Bachelor Hilfsmittel: alles ohne Computer Zeit: 90 Minuten 1 Betrachten Sie die drei markierten Zeilen. 1. Angenommen Sie hätten

Mehr

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

IBM Informix SQL. Seminarunterlage. Version 11.04 vom

IBM Informix SQL. Seminarunterlage. Version 11.04 vom Seminarunterlage Version: 11.04 Version 11.04 vom 27. April 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Übersicht über Datenbanken

Übersicht über Datenbanken Übersicht über Datenbanken Vergleich zwischen normaler Datenorganisation und Datenbanken Definition einer Datenbank Beispiel (inkl. Zugriff) Der Datenbankadministrator Relationale Datenbanken Transaktionen

Mehr

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL Betreuer: Sascha Kriewel, Tobias Tuttas Raum: LF 230 Bearbeitung: 26., 27. und 29. Juni 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material unter: http://www.is.inf.uni-due.de/courses/dbp_ss07/index.html

Mehr

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

SQL Performance - Tips Do's & Don'ts

SQL Performance - Tips Do's & Don'ts SQL Performance - Tips Do's & Don'ts S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis I. Richtlinien bei der Verwendung von SQL 1.1. In Programmen "verbotene" SQL- Anweisungen 1.2 SQL

Mehr

Oracle SQL Tutorium - Wiederholung DB I -

Oracle SQL Tutorium - Wiederholung DB I - Oracle SQL Tutorium - Wiederholung DB I - (Version 2.6 vom 24.2.2015) Einleitung Im Folgenden sind zur Wiederholung eine Reihe von SQL-Übungsaufgaben zu lösen. Grundlage für die Aufgaben ist die Mondial

Mehr

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: 24.11.2014. Übung WS 2014/2015

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: 24.11.2014. Übung WS 2014/2015 Übung WS 2014/2015 E-Commerce: IT-Werkzeuge Web-Programmierung Kapitel 6: Datenbankabfragen mit SQL und PHP Stand: 24.11.2014 Benedikt Schumm M.Sc. Lehrstuhl für ABWL und Wirtschaftsinformatik Katholische

Mehr

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5. Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.1 im Internet: www.datenbanken-programmierung.de... 3.0 SQL nach

Mehr

Erstellen einer Datenbank. Datenbankabfragen

Erstellen einer Datenbank. Datenbankabfragen Erstellen einer Datenbank Datenbankabfragen Überblick Die fünf Stationen Semantisches Modell Logisches Modell Prüfung auf Redundanz Abfragen Softwaremäßige Implementierung Zur Erinnerung: Semantisches

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger

Mehr

Beispiel 1: Filmdatenbank

Beispiel 1: Filmdatenbank Beispiel 1: Filmdatenbank Die Filmdatenbank hat drei Tabellen (ACTOR, MOVIE, PLAYED) Aufgabe 1: Erstelle mit Hilfe der SQL-DDL die drei Tabellen und die Datenbank (MOVIEDB) ACTOR (ActorID, Name, Birthday,

Mehr

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY. SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von

Mehr

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011 Übung zur Vorlesung Multimedia im Netz Ludwig-Maximilians-Universität Wintersemester 2010/2011 Ludwig-Maximilians-Universität München Multimedia im Netz - Übung - 2-1 Übungsblatt - 2 Thema: HTML, PHP und

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

Praktische SQL-Befehle

Praktische SQL-Befehle Praktische SQL-Befehle Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Nested Selects Inserts Updates Views Triggers Constraints Functions Voraussetzung: Laptop + MySQL/

Mehr

SQL-Injection. Seite 1 / 16

SQL-Injection. Seite 1 / 16 SQL-Injection Seite 1 / 16 Allgemein: SQL (Structured Query Language) Datenbanksprache zur Definition von Datenstrukturen in Datenbanken Bearbeiten und Abfragen von Datensätzen Definition: SQL-Injection

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel ORM & OLAP Object-oriented Enterprise Application Programming Model for In-Memory Databases Sebastian Oergel Probleme 2 Datenbanken sind elementar für Business-Anwendungen Gängiges Datenbankparadigma:

Mehr

Abfragen (Queries, Subqueries)

Abfragen (Queries, Subqueries) Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung Betrifft Optimizer Autor Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Quelle Aus unserer Projekterfahrung und Forschung Einführung Mit jedem Oracle Release nimmt die Anzahl

Mehr

SQL und MySQL. Kristian Köhntopp

SQL und MySQL. Kristian Köhntopp SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)

Mehr

Hinweise zur Installation von MySQL

Hinweise zur Installation von MySQL Hinweise zur Installation von MySQL Im Folgenden werden einige Hinweise gegeben, die die Einrichtung einer MySQL-Lernumgebung am eigenen Windows-Rechner erleichtern sollen. Der Text ist vor allem für diejenigen

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Fahren fort mit SQL Befehlen. Bilden Relationenalgebra auf SQL ab. So Umsetzung von Anfragen an die DB (bzw. Tabellen) möglich. SELECT

Mehr

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 6. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 Aufgabe 1: Rekursion Betrachten Sie die folgende Tabelle

Mehr

3 Richtlinienbasierte Verwaltung und Multi-Server- Administration

3 Richtlinienbasierte Verwaltung und Multi-Server- Administration Richtlinienbasierte Verwaltung und Multi-Server-Administration 3 Richtlinienbasierte Verwaltung und Multi-Server- Administration SQL Server Management Studio bietet eine Reihe von Unterstützungsmöglichkeiten,

Mehr

Ein Ausflug zu ACCESS

Ein Ausflug zu ACCESS Ein Ausflug zu ACCESS Die folgenden Folien zeigen beispielhaft, wie man sein DB- Wissen auf ACCESS übertragen kann betrachtet wird ACCESS 2002, da gerade im Bereich der Nutzung von SQL hier einiges nachgearbeitet

Mehr

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein. Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen

Mehr

Laufzeitoptimierung bei der Verknüpfung großer Datenmengen Ein Vergleich zwischen MERGE und JOIN

Laufzeitoptimierung bei der Verknüpfung großer Datenmengen Ein Vergleich zwischen MERGE und JOIN Poster Laufzeitoptimierung bei der Verknüpfung großer Datenmengen Ein Vergleich zwischen MERGE und JOIN Cerstin Erler Institut für Arbeitsmarkt- und Berufsforschung der Bundesagentur für Arbeit (IAB) Regensburger

Mehr

MIN oder MAX Bildung per B*Tree Index Hint

MIN oder MAX Bildung per B*Tree Index Hint E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich

Mehr

Kurzanleitung für Umsteiger von DataEase. www.datacool.net

Kurzanleitung für Umsteiger von DataEase. www.datacool.net DataCool Kurzanleitung für Umsteiger von DataEase www.datacool.net Copyright 2009 Ingenieurbüro Neuhahn GmbH Tengstr. 3 85055 Ingolstadt DataCool ist ein eingetragenes Warenzeichen (Registernummer 30239297)

Mehr

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

Mehr