Professional Documents
Culture Documents
Overview
Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL syntax and examples PL/SQL-introduction
Server
Personal DBMS
Gets file requests from clients Sends files to client Receives files back from clients
NETWORK
Client A Sends file requests to server Receives files from server Updates data Sends files back to server
Client B Sends file requests to server Receives files from server Updates data Sends files back to server
Server
Client/server DBMS
Gets data requests from clients Adds, Deletes and updates data Sends results to clients
NETWORK
Client A Sends data requests to server Receives results from server Sends new data or changes to server
Client B Sends data requests to server Receives results from server Sends new data or changes to server
Client/Server DBMS
Minimal load on the client and the network Performs table locking automatically Fault tolerant in the case of client failure File based transaction logging
Oracle 8 Environment
SQL * Plus PL/SQL Query Builder Developer Enterprise Manager Web application server
SQL*Plus commands
Sqlplus username/password
CLEAR SCREEN
HELP <command>
SQL
Both an ANSI and ISO standard Types of commands:
1.
2.
3. 4. 5.
Data Definition Language (DDL) : Create, Alter, Drop, Rename, Truncate Data Manipulation Language (DML): Insert, Delete, Update Data Retrieval: Select Transaction Control: Commit, Rollback, Savepoint Data Control Language (DCL): Grant, Revoke
DEPARTMENT
Dept ID 10 20 30 40 Dept Name Finance Infosys Marketing Accountant Location Charlotte New York Woodbridge California
POSITION
QUALIFICATION
Position ID 1 Position Description President Qualification ID Qualification Description
2
3 4 5
Manager
Programmer Accountant Salesman
1
2 3 4
Doctorate
Masters Bachelors Associates
EMPLOYEE
Emp ID 111 246 123 433 543 200 222 Last Name Smith Houston Roberts McCall Dev Shaw Chen First Name John Larry Sandi Alex Dereck Jinku Sunny Position ID 1 2 2 3 2 5 4 111 111 543 111 135 123 Super ID Hire Date 04/15/60 05/19/67 12/02/91 05/10/97 03/15/95 01/03/00 08/15/99 Salary Comm Dept ID 10 40 10 20 2000 3000 20 30 10 3 Qual ID 1 2 2 4 1
3500 1000
135
Garner
Stanley
111
02/29/96
45000
5000
30
ALTER TABLE {table} [ADD|MODIFY {column datatype [DEFAULT expr] [column_constraint]} [DROP drop_clause]
CREATE TABLE Emp ( empid Decimal(10) NOT NULL, positionid Number(2), supervisorid Number(3), deptid Number(2), qualid Number(1), lname varchar2(10), fname varchar2(10), salary Decimal(10,2), hiredate Date, commission Decimal(4,2), PRIMARY KEY (empid), FOREIGN KEY (positionid) REFERENCES Position(positionid), FOREIGN KEY (deptid) REFERENCES Dept(deptid), FOREIGN KEY (qualid) REFERENCES Qualification(qualid) );
ALTER TABLE EMP MODIFY Commission decimal(7,2);
INSERT INTO Dept( deptid,deptname,location) VALUES(50,'IT','Dallas'); INSERT INTO Emp(empid, lname,fname,positionid, supervisorid,hiredate, salary,deptid,qualid) VALUES(227,'howser','Barbara',4,111,'25-AUG-83',45000,10,3); UPDATE dept SET deptname='Sales' WHERE deptID=50; DELETE FROM dept WHERE deptid='50';
Data Retrieval:
SELECT [DISTINCT | ALL] {table|view} FROM {table | view} [WHERE condition ] [GROUP BY expr [, expr]] [ORDER BY {expr} [ASC | DESC]]
select * from dept; select deptname from dept where deptid='10'; select lname,fname from emp order by lname desc; select max(salary) from emp group by positionid; select deptname from dept,emp where dept.deptid=emp.deptid and emp.empid='111';
SAVEPOINT {name}
commit; savepoint point1; rollback to point1;
A PL/SQL Example:
CREATE OR REPLACE PROCEDURE raise_salary (empno INTEGER, increase REAL) IS current_salary REAL; salary_missing EXCEPTION; BEGIN SELECT salary INTO current_salary FROM emp WHERE emp.empid = empno; IF current_salary IS NULL THEN RAISE salary_missing; ELSE UPDATE emp SET salary = salary + increase WHERE emp.empid = empno; END IF; EXCEPTION WHEN salary_missing THEN UPDATE emp SET salary=0 where emp.empid=empno; END raise_salary;