1 / 17

Tabellen

Tabellen. In relationalen DB werden Daten in Tabellen organisiert Jede Spalte enthält eine bestimmte Art von Information, jede Zeile einen Datensatz Jede Spalte hat einen Datentyp CHAR, VARCHAR, NUMBER, DATE,. Tabellen anlegen. CREATE TABLE tabname (columns); z.B. Tabelle DEPT

Download Presentation

Tabellen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tabellen • In relationalen DB werden Daten in Tabellen organisiert • Jede Spalte enthält eine bestimmte Art von Information, jede Zeile einen Datensatz • Jede Spalte hat einen Datentyp • CHAR, VARCHAR, NUMBER, DATE,...

  2. Tabellen anlegen • CREATE TABLE tabname (columns); • z.B. Tabelle DEPT CREATE TABLE DEPT ( DEPTNO NUMBER(2), DNAME VARCHAR2(14), LOC VARCHAR2(13)); • Löschen mit DROP TABLE tabname;

  3. Daten einfügen • INSERT INTO tabname(col) values(val) • z.B. Tabelle DEPTINSERT INTO DEPT(DEPTNO,DNAME,LOC)VALUES(1,'Accounting','New York'); • Strings in einfachen Hochkomma '

  4. Daten abrufen • SELECT cols FROM tabname; • z.B. Tabelle DEPTSELECT DEPTNO,DNAME FROM DEPT; • Vereinfachung: * = alle SpaltenSELECT * FROM DEPT; • AuswahlSELECT DEPTNO,DNAME FROM DEPTWHERE DEPTNO=10;

  5. Daten löschen • DELETE FROM tabname [WHERE ...]; • z.B. Tabelle EMPDELETE FROM EMP WHERE JOB='MANAGER';DELETE FROM EMP WHERE SAL > 3000; • Achtung:DELETE FROM EMP;löscht alle Datensätze der Tabelle !

  6. Daten ändern • UPDATE tabname SET col=value [WHERE ...] • z.B. Tabelle EMPUPDATE EMP SET DEPTNO=30 WHERE EMPNO=7934; • auch mehrere Columns gleichzeitigUPDATE EMP SET DEPTNO=30,SAL=1.1*SALWHERE DEPTNO=10 AND JOB<>'MANAGER';

  7. Tabellen verknüpfen • Informationen sind auf mehrere Tabellen verteilt und sollen zusammengefasst werden: Join • z.B. Name der Angestellten in EMP, Name der Abteilung in DEPTSELECT E.ENAME,D.DNAME FROM EMP E, DEPT DWHERE E.DEPTNO=D.DEPTNO;

  8. DEMO-Tabellen SELECT * FROM EMP; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- -------- --------- --------- --------- 7369 SMITH CLERK 7902 17.12.80 800 20 7499 ALLEN SALESMAN 7698 20.02.81 1600 300 30 7521 WARD SALESMAN 7698 22.02.81 1250 500 30 7566 JONES MANAGER 7839 02.04.81 2975 20 7654 MARTIN SALESMAN 7698 28.09.81 1250 1400 30 7698 BLAKE MANAGER 7839 01.05.81 2850 30 7782 CLARK MANAGER 7839 09.06.81 2450 10 7788 SCOTT ANALYST 7566 09.12.82 3000 20 7839 KING PRESIDENT 17.11.81 5000 10 7844 TURNER SALESMAN 7698 08.09.81 1500 0 30 7876 ADAMS CLERK 7788 12.01.83 1100 20 7900 JAMES CLERK 7698 03.12.81 950 30 7902 FORD ANALYST 7566 03.12.81 3000 20 7934 MILLER CLERK 7782 23.01.82 1300 10 SELECT * FROM DEPT; DEPTNO DNAME LOC --------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SELECT * FROM SALGRADE; GRADE LOSAL HISAL --------- --------- --------- 1 700 1200 2 1201 1400 3 1401 2000 4 2001 3000 5 3001 9999

  9. Aufgaben • Liste aller Angestellten des DEPT 30 • Alle Angestellten, die entweder 'MANAGER' sind oder mehr als 3000$ verdienen • Erhöhe das Gehalt aller Angestellten im DEPT 20, die keine 'MANAGER' sind • Lösche alle Angestellten des DEPT 20 • Liste aller Angestellten mit Gehaltsstufe

  10. Joins • Joins verknüpfen zwei (oder mehr) Tabellen • Wie ? • kartesisches Produkt + Selektion, d.h.jede Zeile aus Tabelle A wird mit jeder Zeile aus Tabelle B kombiniert,dann werden die herausgesucht, die die Bedingung erfüllen

  11. Equi-join/Non-equi-join • Equi-join: Bedingung "=" • Non-equi-join: sonst • Beispiel: letzte Aufgabe (SALGRADE)SELECT E.ENAME,S.GRADEFROM EMP E, SALGRADE SWHERE E.SAL>S.LOSAL AND E.SAL<S.HISAL • Häufig: Equi-join

  12. Self-join • Join einer Tabelle mit der gleichen • z.B: Alle Angestellten mit einem höheren Gehalt als 'JONES'SELECT X.ENAME,X.SALFROM EMP X, EMP YWHERE X.SAL > Y.SAL AND Y.ENAME='JONES' scott 3000 king 5000 ford 3000

  13. Aggregate functions • fassen Werte aus Tabelle zusammen • machen aus vielen Zeilen eine • Beispiel: Zahl der EMP's ?SELECT COUNT(*) FROM EMP • Häufig: COUNT(*),AVG,MIN,MAX,SUM • Sehr mächtig (Gruppierung,...)später

  14. NULL • Was trägt man ein, wenn Attribut keinen Wert hat ?z.B. bei Zahlen '0', bei Strings '', bei Datum 31.12.1999,... allgemein ? • SQL: NULL • immer dann, wenn Wert unbekannt oder nicht sinnvoll • Vergleich mit IS [NOT] NULL

  15. NULL Forts. • Beispiel: EMPSELECT COUNT(*) FROM EMP14SELECT COUNT(*) FROM EMP WHERE COMM>04SELECT COUNT(*) FROM EMP WHERE COMM<=01 • ???? !!!! ????

  16. Three Valued Logic • Menge hat n(14) Elemente:Wenn m(4) Elemente Bedingung erfüllen, müssen n-m(11) die Negation der Bedingung erfüllen; hier nicht ! • Bedingung mit NULL immer falseSELECT COUNT(*) FROM EMP WHERE ISNULL(COMM,0) <=011 • AUFPASSEN

  17. Aufgaben • Durchschnittsgehalt der „MANAGER“ (SALESMAN) • Aller Berufsgruppen • Liste aller Angestellten mit gleichem Job wie ‘BLAKE‘ • , die mehr verdienen, als ihr Manager • Durchschnittliche Kommission • von allen • von denen, die überhaupt eine kriegen • Wie viele Angestellte kriegen keine Kommission ? • Abteilungen mit Name des Leiters • Wie ?

More Related