Tải bản đầy đủ (.pdf) (1,164 trang)

OReilly mastering oracle SQL 2nd edition jun 2004 ISBN 0596006322

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3 MB, 1,164 trang )











TableofContents
Index
Reviews
Examples
ReaderReviews
Errata
Academic

MasteringOracleSQL,2ndEdition
ByAlanBeaulieu,SanjayMishra

Publisher :O'Reilly
PubDate :June2004
ISBN :0-596-00632-2
Pages :492


UpdatedtocoverOracle10g,thisnewedition
ofthehighlyregardedMasteringOracleSQL
hasastrongerfocusonpractical,expert
best-practicesandonOracle-specificSQL


techniquethananyotherbookonthe
market.Forthosewhowanttoharnessthe
untapped(andoftenoverlooked)powerof
OracleSQL,thisessentialguideforputting


OracleSQLtoworkwillproveinvaluable.












TableofContents
Index
Reviews
Examples
ReaderReviews
Errata
Academic

MasteringOracleSQL,2ndEdition
ByAlanBeaulieu,SanjayMishra


Publisher :O'Reilly
PubDate :June2004
ISBN :0-596-00632-2
Pages :492



Copyright

Preface
WhyWeWroteThisBook

What'sNewinOracleSQL?




ObjectivesofThisBook




PlatformandVersion




ConventionsUsedinThisBook





CommentsandQuestions



AudienceforThisBook
StructureofThisBook
UsingCodeExamples
Acknowledgments
Chapter1.IntroductiontoSQL




Section1.1.WhatIsSQL?




Section1.2.ABriefHistoryofSQL




Section1.4.DMLStatements

Section1.3.ASimpleDatabase
Section1.5.SoWhyAreThere17MoreChapters?



Chapter2.TheWHEREClause
Section2.1.LifeWithoutWHERE

Section2.2.WHEREtotheRescue




Section2.3.WHEREClauseEvaluation
Section2.4.ConditionsandExpressions

Section2.5.WHEREtoGofromHere


Chapter3.Joins
Section3.1.WhatIsaJoinQuery?




Section3.2.JoinConditions




Section3.4.JoinsandSubqueries

Section3.3.TypesofJoins
Section3.5.DMLStatementsonaJoinView



Chapter4.GroupOperations
Section4.1.AggregateFunctions

Section4.2.TheGROUPBYClause




Section4.3.TheHAVINGClause
Section4.4.NestedGroupOperations


Chapter5.Subqueries
Section5.1.WhatIsaSubquery?

Section5.2.NoncorrelatedSubqueries




Section5.3.CorrelatedSubqueries
Section5.4.InlineViews

Section5.5.SubqueryCaseStudy:TheTopNPerformers


Chapter6.HandlingTemporalData
Section6.1.TimeZones





Section6.2.TemporalDataTypesinOracle




Section6.4.GettingTemporalDataInandOutofaDatabase

Section6.3.LiteralsofTemporalTypes
Section6.5.DateandTimeFormats

Section6.6.ManipulatingTemporalData


Chapter7.SetOperations
Section7.1.SetOperators




Section7.2.PrecedenceofSetOperators



Section7.4.UsingNULLsinCompoundQueries

Section7.3.ComparingTwoTables




Section7.5.RulesandRestrictionsonSetOperations


Chapter8.HierarchicalQueries
Section8.1.RepresentingHierarchicalInformation




Section8.2.SimpleHierarchyOperations




Section8.4.ComplexHierarchyOperations

Section8.3.OracleSQLExtensions
Section8.5.RestrictionsonHierarchicalQueries

Section8.6.EnhancementsinOracleDatabase10g


Chapter9.DECODEandCASE
Section9.1.DECODE,NULLIF,NVL,andNVL2





Section9.2.TheCaseforCASE
Section9.3.DECODEandCASEExamples


Chapter10.Partitioning
Section10.1.PartitioningConcepts

Section10.2.PartitioningTables




Section10.3.PartitioningIndexes




Section10.5.SpecifyingPartitions

Section10.4.PartitioningMethods
Section10.6.PartitionPruning


Chapter11.PL/SQL
Section11.1.WhatIsPL/SQL?

Section11.2.Procedures,Functions,andPackages





Section11.3.CallingStoredFunctionsfromQueries




Section11.5.StoredFunctionsinDMLStatements

Section11.4.RestrictionsonCallingPL/SQLfromSQL
Section11.6.TheSQLInsideYourPL/SQL


Chapter12.ObjectsandCollections
Section12.1.ObjectTypes

Section12.2.CollectionTypes




Section12.3.CollectionInstantiation




Section12.5.CollectionUnnesting





Section12.7.ComparingCollections

Section12.4.QueryingCollections
Section12.6.CollectionFunctions
Section12.8.ManipulatingCollections

Section12.9.MultilevelCollections


Chapter13.AdvancedGroupOperations
Section13.1.MultipleSummaryLevels



Section13.2.PushingtheGROUPINGEnvelope





Section13.3.TheGROUPING_IDandGROUP_IDFunctions


Chapter14.AdvancedAnalyticSQL
Section14.1.AnalyticSQLOverview

Section14.2.RankingFunctions





Section14.3.WindowingFunctions
Section14.4.ReportingFunctions

Section14.5.Summary


Chapter15.SQLBestPractices
Section15.1.KnowWhentoUseSpecificConstructs




Section15.2.AvoidUnnecessaryParsing
Section15.3.ConsiderLiteralSQLforDecision-SupportSystems


Chapter16.XML
Section16.1.WhatIsXML?

Section16.2.StoringXMLData




Section16.3.GeneratingXMLDocuments
Section16.4.Summary



Chapter17.RegularExpressions
Section17.1.ElementaryRegularExpressionSyntax

Section17.2.AdvancedFunctionOptions

Section17.3.AdvancedRegularExpressionSyntax


Chapter18.ModelQueries
Section18.1.BasicElementsofaModelQuery




Section18.2.CellReferences




Section18.4.IterativeModels

Section18.3.Rules
Section18.5.ReferenceModels


AppendixA.Oracle'sOldJoinSyntax
SectionA.1.OldInnerJoinSyntax

SectionA.2.OldOuterJoinSyntax


SectionA.3.AdvantagesoftheNewJoinSyntax


Colophon

Index


Copyright©2004,2002O'ReillyMedia,Inc.
PrintedintheUnitedStatesofAmerica.
PublishedbyO'ReillyMedia,Inc.,1005GravensteinHighway
North,Sebastopol,CA95472.
O'Reillybooksmaybepurchasedforeducational,business,or
salespromotionaluse.Onlineeditionsarealsoavailablefor
mosttitles().Formoreinformation,
contactourcorporate/institutionalsalesdepartment:(800)
998-9938or
NutshellHandbook,theNutshellHandbooklogo,andthe
O'ReillylogoareregisteredtrademarksofO'ReillyMedia,Inc.
MasteringOracleSQL,theimageoflanternflies,andrelated
tradedressaretrademarksofO'ReillyMedia,Inc.
Oracle®andallOracle-basedtrademarksandlogosare
trademarksorregisteredtrademarksofOracleCorporationin
theUnitedStatesandothercountries.O'ReillyMedia,Inc.,is
independentofOracleCorporation.
Manyofthedesignationsusedbymanufacturersandsellersto
distinguishtheirproductsareclaimedastrademarks.Where
thosedesignationsappearinthisbook,andO'ReillyMedia,Inc.
wasawareofatrademarkclaim,thedesignationshavebeen
printedincapsorinitialcaps.

Whileeveryprecautionhasbeentakeninthepreparationofthis
book,thepublisherandauthorsassumenoresponsibilityfor
errorsoromissions,orfordamagesresultingfromtheuseof
theinformationcontainedherein.


Preface
SQListhelanguageforaccessingarelationaldatabase.SQL
providesasetofstatementsforstoringandretrievingdatato
andfromarelationaldatabase.Ithasgainedsteadilyin
popularityeversincethefirstrelationaldatabasewasunleashed
upontheworld.Otherlanguageshavebeenputforth,butSQL
isnowacceptedasthestandardlanguageforalmostall
relationaldatabaseimplementations,includingOracle.
SQLisdifferentfromotherprogramminglanguagesbecauseit
isnonprocedural.Unlikeprogramsinotherlanguages,where
youspecifythesequenceofstepstobeperformed,aSQL
program(moreappropriatelycalledaSQLstatement)only
expressesthedesiredresult.Theresponsibilityfordetermining
howthedatawillbeprocessedtogeneratethedesiredresultis
lefttothedatabasemanagementsystem.Thenonprocedural
natureofSQLmakesiteasiertoaccessdatainapplication
programs.
IfyouareusinganOracledatabase,SQListheinterfaceyou
usetoaccessthedatastoredinyourdatabase.SQLallowsyou
tocreatedatabasestructuressuchastables(tostoreyour
data),views,andindexes.SQLallowsyoutoinsertdatainto
thedatabase,andtoretrievethatstoreddatainadesired
format(forexample,youmightsortit).Finally,SQLallowsyou
tomodify,delete,andotherwisemanipulateyourstoreddata.

SQListhekeytoeverythingyoudowiththedatabase.It's
importanttoknowhowtogetthemostoutofthatinterface.
MasteryovertheSQLlanguageisoneofthemostvital
requirementsofadatabasedeveloperordatabase
administrator.


WhyWeWroteThisBook
Ourmotivationforwritingthisbookstemsfromourown
experienceslearninghowtousetheOracledatabaseand
Oracle'simplementationoftheSQLlanguage.Oracle'sSQL
documentationconsistsofareferencemanualthatdoesn'tgo
intodetailsaboutthepracticalusefulnessofthevariousSQL
featuresthatOraclesupports.Nordoesthemanualpresent
complex,real-lifeexamples.
WhenwelookedforhelpwithSQLinthecomputerbook
market,wefoundthattherearereallytwotypesofSQLbooks
available.Mostarethereferencetypethatdescribefeatures
andsyntax,butthatdon'ttellyouhowtoapplythatknowledge
toreal-lifeproblems.Theothertypeofbook,veryfew-innumber,discussestheapplicationofSQLinadryand
theoreticalstylewithoutusinganyparticularvendor's
implementation.Sinceeverydatabasevendorimplementstheir
ownvariationofSQL,wefindbooksbasedon"standard"SQLto
beoflimitedusefulness.
Inwritingthisbook,wedecidedtowriteapracticalbook
focusedsquarelyonOracle'sversionofSQL.Oracleisthe
market-leadingdatabase,andit'salsothedatabaseonwhich
we'vehonedourSQLexpertise.Inthisbook,wenotonlycover
themostimportantandusefulofOracle'sSQLfeatures,butwe
showwaystoapplythemtosolvespecificproblems.



What'sNewinOracleSQL?
Whenwewrotethefirsteditionofthisbook,Oracle9ihadjust
comeout,andwemanagedtocoversomeoftheinteresting
andnewfeaturesinthatreleaseofthedatabase.Now,Oracle
Database10ghasjustbeenreleased,andthereareevenmore
newfeaturestotalkabout:
Anew,MODELclausehasbeenaddedtotheSELECT
statement,enablingyoutowritequeriesthatperform
spreadsheet-likecalculationsagainstmultidimensional
arrayscreatedfromdatayouselectfromthedatabase.
Oraclehasaddedsupportforusingregularexpressions
fromSQL,andwithavengeance.Notonlycanyouuse
regularexpressionstoselectdata,butalsotomanipulate
datainvarious,usefulways.Forexample,youcanperform
regularexpressionsearch-and-replaceoperations.Noother
databasevendorthatweknowofofferssuchpowerful,
regularexpressionfunctionality.
XMLiseverywherethesedays,andthathasn'tgone
unnoticedintheworldofSQL.TheANSI/ISOfolkhave
createdtheSQL/XMLstandard,whichdefinesmechanisms
forselectingrelationaldataandpresentingitinXMLform.
Oraclesupportsthisstandard,whichinvolvesseveral,new
SQLfunctions.OraclealsonowsupportsXMLasanative
datatype.
Thesearejustthebigfeatures,which,ofcourse,wecoverin
thissecondedition.Inaddition,wecovermanysmallupdates
toOracleSQL,suchasthemultisetunionoperatorsthatenable
youtoperformsetoperationsinvolvingnestedtablecollections.



Finally,we'veworkedcarefullytogetherasateam,notonly
witheachother,butalsowithoureditor,toensurethatall
examplesinthisbookaredrawnfromasingledataset.You'll
beabletodownloadthatdatasetfromthisbook'scatalog
page.Youcanthenuseittofollowalongwithourexamples.


ObjectivesofThisBook
Thesinglemostimportantobjectiveofthisbookistohelpyou
harnessthepowerofOracleSQLtothemaximumextent
possible.Youwilllearnto:
UnderstandthefeaturesandcapabilitiesoftheSQL
language,asimplementedbyOracle.
UsecomplexSQLfeatures,suchasouterjoins,correlated
subqueries,hierarchicalqueries,groupingoperations,and
analyticalqueries.
UseDECODEandCASEtoimplementconditionallogicin
yourSQLqueries.
WriteSQLstatementsthatoperateagainstpartitions,
objects,andcollections,suchasnestedtablesandvariable
arrays.
UsethenewSQLfeaturesintroducedinOracleDatabase
10g,suchasregularexpressionsandinterrowcalculations.
Usebest-practicestowriteefficient,maintainableSQL
queries.
Onetopicthatisimportanttousandmanyofourreaders,but
whichisnotexplicitlydiscussedinthisbookisSQLtuning.
Tuningtipsaresprinkledthroughoutthebook,butwedonot

includeachapterontuningforthefollowingreasons:
Tuningisalargetopic,andreasonablecoverageofSQL
tuningwouldeasilydoubleortriplethesizeofthisbook.


TherearealreadymanyexcellentOracle-specificand
general-purposetuningbooksonthemarket,whereasthere
areveryfewbooks(inouropinion,exactlyone)that
thoroughlyexplorethefeaturesetofOracleSQL.
Inmanyways,masteryofOracle'sSQLimplementationis
themostimportanttoolinyourtuningtoolkit.
Withthisbookunderyourbelt,youwillbelesslikelytowrite
SQLstatementsthatperformbadly,andyouwillbeableto
employmultiplestrategiestoreworkexistingstatements.


AudienceforThisBook
ThisbookisforOracledevelopers,databaseadministrators,and
anyonewhoneedsaccesstodatastoredinanOracledatabase
forreportingorad-hocanalysis.Whetheryouarenewtothe
worldofdatabasesoraseasonedprofessional,ifyouuseSQL
toaccessanOracledatabase,thisbookisforyou.Whetheryou
usesimplequeriestoaccessdataorembedtheminPL/SQLor
Javaprograms,SQListhecoreofalldataaccesstasksinyour
application.KnowingthepowerandflexibilityofSQLwill
improveyourproductivity,allowingyoutogetmoredoneinless
time,andwithincreasedcertaintythattheSQLstatementsyou
writeareindeedcorrect.



PlatformandVersion
WeusedOracleDatabase10ginwritingthisbook.We've
coveredmanyofOracleDatabase10g'simportantnewSQL
features,includingregularexpressions,hierarchicalquery
features,objectandcollectionfunctionality,andinterrow
calculations.Mostoftheconcepts,syntax,andexamplesapply
toearlierreleasesofOracleaswell.Wespecificallypointout
thenewOracleDatabase10gfeatures.


StructureofThisBook
Thisbookisdividedinto18chaptersand1appendix:
Chapter1,introducestheSQLlanguageanddescribesits
briefhistory.Thischapterisprimarilyforthosereaderswho
havelittleornopriorSQLexperience.You'llfindsimple
examplesofthecoreSQLstatements(SELECT,INSERT,
UPDATE,andDELETE)andofSQL'sbasicfeatures.
Chapter2,describeswaystofilterdatainyourSQL
statements.You'lllearntorestricttheresultsofaqueryto
therowsyouwishtosee,andrestricttheresultsofadata
manipulationstatementtotherowsyouwishtomodify.
Chapter3,describesconstructsusedtoaccessdatafrom
multiple,relatedtables.Theimportantconceptsofinner
joinandouterjoinarediscussedinthischapter.
Chapter4,showsyouhowtogeneratesummary
information,suchastotalsandsubtotals,fromyourdata.
Learnhowtodefinegroupsofrows,andhowtoapply
variousaggregatefunctionstosummarizedatainthose
groups.
Chapter5,showsyouhowtousecorrelatedand

noncorrelatedsubqueriesandinlineviewstosolvecomplex
problemsthatwouldotherwiserequireproceduralcode
togetherwithmorethanonequery.
Chapter6,talksabouthandlingdateandtimeinformation
inanOracledatabase.Learnthetricksandtrapsof
queryingtime-baseddata.


Chapter7,showsyouhowtouseUNION,INTERSECT,and
MINUStocombineresultsfromtwoormoreindependent
componentqueriesintoone.
Chapter8,showsyouhowtostoreandextracthierarchical
information(suchasinanorganizationalchart)froma
relationaltable.Oracleprovidesmanyfeaturestofacilitate
workingwithhierarchicaldata,includingseveralnew
featuresintroducedinOracleDatabase10g.
Chapter9,talksabouttwoverypowerfulyetsimple
featuresofOracleSQLthatenableyoutosimulate
conditionallogicinwhatisotherwiseadeclarative
language.
Chapter10,discussestheissuesinvolvedwithcreatingand
accessingpartitionedtablesusingSQL.LearntowriteSQL
statementsthatoperateonspecificpartitionsand
subpartitions.
Chapter11,explorestheintegrationofSQLandPL/SQL.
ThischapterdescribeshowtocallPL/SQLstoredprocedures
andfunctionsfromSQLstatements,andhowtowrite
efficientSQLstatementswithinPL/SQLprograms.
Chapter12,explorestheobject-orientedaspectsofthe
Oracledatabaseserver,includingobjecttypesand

collections.
Chapter13,dealswithcomplexgroupingoperationsused
mostlyindecisionsupportsystems.Weshowyouhowto
useOraclefeaturessuchasROLLUP,CUBE,andGROUPING
SETStoefficientlygeneratevariouslevelsofsummary
informationrequiredbydecision-supportapplications.We
alsodiscussthegroupingfeaturesthatenablecomposite


andconcatenatedgroupings,includingtheGROUP_IDand
GROUPING_IDfunctions.
Chapter14,dealswithanalyticalqueriesandanalytic
functions.Learnhowtouseranking,windowing,and
reportingfunctionstogeneratedecision-support
information.
Chapter15,talksaboutbestpracticesthatyoushould
followtowriteefficientandmaintainablequeries.Learn
whichSQLconstructsarethemostefficientforagiven
situation.Forexample,wedescribewhenit'sbettertouse
WHEREinsteadofHAVINGtorestrictqueryresults.Wealso
discusstheperformanceimplicationsofusingbindvariables
vis-à-visliteralSQL.
Chapter16,exploreshowtheOracleservercanstoreXML
documents,featuresusedtonavigate,search,andextract
contentfromXMLdocuments,andfunctionsusedto
generateXMLdocumentsfromordinarytables.
Chapter17,showshowtowriteandinterpretregular
expressionsforperformingadvancedtextsearchesand
substitutions.
Chapter18,introducesthenew,MODELclause,whichlets

youmanipulaterelationaldataasifitwereabig,
multidimensional,spreadsheet(Oraclepreferstheterm
model).Modelqueriesenableyoutosolveproblemsusinga
singleSQLstatementthatpreviouslywouldhaverequired
youtodownloaddatatoathird-party,spreadsheetprogram
suchasMicrosoftExcel.
TheAppendix,describestheSQL89joinsyntax,and
Oracle'sproprietary,outer-joinsyntax.Onlythissyntaxwas
availableforjoinsuntilthereleaseofOracle9iDatabase,


whichintroducedsupportforthenewer,andbetter,SQL92
joinsyntax.


ConventionsUsedinThisBook
Thefollowingtypographicalconventionsareusedinthisbook:

Italic
Usedforfilenames,directorynames,tablenames,field
names,andexamplURLs.Itisalsousedforemphasisand
forthefirstuseofatechnicalterm.

Constantwidth
Usedforexamplesandtoshowthecontentsoffilesandthe
outputofcommands.Alsousedforcolumnnames,XML
elementnames,regularexpressions,SQLliteralsmentioned
inthetext,andfunctionnames.

Constantwidthitalic

Usedinsyntaxdescriptionstoindicateuser-defineditems.

Constantwidthbold
Indicatesuserinputinexamplesshowinganinteraction.
Alsoindicatesemphasizedcodeelementstowhichyou
shouldpayparticularattention.

Constantwidthbolditalic


UsedincodeexamplestoemphasizeaspectsoftheSQL
statements,orresults,thatareunderdiscussion.

UPPERCASE
Insyntaxdescriptions,indicateskeywords.

lowercase
Insyntaxdescriptions,indicatesuser-defineditems,such
asvariables.

[]
Insyntaxdescriptions,squarebracketsencloseoptional
items.

{}
Insyntaxdescriptions,curlybracketsencloseasetofitems
fromwhichyoumustchooseonlyone.

|
Insyntaxdescriptions,averticalbarseparatestheitems

enclosedincurlyorsquarebrackets,asin{TRUE|FALSE}.

...


Insyntaxdescriptions,ellipsesindicaterepeatingelements.

Indicatesatip,suggestion,orgeneralnote.Forexample,weusenotes
topointyoutousefulnewfeaturesinOracleDatabase10g.

Indicatesawarningorcaution.Forexample,we'lltellyouifacertain
SQLclausemighthaveunintendedconsequencesifnotusedcarefully.


UsingCodeExamples
Thisbookisheretohelpyougetyourjobdone.Ingeneral,you
mayusethecodeinthisbookinyourprogramsand
documentation.Youdonotneedtocontactusforpermission
unlessyou'rereproducingasignificantportionofthecode.For
example,writingaprogramthatusesseveralchunksofcode
fromthisbookdoesnotrequirepermission.Sellingor
distributingaCD-ROMofexamplesfromO'Reillybooksdoes
requirepermission.Answeringaquestionbycitingthisbook
andquotingexamplecodedoesnotrequirepermission.
Incorporatingasignificantamountofexamplecodefromthis
bookintoyourproduct'sdocumentationdoesrequire
permission.
Weappreciate,butdonotrequire,attribution.Anattribution
usuallyincludesthetitle,author,publisher,andISBN.For
example:"MasteringOracleSQL,SecondEdition,bySanjay

MishraandAlanBeaulieu.Copyright2004O'ReillyMedia,Inc.,
0-596-00632-2."
Ifyoufeelyouruseofcodeexamplesfallsoutsidefairuseor
thepermissiongivenabove,feelfreetocontactusat:



CommentsandQuestions
Wehavetestedandverifiedtheinformationinthisbooktothe
bestofourability,butyoumayfindthatfeatureshavechanged
orthatwehavemademistakes.Ifso,pleasenotifyusby
writingto:
O'ReillyMedia,Inc.
1005GravensteinHighwayNorth
Sebastopol,CA95472
(800)998-9938(intheUnitedStatesorCanada)
(707)829-0515(internationalorlocal)
(707)829-0104(fax)
Youcanalsosendmessageselectronically.Tobeputonthe
mailinglistorrequestacatalog,sendemailto:

Toasktechnicalquestionsorcommentonthebook,sendemail
to:

O'Reillyhasawebsiteforthisbook,whereyoucanfind
examplesanderrata(previouslyreportederrorsandcorrections
areavailableforpublicviewthere).Youcanaccessthispageat:
/>Formoreinformationaboutthisbookandothers,seethe
O'Reillywebsite:




Acknowledgments
Weareindebtedtoagreatmanypeoplewhohavecontributed
inthedevelopmentandproductionofthisbook.Weoweahuge
debtofgratitudetoJonathanGennick,theeditorofthebook.
Jonathan'svisionforthisbook,closeattentiontodetails,and
exceptionaleditingskillsarethereasonsthisbookishere
today.
Oursincerethankstoourtechnicalreviewers:DianaLorentz,
JasonBucata,TrudyPelzer,andPeterLinsley,whogenerously
gavetheirvaluabletimetoreadandcommentonadraftcopy
ofthisbook.Theircontributionshavegreatlyimprovedits
accuracy,readability,andvalue.
Thisbookcertainlywouldnothavebeenpossiblewithoutalot
ofhardworkandsupportfromtheskillfulstaffatO'Reilly,
includingEllieVolckhausenandEmmaColby,thecover
designers;DavidFutato,theinteriordesigner;JulieHawks,who
convertedthefiles;MattHutchinson,theproductioneditor;Rob
RomanoandJessamynRead,theillustrators;andSarah
Sherman,MarloweShaeffer,andClaireCloutier,whoprovided
qualitycontrol.

FromSanjay
IwouldliketothankmycoauthorAlanandmycoauthor/editor
JonathanGennickforconstantcooperationandsmooth
executionduringthefirstaswellasthesecondeditionofthis
book.
MyadventurewithOracle'sdatabasestartedintheTribology
WorkbenchprojectatTataSteel,Jamshedpur,India.Sincere

thankstomyco-workersintheTribologyWorkbenchprojectfor


×