SQL> create table departm ( 2 dp_no number(4) constraint dp_pk primary key, 3 dp_name varchar2(40), 4 dp_location varchar2(40)); Tabelle wurde angelegt. SQL> desc departm; Name Null? Typ ------------------------------- -------- ---- DP_NO NOT NULL NUMBER(4) DP_NAME VARCHAR2(40) DP_LOCATION VARCHAR2(40) SQL> create table employee ( 2 emp_no number(8), 3 emp_name varchar2(20), 4 emp_manager number(8), 5 emp_salary number(8,2), 6 emp_dptno number(4), 7 constraint emp_pk primary key (emp_no), 8 constraint emp_fk foreign key (emp_dptno) references department (dpt_no)); Tabelle wurde angelegt. SQL> desc employee; Name Null? Typ ------------------------------- -------- ---- EMP_NO NOT NULL NUMBER(8) EMP_NAME VARCHAR2(20) EMP_MANAGER NUMBER(8) EMP_SALARY NUMBER(8,2) EMP_DPTNO NUMBER(4) SQL> alter table employee add (emp_birthday date); Tabelle wurde geändert. SQL> desc employee; Name Null? Typ ------------------------------- -------- ---- EMP_NO NOT NULL NUMBER(8) EMP_NAME VARCHAR2(20) EMP_MANAGER NUMBER(8) EMP_SALARY NUMBER(8,2) EMP_DPTNO NUMBER(4) EMP_BIRTHDAY DATE SQL> alter table employee drop column emp_birthday; Tabelle wurde geändert. SQL> desc employee; Name Null? Typ ------------------------------- -------- ---- EMP_NO NOT NULL NUMBER(8) EMP_NAME VARCHAR2(20) EMP_MANAGER NUMBER(8) EMP_SALARY NUMBER(8,2) EMP_DPTNO NUMBER(4) SQL> alter table employee modify (emp_name varchar2(40)); Tabelle wurde geändert. SQL> create view employee_20 (no, name, dptno) as 2 select emp_no, emp_name, emp_dptno 3 from employee where emp_dptno = 20 with check option; View wurde angelegt. SQL> desc employee_20; Name Null? Typ ------------------------------- -------- ---- NO NOT NULL NUMBER(8) NAME VARCHAR2(40) DPTNO NUMBER(4) SQL> create index emp_ind1 on employee (emp_dptno); Index wurde angelegt. SQL> create sequence emp_seq; Sequenz wurde angelegt. SQL> desc department; Name Null? Typ ------------------------------- -------- ---- DPT_NO NOT NULL NUMBER(4) DPT_NAME VARCHAR2(40) DPT_LOCATION VARCHAR2(40) SQL> insert into department (dpt_no, dpt_name, dpt_location) values (20, 'Computing', 'Giessen'); 1 Zeile wurde erstellt. update employee set emp_salary = emp_salary*1.03 where emp_dptno = 30; update employee set emp_birthday = to_date ('1981 10 16', 'YYYY MM DD')where emp_no = 1; geht noch kein update weil Zeilen noch nicht gefüllt sind wenn ich jetzt etwas einfügen will muss ich erst ein department anlegen und dann employee zeilen zu füllen, denn wenn ich zuerst in employee ein department angebe un dieses existiert noch nicht gibt es eine Felhermeldung SQL> desc department Name Null? Typ ------------------------------- -------- ---- DPT_NO NOT NULL NUMBER(4) DPT_NAME VARCHAR2(40) DPT_LOCATION VARCHAR2(40) SQL> insert into department values (1, 'Purchasing', 210); 1 Zeile wurde erstellt. SQL> insert into department values (1, 'Purchasing', 210); 1 Zeile wurde erstellt. --> will ich aber nicht so denn 210 soll erste Zahl sein SQL> delete from department where dpt_no = 1; 1 Zeile wurde gelöscht. SQL> select * from department; DPT_NO DPT_NAME DPT_LOCATION --------- ---------------------------------------- ---------------------------------------- 20 Computing Giessen SQL> insert into department values (210,'Purchasing', 'KOP'); 1 Zeile wurde erstellt. SQL> desc department; Name Null? Typ ------------------------------- -------- ---- DPT_NO NOT NULL NUMBER(4) DPT_NAME VARCHAR2(40) DPT_LOCATION VARCHAR2(40) jetzt auch möglich in employee ein MA anzulegen aber nur im Dep. 210! SQL> desc employee Name Null? Typ ------------------------------- -------- ---- EMP_NO NOT NULL NUMBER(8) EMP_NAME VARCHAR2(40) EMP_MANAGER NUMBER(8) EMP_SALARY NUMBER(8,2) EMP_DPTNO NUMBER(4) EMP_BIRTHDAY DATE SQL> insert into employee values (1,'Wahl', 007, 1800, 210, '16 10 1981'); 1 Zeile wurde erstellt. SQL> select * from employee; EMP_NO EMP_NAME EMP_MANAGER EMP_SALARY EMP_DPTNO EMP_BIRT --------- ---------------------------------------- ----------- ---------- --------- -------- 1 Wahl 7 1800 210 16.10.81 SQL> select * from department; DPT_NO DPT_NAME DPT_LOCATION --------- ---------------------------------------- ---------------------------------------- 20 Computing Giessen 210 Purchasing KOP SQL> select emp_name, emp_salary from employee; EMP_NAME EMP_SALARY ---------------------------------------- ---------- Wahl 1800 SQL> insert into employee values (2,'Fuhge',006, 500, 210, '21 05 1984'); 1 Zeile wurde erstellt. SQL> select emp_name, emp_salary from employee where emp_dptno = 210 order by emp_name; EMP_NAME EMP_SALARY ---------------------------------------- ---------- Fuhge 500 Wahl 1800 Es fehlt noch: Domäne, view, Projection, Selection, Join von letzer Woche! SQL> select * from department; DPT_NO DPT_NAME DPT_LOCATION --------- ---------------------------------------- ---------------------------------------- 20 Computing Giessen 210 Purchasing KOP SQL> select * from employee; EMP_NO EMP_NAME EMP_MANAGER EMP_SALARY EMP_DPTNO EMP_BIRT --------- ---------------------------------------- ----------- ---------- --------- -------- 1 Wahl 7 1800 210 16.10.81 2 Fuhge 6 500 210 21.05.84 SQL> select * from department, employee; DPT_NO DPT_NAME DPT_LOCATION --------- ---------------------------------------- ---------------------------------------- EMP_NO EMP_NAME EMP_MANAGER EMP_SALARY EMP_DPTNO EMP_BIRT --------- ---------------------------------------- ----------- ---------- --------- -------- 20 Computing Giessen 1 Wahl 7 1800 210 16.10.81 210 Purchasing KOP 1 Wahl 7 1800 210 16.10.81 20 Computing Giessen 2 Fuhge 6 500 210 21.05.84 210 Purchasing KOP 2 Fuhge 6 500 210 21.05.84 Das ist kaskesische Produkt. Alles mit allem kombiniert! SQL> select * from employee, department where department.dpt_no = employee.emp_dptno; EMP_NO EMP_NAME EMP_MANAGER EMP_SALARY EMP_DPTNO EMP_BIRT --------- ---------------------------------------- ----------- ---------- --------- -------- DPT_NO DPT_NAME DPT_LOCATION --------- ---------------------------------------- ---------------------------------------- 1 Wahl 7 1800 210 16.10.81 210 Purchasing KOP 2 Fuhge 6 500 210 21.05.84 210 Purchasing KOP