delete and name explains will delete all or some rows from a table depending on your specifications and requirements,
where as drop will remove the table from the schema.
As for triggers, here is an example.(They only fire on dmls, not ddls,)
I have a table called testmp2 which has the employee details and another table testdelvalues which is used to store only the deatils of deleted employee records.
Here is the example trigger I'm using.
SQL> CREATE OR REPLACE TRIGGER testempdel
2 AFTER delete ON testemp2
3 FOR EACH ROW
4 BEGIN
5 INSERT INTO testdelvalues (empno,empname) values (:Old.empno,:Old.ename);
6 END;
7 /
Trigger created.
These are all the records from employee table.
SQL> select * from testemp2;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
Currently the testdelvalues values is empty.
SQL> select * from testdelvalues;
no rows selected
Now I delete a record from the table, which will fire a delete trigger to store the values into the testdelvalues , storing which were the deleted employee empno and name.
SQL> delete from testemp2 where empno=7369;
1 row deleted.
SQL> commit;
Commit complete.
The details recorded , which were inserted using the delete trigger.
SQL> select * from testdelvalues;
EMPNO EMPNAME
---------- ----------
7369 SMITH