ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and...
-
Upload
jerome-dixon -
Category
Documents
-
view
230 -
download
0
Transcript of ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and...
ORACLE SQLORACLE SQL
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
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
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
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
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
Oracle 8 EnvironmentOracle 8 Environment
SQL * PlusSQL * Plus
PL/SQLPL/SQL
Query BuilderQuery Builder
DeveloperDeveloper
Enterprise ManagerEnterprise Manager
Web application serverWeb application server
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
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
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
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
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}
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);
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]
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';
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';
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;
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;
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;