Inhaltsverzeichnis 1. 2. ERD .................................................................................................................................................. 3 1.1.1. ERD Beispiel: .................................................................................................................... 3 1.1.2. 2) Bestimme Beziehungen ............................................................................................... 3 1.1.3. 3) ERD Zeichnen............................................................................................................... 3 DBMS=Datenbank Management System ........................................................................................ 4 2.1. SQL (Structed Query Language)............................................................................................... 4 2.1.1. DDL (Data Definition Language) ...................................................................................... 4 2.1.2. DML (Data Manipulation Language) ............................................................................... 4 2.1.3. DCL (Data Control Language)........................................................................................... 4 2.1.4. Datentypen ...................................................................................................................... 4 2.1.5. CREATING TABLES............................................................................................................ 5 2.1.6. COYPING Tables ............................................................................................................... 6 2.1.7. MODIFY Tables ................................................................................................................ 6 2.1.8. Add Tables ....................................................................................................................... 6 2.1.9. Synonym Tables ............................................................................................................... 6 1. ERD 1)Bestimme Entitäten 2)Bestimme Beziehungen 3)ERD Zeichnen Genau 1 1 oder viele Kein oder ein Kein, ein oder viele 1.1.1. ERD Beispiel: 1) Bestimme Entitäten Spieler(Player) Tennisclub( Tennisclub) Mannschaft(Team) Meisterschaft(Championship) Spiel(Game) Strafen(Penalties) 1.1.2. 2) Bestimme Beziehungen Spieler Mannschaft N:N Spieler Strafen 1:N Spieler Mannschaftsführer 1:1 Tennisclub Mannschaft 1:N 1.1.3. 3) ERD Zeichnen Spieler Mannschaft Mannschaftsführer Strafen Tennisclub 2. DBMS=Datenbank Management System 2.1. SQL (Structed Query Language) Megenorientiert Beschreibend 2.1.1. DDL (Data Definition Language) Create,Alter,Drop,… Transaktionsbefehle Commit, Rollback DB Datenbank-Design Datentypen aller Attribute Nullability Default 2.1.2. DML (Data Manipulation Language) Insert, Update, Delete, Select 2.1.3. DCL (Data Control Language) Berechtigungen (Grant, Revoke) SQL Syntax Create Table table.name ( Column_name data_type [default expression] [column inteprity rule] [,column_name….., ….] ); 2.1.4. Datentypen Zahlen Datentypen Number(P, S) Ganzzahl Zahlen Text mit Maximallänge -||Datum Binärdaten -||- Int Decimal(P,S) Char(n) Varchar(n) Date RAW Long RAW Kommentar P (Gesamtanzahl) S Anzahl Dezimalstellen Number(38,0) Number n…Maximallänge Variable Speicherung z.b. Sound,Graphite <=2GB Bsp Number(6,2) Number(6) 2.1.5. CREATING TABLES Script Creating Tables seite1 Der Tabellenname muss eindeutig sein innerhalb des Benutzers. Er darf nur 30ig Zeichen lang sein und muss mit einem Buchstaben beginnen. Er kann sich aus Buchstaben, Ziffern, Underscore, Dollar, Raute Players PlayerNo Name Initials Date of birth leaguno 4stellige Zahl / muss belegt sein Zeichen, 15 stellig 3 stellige Zeichenfolge Datum 4stellige Zeichenfolge Create Table players( PlayerNo Teams Team Number(2) Number(4) VaChar2(6) TeamNo PlayerNo Division NOT NULL Create Table Teams ( TeamNo Number(2) Not Null PlayerNo Number(4) Division Vachar2(6); Penalties Penalties Number(4) Number(4) Date Number(7,2) Create Table Penalies( PaymentNo Number(4) Not Null, PlayerNo Number(4) Pen_Date Date Default Sys_Date Amount Number(7,2) Default 2000 ) PaymentNo PlayerNo Pen_Date Amount NOT NULL Aktuelles Datum 2000 Matches Matsches Number(5) Number(2) Number(4) Number(1) Number(1) Create Table Matsches( MatchNo Number(5) TeamNo Number(2) PlayerNo Number(4) Won Number(1) Lost Number(1) ); 2.1.6. COYPING Tables Script Creating Tables seite2 Desc[Ribe] players Select * From Cat; Players Hobbyspieler Create Table Hobbypsieler( As Select PlayerNo, Name From Players ); 2.1.7. MODIFY Tables Script Creating Tables Seite 3 2.1.8. Add Tables Script Creating Tables Seite 4 2.1.9. Synonym Tables Script Creating Tables Seite 5 Systemvariablen USER SYSDATE ROWNUM LEVEL aktuelle DB-Benutzer aktuelles Datum/Zeit MatchNo TeamNo PlayerNo Won Lost Not NULL Übungsbeispiel: Players Zustätzliche Spalte Spalte Name 30 stellig Spalte leagunoLöschen ALTER TABLE Players MODIFY( PlayerNo Numbers(30) ); ALTER TABLE Players ADD( BlubNo Numbers(5) ); ALTER TABLE Players( Drop Leaguno ); 2.2. SQL Select 2.2.1. Select Where Ergebnismenge einschränken Vergleichsoperatoren (= > >= < <= != (<>)) mehrere Attribute können gleichzeitig vergleichen( Nur mit = und !=) Bsp where (VN,NN)=(‘Markus‘,‘Hartmann‘) Bedingungen können verknüpft werden Beispiel Kapitel 3 6 Select playerno from players Where town = ‘Stratford‘; Select Name from players Where (year_joined – year_of_birth)=17; Select Name from players Where Sex = M and year_of_birth>1970; Between-Operator Where year_of_birth Between 1965 and 1975 Erfüllt wenn Wert >= untergrenze und <= Obergrenze 2.2.2. In-Operator Where year_of_birth in(1965,1967,1970) Übung 5 Nr 17 Select Job, AVG(12*Sal)as, Jahresgehalt from emp Groub by job Having count(job)>2;Clerk NVG beispiel Sum(nvl(sal,0)+nvl(prov,druchschnitt)) Übung 5 Nr 16 Select deptno, AVG(sal) from emp Groub by deptno Having count deptno 2.2.3. JOIN In form von mehr als 1 Tabelle Where: Mindestens 1 Bedinung, die diese Tabelle verbindet. Penalties Players 10 daten 15 daten Select * from players, penalties(kartesisches Produkt.) 150 Datensätze warden ausgegeben. 2.2.4. Equijoin(=) InnerJoin Nur Datensätzes, die in eiden Tabellen enthalten sind) Outerjoin Select * from… Here pl.playerno= pl.playerno(+); NON-EQUI Join(theta Join) ANG(…,Sal…) Gehstyle(Rg,Von,Bis) 2.3. Sequences Create Sequence sequence name [start with value] [increment by value] [{max value max value / nomax value}] [{min value min value / nomin value}] [{cycle / nocycle}] [{order / noorder}] [{cache integer / nocache}]; Beispiel: Create Sequence Blub Start with 100 Increment by 10; Seq_name.nextval Seq_name.currval Select seq_MA.currval from dual; = gibt 2.4. DATENMANIPULATION 2.4.1. Insert Insert into TabName [col1,col2,…] Values(value1, values2, …); # d.Spalten/values muss übereinstimmen datentypen müssen übereinstimmen Beispie: Insert into players(name, playerno) Values(‘alex’, 100); Insert into players Values(100, ’alex’, ’an’, Null, Null, Null, Null, Null); Insert into players(playerno, name) Values(Seg.MA.nextval, ‘alex’); 2.4.2. Massen inster Insert into tabName[(col1,…)] Select …; Insert into players(playerno, Name) Select Seq.mA Nextval, ename || ‘_’ || Seq.currval from emp; Players Playerno name 1 King 1 2 Blake 2 15 clark 3 16 King 2 2.4.3. Änderung von Werten Update Update Tablename Set col1 = expension / subquery Set col2 =---||--[Werte condition]; Update emp set sal= sal*1.1 expression Where deptno = 10 Set (deptno, empno)= Select deptno, empno from …. Update emp Set deptno = 10 Mgr=select empno from emp Where ename =’Allen’ Where ename =’Blake’; 2.4.4. Löschen von Zeilen Delete Delete from tablename [Where condtion]; Beispiel: Delete from emp Where deptno = 10; 2.4.5. Transaktion -Set autocommit off -commit; -Rollback; Zuerst mit Select Te