Transcription of Langage SQL - deptinfo.unice.fr
1 Universit deNiceSophia-Antip olisLangage olycopi RichardGrin4janvier2008 Table des mati resPr sentationdup olycopi vi1 Intro ci jetsmanipul esdedonn esnum escha nedecaract estemp 'uneexpression,op ationd' ationd' 'int grit .. , ,di RESiii3 Langagedemanipulationdesdonn di n ralit d n 'unetableavecelle-m non qui .. nesdecaract (CASE).. ' nitiondesdonn esd' n rationdecl c dureetfonctionsto ck c duresto ck ck gesd'acc s ationd'unutilisateur,r mesli sauxacc jourp p titive,ounonrepro ductible,ouinco-h ' ourlesacc fautdesacc cagesexplicitesd' sentation du polycopi Cep olycopi pr osequequelquesconnais-sancesdebaseexp os esdanslep olycopi d'intro ductionauxbasesdedon-n t test savecleSGBDO racle,version10gmaisn'uti-lisentqu'excep tionnellementlesparticularit sdeceSGBD parrapp ,lerelationnel-ob jetetl'interfaceaveclelangageJavasont tudi 'erreursp euvent treenvoy esparcour-rier lectronique l'adresse.
2 Enpr cisantlesujet PolySQL etlaversiondudo sentationdeSQLSQL signi e StructuredQueryLanguage c'est- -dire Langaged'inter-rogationstructur .EnfaitSQLestunlangagecompletdegestionde basesdedonn t con uparIBMdanslesann mesdegestiondebasesdedonn es(SGBD)relationnelles(SGBDR).C'est lafois: unlangaged'interrogationdelabase(ordreSE LECT) unlangagedemanipulationdesdonn es(LMD ;ordresUPDATE,IN-SERT,DELETE) unlangageded nitiondesdonn es(LDD ;ordresCREATE,ALTER,DROP), unlangagedecontr ledel'acc sauxdonn es(LCD ;ordresGRANT,REVOKE).LelangageSQLestutil is parlesprincipauxSGBDR:DB2,Oracle,Informi x,Ingres,RDB,..ChacundecesSGBDR acep ortdecourspr senteunnoyaudecommandesdisp oniblessurl'ensembledecesSGBDR, t normalis d s1986maislespremi resnormes,tropincompl tes,ont t ignor esparles (app el eaussiSQL92) EntryLevel est p eupr sresp ect partouslesSGBD relationnelsquidominentactuellementlemar ch.
3 SQL-2d nittroisniveaux: FullSQL(ensembledelanorme) IntermediateSQL EntryLevel(ensembleminimum resp ecterp oursedire lanormeSQL-2)SQL3(app el eaussiSQL99) cesnormes,ilexistedesdi rencesnonn gligeablesentrelessyntaxesetfonctionnali t sdesdi quence, crireduco dep ortablen'estpastoujourssimpledansledomai nedesbasesdedonn ci sCommetouslesautresSGBD,Oraclefournitplu sieursutilitairesquifaci-litentl'emploid ulangageSQLetled velopp ementd'applicationsdegestions'appuyantsu runebasededonn alisationdestraitementse ectu sp endantlasaisieoulamo di cationdesdonn eseninteractifparl' ermetdedessinerles cransdesaisieetd'indiquerlestraitementsa sso ci s 'autresutilitairesp ermettentded crireles tatsdesortiesimprim s,desauvegarderlesdonn es,d' changerdesdonn esavecd'autreslogiciels,detravaillerenr seauoudeconstituerdesbasesdedonn esr l' tudedulangageSQL,nousn' eretfaireex cuterdescommandesSQL.
4 Less ancesdetravauxpratiquesutiliserontsoitun p etitutilitaire,SQL*PLUS,fourniparOracle, soitunutilitairegratuitquel'onp eutr -cup rergratuitementsurleWebetquip ermetd'envoyerdescommandesSQL euvent tretap esdirectementaucla-vierparl'utilisateuro up euvent treinclusesdansunprogramme critdansunlangagedetroisi meg n ration(Java,LangageC,Fortran,Cob ol,Ada,..)gr ce unpr compilateurouunelibrairied'acc connexionOnentredansSQL* SPARSQL3 SQLPLUSnom/mot-de-passeLesdeuxparam tres,nometmot-de-passe, ,SQL*PLUS lesdemandera,cequiestpr f rablep ourmot-de-passecarunecommande ps sousUnixp ermetdevisualiserlesparam tresd' ,lavariabled' connecter,l'ordreSQL tap erestEXIT(ouexitcaronp euttap erlescommandesSQLenma jusculesouenminuscules). jetsmanipul cateursSQLutilisedesidenti cateursp ourd signerlesob jetsqu'ilmanipule:utilisateurs,tables,co lonnes,index,fonctions, cateurestunmotform d'auplus30caract res,commen antobligatoirementparunelettredel'alphab ressuivantsp euvent treunelettre,unchi re,oul'undessymb oles# $ renceentreleslettresminusculesetma esnesontpasaccept cateurnedoitpas gurerdanslalistedesmotcl sr serv s(voirmanuelder f renceOracle).
5 Voiciquelquesmotscl squel'onrisqued'utilisercommeidenti cateurs:ASSERT,ASSIGN,AUDIT,COMMENT,DATE ,DECIMAL,DEFINITION,FILE,FORMAT,INDEX,LI ST,MODE,OP-TION,PARTITION,PRIVILEGES,PUB LIC,REF,REFERENCES,SE-LECT,SEQUENCE,SESS ION,SET,TABLE, (d'unsch marelationnel ;voirp olycopi ducourssurlemo d lerelationnel)sontsto ck essousformedetablescomp os eparunautreutilisateur,ilfautsp ci (a)SelonlanormeSQL-2,lenomd'unetabledevr ait trepr c d d'unnomdesch ma( ). (b)Ilestd'usage(maisnonobligatoire videmment)demettrelesnomsdetableausingul ier:plut tEMPLOYEqueEMPLOYESp ourunetabled'employ partements:DEPTNOMDLIEU10 FINANCESPARIS20 RECHERCHEGRENOBLE30 VENTELYON40 FABRICATIONROUENT ableDUALC'estuneparticularit d' 'uneseuleligneetuneseulecolonneetnep eut treutilis equ'avecunerequ te select.
6 Ellep ermetdefairea cheruneexpressiondontlavaleurned p endd' cherladated'aujourd'hui,lenomdel'utilisa teuretler sultatd'uncalcul:select sysdate, user, round(3676 / 7) from escontenuesdansunecolonnedoivent tretoutesd'unm metyp ededonn eestindiqu aumomentdelacr ationdelatablequicontientlacolonne( ).Chaquecolonneestrep r eparunidenti cateurunique l'int rentesp euventp orterlem quentdedonnerlem menom deuxcolonnesdedeuxtablesdi renteslorsqu'ellescorresp ondent unecl trang re lacl primairer f renc ,lacolonne Dept eutp orterlem 'unecolonneestenfaitceluidesatable,suivi d'unp , eut treomisquandiln'yapasd'ambigu t surlatable laquelleelleappartient,cequiestg n esdedonn esnum riquesTyp esnum riquesSQL-2 Lestyp esnum riquesdelanormeSQL-2sont: Nombresentiers:SMALLINT(sur2o ctets, ),IN-TEGER(sur4o ctets, ).
7 Nombresd cimauxavecunnombre xeded cimales:NUMERIC,DECIMAL(lanormeimp ose NUMERICd' treimplant avecexac-tementlenombreded cimalesindiqu alorsquel'implantationdeDE-CIMALp eutavoirplusded cimales):DECIMAL(p,d)corresp ond desnombresd cimauxquiontpchi ressigni catifsetdchi resapr slavirgule ;NUMERIC alam mesyntaxe. Num riquesnonexacts virgule ottante:REAL(simplepr cision,avecaumoins7chi ressigni catifs),DOUBLE PRECISION ou FLOAT(doublepr cision,avecaumoins15chi ressigni catifs).Lad nitiondestyp esnonentiersd p endduSGBD(lenombredechi ressigni catifsvarie).Rep ortez-vousaumanuelduSGBD quevousutilisezp ourplusdepr eBITp ermetderangerunevaleurb o ol enne(unbit) (8,2)d nitunecolonnenum cimaleset8chi resauplusautotal(donc6chi resavantlep ointd cimal).
8 Lesconstantesnum riquesontleformathabituel:-10, , (cedernierrepr 8).Typ enum riqued'OracleOraclen'aqu'unseultyp enum ,Oraclep ermetd'utiliserlestyp esSQL-2maisilssontramen sautyp nitiond'unecolonnedetyp enum rique,onp eutpr ciserlenombremaximumdechi resetded cimalesqu'unevaleurdecettecolonnep ourracontenir:NUMBERNUMBER(tail le_maxi)NUMBER(tail le_maxi,d cimales) tred cimalesn'estpassp ci ,0estprispard treinf rieure virgule ottante(onnepr cisepaslenombredechi resapr slavirgule)quip eutavoirjusqu' 38chi ressigni 'insertiond'unnombreavecplusdechi resquetail le_maxiserarefus e(tail le_maxineprendencomptenilesignenilep ointd cimal).Lesd ci-malesseront ventuellementarrondiesenfonctiondesvaleu rsdonn esp ourtail le_maxietd escha nedecaract resTyp escha nedecaract resdeSQL-2 Lesconstantescha nesdecaract ressontentour espardesap ostrophes(').
9 Silacha necontientuneap ostrophe,celle-cidoit tredoubl :'aujourd''hui'.Ilexistedeuxtyp esp ourlescolonnesquicontiennentdescha nesdecaract res: letyp eCHARp ourlescolonnesquicontiennentdescha clarationdetyp echa nedecaract resdelongueurconstantealeformatsuivant:C HAR(longueur)o longueurestlalongueurmaximale(ennombrede caract res)qu'ilserap ossibledesto ckerdanslechamp ;pard faut,longueurest gale 'insertiond'unecha nedontlalongueurestsup rieure longueurserarefus nepluscourtequelongueurseracompl t epardesespaces(imp ortantp ourlescomparaisonsdecha nes).TouslesSGBDimp osentunevaleurmaximump ourlongueur(255p ourOracle). letyp eVARCHARp ourlescolonnesquicontiennentdescha clarecescolonnespar:VARCHAR(longueur)lon gueurindiquelalongueurmaximaledescha osentunevaleurmaximump ourlongueur(plusieursmilliersdecaract res).
10 Typ escha nedecaract resd'OracleLestyp esOraclesontlestyp esSQL-2maisletyp eVARCHARs'app elleVARCHAR2dansOracle(lataillemaximumes tde2000caract res). estemp orelsTyp estemp orelsSQL-2 Lestyp estemp orelsdeSQL-2sont:DATEr serve2chi resp ourlemoisetlejouret4p ourl'ann e ;TIMEp ourlesheures,minutesetsecondes(lessecond esp euventcomp orteruncertainnombreded cimales) ;TIMESTAMPp ermetd'indiquerunmomentpr cisparunedateavecheures,minutesetseconde s(6chi resapr slavirgule ;c'est- -direenmicrosecondes) ;INTERVALp ermetd' estemp orelsd'OracleOracleo reletyp eDATE commeenSQL-2maisp ourOracleunedonn edetyp eDATE inclutuntempsenheures, e date estunecha nedecaract resentreap p enddesoptionsquel'administrateurachoisie saumomentdelacr 'ilachoiside franciser labase,lefor-matd'unedateest jour/mois/ann e ,parexemple,'25/11/1992'(leformat am ricain pard fautdonnerait'25-NOV-1992').