ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and...

19
ORACLE SQL ORACLE SQL

Transcript of ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and...

Page 1: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

ORACLE SQLORACLE SQL

Page 2: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

OverviewOverview

Personal DBMS Vs Client/Server DBMSPersonal DBMS Vs Client/Server DBMS

Oracle 8 EnvironmentOracle 8 Environment

SQL – syntax and examplesSQL – syntax and examples

PL/SQL-introductionPL/SQL-introduction

Page 3: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

Server

Gets file requests from clientsSends files to client

Receives files back from clients

NETWORK

Client ASends file requests to server

Receives files from serverUpdates data

Sends files back to server

Client BSends file requests to server

Receives files from serverUpdates data

Sends files back to server

Personal DBMS

Page 4: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

Personal DBMS - ProblemsPersonal DBMS - Problems

Demand on the client and the networkDemand on the client and the network

Does not perform table locking automaticallyDoes not perform table locking automatically

Not fault tolerant in the case of client failureNot fault tolerant in the case of client failure

Do not have file based transaction loggingDo not have file based transaction logging

Page 5: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

Server

Gets data requests from clientsAdds, Deletes and updates data

Sends results to clients

NETWORK

Client ASends data requests to serverReceives results from server

Sends new data or changes to server

Client BSends data requests to serverReceives results from server

Sends new data or changes to server

Client/server DBMS

Page 6: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

Client/Server DBMS Client/Server DBMS

Minimal load on the client and the networkMinimal load on the client and the network

Performs table locking automaticallyPerforms table locking automatically

Fault tolerant in the case of client failureFault tolerant in the case of client failure

File based transaction loggingFile based transaction logging

Page 7: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

Oracle 8 EnvironmentOracle 8 Environment

SQL * PlusSQL * Plus

PL/SQLPL/SQL

Query BuilderQuery Builder

DeveloperDeveloper

Enterprise ManagerEnterprise Manager

Web application serverWeb application server

Page 8: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

Sqlplus Sqlplus username/passwordusername/password

ALTER USERALTER USER user-name user-name IDENTIFIED BYIDENTIFIED BY newpassword newpassword

STASTART filename | RT filename | @@ filename filename

CLCLEAR EAR SCRSCREENEEN

HELPHELP <command> <command>

SAVESAVE filename[.ext] REPLACE|APPEND filename[.ext] REPLACE|APPEND

EXITEXIT

SQL*Plus commandsSQL*Plus commands

Page 9: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

SQLSQL

Both an ANSI and ISO standardBoth an ANSI and ISO standard

Types of commands:Types of commands:1.1. Data Definition Language (DDL) : Create, Alter, Data Definition Language (DDL) : Create, Alter,

Drop, Rename, TruncateDrop, Rename, Truncate

2.2. Data Manipulation Language (DML): Insert, Data Manipulation Language (DML): Insert, Delete, UpdateDelete, Update

3.3. Data Retrieval: SelectData Retrieval: Select

4.4. Transaction Control: Commit, Rollback, SavepointTransaction Control: Commit, Rollback, Savepoint

5.5. Data Control Language (DCL): Grant, RevokeData Control Language (DCL): Grant, Revoke

Page 10: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

PositionPosition

IDID

PositionPosition

DescriptionDescription

11 PresidentPresident

22 ManagerManager

33 ProgrammerProgrammer

44 AccountantAccountant

55 SalesmanSalesman

QualificationQualification

IDID

QualificationQualification

DescriptionDescription

11 DoctorateDoctorate

22 MastersMasters

33 BachelorsBachelors

44 AssociatesAssociates

DeptDept

IDID

DeptDept

NameName

LocationLocation

1010 FinanceFinance CharlotteCharlotte

2020 InfosysInfosys New YorkNew York

3030 MarketingMarketing WoodbridgeWoodbridge

4040 AccountantAccountant CaliforniaCalifornia

DEPARTMENT

POSITIONQUALIFICATION

Page 11: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

EmpEmp

IDID

LastLast

NameName

FirstFirst

NameName

PositionPosition

IDID

SuperSuper

IDID

HireHire

DateDate

SalarySalary CommComm DeptDept

IDID

QualQual

IDID

111111 SmithSmith JohnJohn 11 04/15/6004/15/60 265000265000 35003500 1010 11

246246 HoustonHouston LarryLarry 22 111111 05/19/6705/19/67 150000150000 10001000 4040 22

123123 RobertsRoberts SandiSandi 22 111111 12/02/9112/02/91 7500075000 1010 22

433433 McCallMcCall AlexAlex 33 543543 05/10/9705/10/97 6650066500 2020 44

543543 DevDev DereckDereck 22 111111 03/15/9503/15/95 8000080000 20002000 2020 11

200200 ShawShaw JinkuJinku 55 135135 01/03/0001/03/00 2450024500 30003000 3030

222222 ChenChen SunnySunny 44 123123 08/15/9908/15/99 3500035000 1010 33

135135 GarnerGarner StanleyStanley 22 111111 02/29/9602/29/96 4500045000 50005000 3030 55

EMPLOYEE

Page 12: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

Data Definition Language:Data Definition Language:

CREATE TABLE CREATE TABLE {table}{table}( ( {column datatype [DEFAULT expr] {column datatype [DEFAULT expr] [column_constraint] ... | table_constraint} [column_constraint] ... | table_constraint} [, { column datatype [DEFAULT expr] [, { column datatype [DEFAULT expr] [column_constraint] ... [column_constraint] ... ))

ALTER TABLEALTER TABLE {table} {table}[[ADD|MODIFYADD|MODIFY {column datatype [DEFAULT expr] [column_constraint]} {column datatype [DEFAULT expr] [column_constraint]} [[DROPDROP drop_clause] drop_clause]

DROP TABLEDROP TABLE {table} [cascade constraints] {table} [cascade constraints]

DESC DESC {table}{table}

Page 13: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

CREATE TABLE Emp CREATE TABLE Emp ( ( empid Decimal(10) NOT NULL, empid Decimal(10) NOT NULL, positionid Number(2), positionid Number(2), supervisorid Number(3), supervisorid Number(3), deptid Number(2), deptid Number(2), qualid Number(1), qualid Number(1), lname varchar2(10), lname varchar2(10), fname varchar2(10), fname varchar2(10), salary Decimal(10,2), salary Decimal(10,2), hiredate Date, hiredate Date, commission Decimal(4,2), commission Decimal(4,2), PRIMARY KEY (empid), PRIMARY KEY (empid), FOREIGN KEY (positionid) REFERENCES Position(positionid), FOREIGN KEY (positionid) REFERENCES Position(positionid), FOREIGN KEY (deptid) REFERENCES Dept(deptid), FOREIGN KEY (deptid) REFERENCES Dept(deptid), FOREIGN KEY (qualid) REFERENCES Qualification(qualid) FOREIGN KEY (qualid) REFERENCES Qualification(qualid) ); );

ALTER TABLE EMP MODIFY Commission decimal(7,2);ALTER TABLE EMP MODIFY Commission decimal(7,2);

Page 14: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

Data Manipulation Language:Data Manipulation Language:

INSERT INTOINSERT INTO {table | view} [ (column [, column] ...) ] {table | view} [ (column [, column] ...) ]

VALUESVALUES (expr,expr ...) (expr,expr ...)

UPDATEUPDATE {table | view } {table | view }SETSET { (column [, column] = { expr | } { (column [, column] = { expr | } [[WHEREWHERE condition] condition]

DELETEDELETE [ [FROMFROM] {table | view} [] {table | view} [WHEREWHERE condition] condition]

Page 15: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

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 deptWHERE deptid='50';

Page 16: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

Data Retrieval:Data Retrieval:

SELECTSELECT [DISTINCT | ALL] {table|view} [DISTINCT | ALL] {table|view}

FROM FROM {table | view}{table | view}

[[WHEREWHERE condition ] condition ]

[[GROUP BYGROUP BY expr [, expr]] expr [, expr]]

[[ORDER BYORDER BY {expr} [ASC | DESC]] {expr} [ASC | DESC]]

select * from dept;select * from dept;

select deptname from dept where deptid='10';select deptname from dept where deptid='10';

select lname,fname from emp order by lname desc; select lname,fname from emp order by lname desc;

select max(salary) from emp group by positionid;select max(salary) from emp group by positionid;

select deptname from dept,emp where select deptname from dept,emp where

dept.deptid=emp.deptid and emp.empid='111';dept.deptid=emp.deptid and emp.empid='111';

Page 17: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

Transaction Control:Transaction Control:

COMMITCOMMIT

ROLLBACK ROLLBACK [ to {savepoint}][ to {savepoint}]

SAVEPOINT SAVEPOINT {name}{name}

commit;commit;

savepoint point1;savepoint point1;

rollback to point1;rollback to point1;

Page 18: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

Data Control Language:Data Control Language:

GRANT GRANT [privileges][privileges]ON ON object object TO TO user|publicuser|public[[WITH GRANT OPTIONWITH GRANT OPTION]]

REVOKE REVOKE [privileges][privileges]ON ON object object TO TO user|publicuser|public[[CASCADE CONSTRAINTSCASCADE CONSTRAINTS]]

grant select,update on emp to XYZ ;grant select,update on emp to XYZ ;

revoke update on emp to XYZ;revoke update on emp to XYZ;

Page 19: ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.

A PL/SQL Example:A PL/SQL Example:

CREATE OR REPLACE PROCEDURECREATE OR REPLACE PROCEDURE raise_salary (empno INTEGER, raise_salary (empno INTEGER, increase REAL) increase REAL) ISIS

current_salary REAL; current_salary REAL; salary_missing EXCEPTION; salary_missing EXCEPTION;

BEGINBEGIN SELECT salary INTO current_salary FROM emp WHERE emp.empid = SELECT salary INTO current_salary FROM emp WHERE emp.empid = empno; empno; IF current_salary IS NULL THEN IF current_salary IS NULL THEN

RAISE salary_missing; RAISE salary_missing; ELSE ELSE

UPDATE emp SET salary = salary + increase WHERE UPDATE emp SET salary = salary + increase WHERE emp.empid = empno;emp.empid = empno; END IF; END IF;

EXCEPTIONEXCEPTION WHEN salary_missing THEN WHEN salary_missing THEN

UPDATE emp SET salary=0 where emp.empid=empno; UPDATE emp SET salary=0 where emp.empid=empno; ENDEND raise_salary; raise_salary;