5.4

Ihr-Domainname.de
Verfügbare Informationen zu "5.4"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Anonymous
  • Forum: Ihr-Domainname.de
  • Forenbeschreibung: Beschreibung Ihres Forums
  • aus dem Unterforum: News
  • Antworten: 2
  • Forum gestartet am: Mittwoch 15.03.2006
  • Sprache: deutsch
  • Link zum Originaltopic: 5.4
  • Letzte Antwort: vor 17 Jahren, 1 Monat, 20 Tagen, 10 Stunden, 22 Minuten
  • Alle Beiträge und Antworten zu "5.4"

    Re: 5.4

    Anonymous - 05.04.2006, 09:32

    5.4
    So auch heute wird wieder gekickt
    Spielbeginn zwischen 19.00 und 20:00 Uhr.



    Re: 5.4

    Anonymous - 05.02.2007, 08:25


    1 Dupliziere alle Manager!
    Ändere bei den Duplikaten die erste Stelle vom empno auf 9.
    ROLLBACK durchführen.
    Hinweis:
    (to_string, to_number, substring(string,start[,länge])

    insert into emp select * from emp where empno in (select mgr from emp)

    2 Das Gehalt aller Mitarbeiter mit Beruf ´A...´ oder ´C ...´in Abteilung 20 um 10% erhöhen. COMMIT durchführen.

    update emp set sal=(sal/100)*110 where job like 'A%' or job like 'C%' and deptno=20

    3 Allen Mitarbeiter der Abteilung 'RESEARCH' das Durchschnittsgehalt der Abteilung 'SALES' zuweisen. ROLLBACK durchführen.

    update emp set sal=(select avg(sal) from emp,dept where emp.deptno=dept.deptno and dept.dname='SALES') where emp.deptno = (select deptno from dept where dname='RESEARCH');

    4 Alle Mitarbeiter löschen. Ergebnis kontrollieren. ROLLBACK durchführen.

    Delete emp

    5 Alle Mitarbeiter mit dem gleichen Beruf als ´Jones´ löschen. Ergebnis kontrollieren. ROLLBACK durchführen.

    delete from emp where job = (select job from emp where ename ='JONES')

    6 Alle Mitarbeiter sind zu löschen, die mehr als JONES und SMITH gemeinsam verdienen. ROLLBACK durchführen.

    delete from emp where sal > ((select sum(sal) from emp where ename = 'JONES' or ename = 'SMITH'))


    7 Alle Mitarbeiter mit dem gleichen Beruf sollen als neues Gehalt das bisherige Durchschnittsgehalt dieser Berufsgruppe erhalten. ROLLBACK durchführen.

    update emp ges set sal = (select avg(sal) from emp group by job having ges.job = job)





    1. Lege eine Projekt-Tabelle an!
    Projekt(projnr number(3), projname char(15), projbudget number(6))
    Constraints: „projnr“ ist Primärschlüssel, „projbudget“ muss sich zwischen 0 und 999999 bewegen.

    create table Projekt(projnr number(3) constraint pk primary key, projname char(15), projbudget number(6) constraint cbudget check (projbudget>0))


    2. Füge die Datensätze (101,´Verkauf´,100000), (102, ´Office´,900000), (103,´MIS´,150000) in Projekt ein! Versuche den 1. Satz ein zweitesmal einzufügen. Versuche einen Satz mit einem zu hohen Budget einzufügen.

    Insert into Projekt(projnr,projname,projbudget)
    Values (101,’VERKAUF’,100000)
    Insert into Projekt(projnr,projname,projbudget)
    Values (102,’OFFICE’,900000)
    Insert into Projekt(projnr,projname,projbudget)
    Values (103,’MIS’,150000)


    3. Ergänze die Tabelle "emp" um ein weiteres Attribut "projnr"! Definiere eine entsprechende Fremdschlüsselbeziehung zur Tabelle „Projekt“.

    Alter table emp add projnr number(3)
    alter table emp add constraint FK1 foreign key (projnr) references Projekt(projnr)

    4. Ordne allen Verkäufern das Projekt 101 zu! Ordne allen Managern das Projekt 103 zu! Ordne den restlichen Mitarbeitern das Projekt 102 zu! Versuche einem Mitarbeiter eine nicht existente Projektnummer zuzuordnen.

    update emp set projnr = 101 where job = 'SALESMAN'
    update emp set projnr = 102 where job = 'MANAGER'
    update emp set projnr = 103 where job != 'MANAGER' and job!='SALESMAN'

    6. Definiere VIEW "MAPR" mit Mitarbeitername, Beruf, Projektname!

    create view MAPR as select ename,job,projname from emp join Projekt using(projnr)


    7. Liste alle Attribute der VIEW "MAPR"! Speichere Query unter "Q1"!
    (save q1 unter SQLPlus)

    Select * from MAPR
    >save q1;  nur SQL PLUS Windows Anwendung – nicht Web App!

    8. Entferne das Attribut projnr aus der Mitarbeiter-Tabelle! Probiere Query "Q1"!
    (SQLPlus: get q1; run;)

    Alter table emp drop column projnr




    1. Anonymer Block emp-Datensätze verdoppeln

    declare
    cursor c is select * from emp;
    empnoneu number;
    empnoalt number;
    ename VARCHAR2(10);
    job VARCHAR2(9);
    mgr number(4);
    hiredate date;
    sal number(7,2);
    comm number(7,2);
    deptno number(2);
    projnr number(3);
    begin
    open c;
    while c%found loop
    fetch c into empnoalt,ename,job,mgr,hiredate,sal,comm,deptno,projnr;
    empnoneu:=empnoalt+1000;
    insert into emp values(empnoneu,ename,job,mgr,hiredate,sal,comm,deptno,projnr);
    end loop;
    close c;
    end;

    2. Stored Funktion
    declare
    function abtfkt(abtnr in number) return varchar2 is
    cursor getdeptno is select dname from dept where deptno=abtnr;
    name varchar2(50);
    returnstr varchar2(60);
    begin
    open getdeptno;
    fetch getdeptno into name;
    if getdeptno%FOUND=true then
    returnstr:=name;
    else
    insert into dept (dname,deptno) values ('ABTEILUNG'||abtnr,abtnr);
    returnstr:= 'Abteilung wurde angelegt';
    end if;
    close getdeptno;
    return returnstr;
    end;

    begin
    dbms_output.put_line(abtfkt(17));
    end;




    3. Stored Function
    declare
    function madetail(manr in number) return varchar2 is
    cursor getma is select ename,comm,sal from emp where empno=manr;
    ename varchar2(20);
    comm number(4);
    sal number(4);
    backstr varchar(50);
    begin
    open getma;
    fetch getma into ename,comm,sal;
    if not getma%FOUND then
    backstr:='kein emp-Satz under dieser Nummer';
    else if comm=0 or comm is null then
    backstr:=ename||' bezieht keine Provision';
    else
    backstr:=ename||' bezieht '||(comm/sal)*100||'% Provision';
    end if;
    end if;
    return backstr;
    end;
    begin
    dbms_output.put_line(madetail(74));
    end;


    4. namedetails

    create or replace procedure getDetail(getename varchar2) is
    nameok exception;

    name varchar2(30);
    getempno number(3);
    getjob varchar2(20);
    getdate date;
    getsal number(4);
    getcomm number(4);
    getdeptno number(2);
    getdname varchar2(20);
    getmgr number(3);

    cursor c is select ename,empno,hiredate,job,sal,comm,dname,mgr from emp join dept using(deptno) where ename = getename;
    begin
    open c;
    fetch c into name,getempno,getdate,getjob,getsal,getcomm,getdname,getmgr;
    if (c%FOUND) then
    raise nameok;
    end if;

    exception
    when NO_DATA_FOUND then dbms_output.put_line('Kein Mittarbeiter mit diesem Namen gepeichert');
    when TOO_MANY_ROWS then
    while (c%FOUND) loop
    fetch c into name,getempno,getdate,getjob,getsal,getcomm,getdname,getmgr;
    dbms_output.put_line(name||' '||getjob||' '||getdname);
    end loop;
    when nameok then dbms_output.put_line(getempno||' '||name||' '||getmgr||' '||getjob||' '||getdate||' '||getdname||' '||getdeptno);
    close c;
    end;


    5. jubilaeum

    create or replace procedure jubilaeum(n in number) is
    hire date;
    name varchar(10);
    cnt number(3);
    cursor c is select ename from emp order by hiredate;
    begin
    open c;
    cnt:=1;
    while (cnt<=n) loop
    cnt:=cnt+1;
    fetch c into name;
    dbms_output.put_line(name);
    end loop;
    exception when NO_DATA_FOUND then dbms_output.put_line('Keine Daten gefunden');
    end;



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Ihr-Domainname.de



    Ähnliche Beiträge wie "5.4"

    Fragen zum Forum und zur Homepage - KageJubei (Samstag 20.09.2008)
    Forum von SchattenNinja - SchattenNinja (Donnerstag 09.11.2006)
    Soll ich mich im forum anmelden? - Anonymous (Sonntag 05.11.2006)
    Unser neues Forum! - ChrisKH (Sonntag 02.05.2004)
    Forum is On - Belebt es - craysi (Samstag 17.09.2005)
    43 Designe za Forum - 2iggy (Montag 14.03.2005)
    Forum fertig -> Abstimmung über die Squads - Dis (Montag 17.07.2006)
    Um das Forum voll nutzen zu können... - gandalf (Donnerstag 01.06.2006)
    Geburtstagskinder im Forum - attams (Samstag 20.01.2007)
    Zu wenig im Forum - BernieSchiebulla (Freitag 06.05.2005)