sql structured query language

Download SQL Structured Query Language

Post on 24-Jan-2016

89 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

SQL Structured Query Language. Introduction Interrogation simple Création de table Manipulation des n-uplets. Introduction. Questions ? Qu’est ce que Structured Query Language ? Comment l’utiliser ?. SQL. Définition Langage pour accéder aux données gérées par les SGBD - PowerPoint PPT Presentation

TRANSCRIPT

  • SQL Structured Query LanguageIntroductionInterrogation simpleCration de tableManipulation des n-uplets

    ISI 204

  • IntroductionQuestions ?Quest ce que Structured Query Language ?Comment lutiliser ?

    ISI 204

  • SQLDfinitionLangage pour accder aux donnes gres par les SGBDPeut tre associ avec dautres langages (c++, java, PHP, ), Encapsulation de SQL dans un autre langageLangage dclaratif (non procdural) driv du calcul relationneldclarer ce que lon veutLangage standardChaque implmentation de SQL a de lgres variantes

    ISI 204

  • SQL3 sous langagesLangage de Manipulation de Donnes (LMD)Permet dinsrer des n-uplets, de modifier leur valeur, de les supprimerPermet dinterroger le SGBD : requtesLangage de dfinition de donnes (LDD)Permet de crer des tables de les modifier et les supprimer de les renommerLangage de contrle de donnes (LCD)Permet de grer le contrle daccs aux donnes des diffrents utilisateurs

    ISI 204

  • SQLVuePermet de dfinir des reprsentations pour diffrents utilisateursContraintePermet de dfinir des contraintes sur les valeurs des donnesIndexation et regroupement (cluster)Permet dutiliser des mcanisme pour acclrer laccs aux donnes TransactionPermet de regrouper des commandes SQLPermet de dfinir des points de retour des moments ou les valeurs des donnes taient cohrentes

    ISI 204

  • Tables dexemplesTable EMPLa table des employs EMP qui a le schma suivantEMP (NUMERO, NOM, JOB, MRG, HIREDATE, SALAIRE, COMM, DEPTNO)Table DEPLa table des dpartements DEPT qui a le schma suivantDEPT (DEPTNO, DNAME, LOC)

    ISI 204

  • Table dexemple : EMP

    ISI 204

  • Table dexemple : DEPT

    ISI 204

  • Requtes simplesSelect from where

    ISI 204

  • Manipulation de donnesRecherche dinformation : requte (Queries)SELECT colonnes FROM tablesWHERE prdicats (condition de recherche)Stockage de donnesINSERT INTO table [col1, col2, ..., coln]VALUES (value1, value2, ..., valuen)

    ISI 204

  • La slection de n-upletsPermet de slectionner certaines colonnes d'une table, ainsi que certaines lignes d'une table (les lignes tant slectionnes en fonction de leur contenu). Permet de combiner des informations venant de plusieurs tables.

    ISI 204

  • RequteSyntaxe globale select [distinct] { ' [nom table.]nom _col1 [,nom _col2 ...] } from ( nom table [, nom table2] } [where prdicat] [group by nom _col3 [, nom _col4] [having prdicat] ] [order by nom _col5 [desc] [,nom _col6 [desc] ...] [ ] facultatifTraductionSlection des colonnes des tables qui rpondent la condition regroup par groupes qui rpondent la condition sur les groupes ordonn suivant les valeurs des colonnes

    ISI 204

  • Slection des colonnes (1)L'ordre le plus simple a la syntaxe suivante : select * from nom_table. Dans ce cas, toutes les lignes de la table sont slectionnes.

    Limitation de la slection certaines colonnes, en indiquant une liste de noms de colonnes la place de l'astrisque select col1 co12 ... from nom_tableDans ce cas, on parlera projectionexemple : slectionner les noms des employs avec leur JOB associ. select ENAME JOB from EMP;

    ISI 204

  • Slection des colonnes (2)La clause DISTINCT ajoute derrire l'ordre SELECT permet d'liminer les duplications si dans le rsultat plusieurs n-uplets sont identiques, un seul sera conserv.exemple : lister les jobs prsents dans la table EMP. select DISTINCT JOB from EMP;Remarque : le terme DISTINCT s'applique toutes les colonnes slectionnes.

    ISI 204

  • Slection des lignes (1)La clause WHERE permet de spcifier quelles sont les lignes slectionner.Cette clause est suivie d'un prdicat qui sera valu pour chaque ligne de la table. Seules les lignes pour lesquelles le prdicat est vrai seront slectionnes. Dans ce cas, on parlera de restrictionSyntaxeselect from nom_table where prdicat

    ISI 204

  • Slection des lignes (2)Un prdicat une expression logique ayant la valeur vrai ou faux. L'expression logique peut contenir desOprateurs de comparaisonsOprateurs logiques AND, OR NOTBETWEENLIKEIS NULL

    ISI 204

  • Oprateurs de comparaisonsOprateurs de comparaisons :=, !=, >, >=,
  • Oprateurs logiquesOprateurs logiques AND, ORLes oprateurs AND et OR peuvent tre utiliss pour combiner plusieurs prdicats. Exerciceslectionner les employs du dpartement 30 ayant un salaire suprieur 1500.

    Remarque :L'oprateur AND est prioritaire par rapport OR. Des parenthses peuvent tre utilises

    ISI 204

  • Oprateurs NOT, BETWEEN et INL'oprateur NOT plac devant un prdicat en inverse le sens.Oprateur BETWEEN expr1 BETWEEN expr2 AND expr3Ce prdicat est vrai si expr1 est compris entre expr2 et expr3, bornes incluses.Oprateur IN :expr1 IN ( expr2, expr3 ....)Ce prdicat est vrai si expr1 est gale l'une des expressions de la liste entre parenthses.

    ISI 204

  • Oprateurs LIKE et IS NULLOprateur LIKEexpr LIKE chaneo chaque chane est une chane de caractres pouvant contenir l'un des caractres jokers"_" : remplace 1 caractre exactement."%" : remplace une chane de caractres de longueur quelconque, y compris de longueur nulle.Oprateur IS NULL expr IS NULLCe prdicat est vrai si l'expression la valeur NULL

    ISI 204

  • OprateursExempleslectionner les employs qui ont t embauchs en 1981syntaxeselect ENAME, HIREDATE from EMPwhrere HIREDATE like '%%81';

    ExerciceSlectionner tous les employs qui ont une commission ?Slectionner les employs qui ont un salaire infrieur 1200 parmi les clerks et les salesmans.

    ISI 204

  • Les expressions (1)Une expression est soit une variable dsigne par un nom de colonne, une constante. Types des expressions numriqueCaractredate

    ISI 204

  • Les expressions (2)Constante numrique : nombre contenant ventuellement un signe, un point dcimal et un exposant de puissance de dix. Exemple : 10, 2.5, 1.2 E10Constante alphanumrique : elle se dsigne par une chane de caractres entre apostrophes. Exemple 'MARTIN'.Attention majuscule minusculeMARTIN martin Martin

    ISI 204

  • Les expressions (3)Constante date : elle se dsigne par une chane de caractres au format suivantjourmoisanne. jour sur deux chiffresle mois est dsign par les trois premires lettres de son nom en anglaisl'anne est sur deux chiffresExemple '1FEB85Le format est modifiable

    ISI 204

  • Classement des n-uplets slectionns (1)On peut, grce au mot cl ORDER BY, imposer un ordre dans une requte. Cet ordre peut porter sur une ou plusieurs colonnes. II peut tre croissant ou dcroissant.La clause ORDER BY devra tre place derrire la clause FROM, et aprs la clause WHERE si elle existe.Syntaxeselect col1 , col2 ... from nom table where prdicat order by col1 [DESC], col2 [DESC] ...Le tri se fait d'abord selon la premire colonne spcifie dans l'ORDER BY, puis les n-uplets ayant la mme valeur dans la premire colonne sont tris selon la deuxime colonne de l'ORDER BY, ....

    ISI 204

  • Classement des n-uplets slectionns (2)Exercicesslectionner par ordre croissant tous les employs qui ont t embauch entre le 1ier Dcembre 1980 et le 31 Mars 1981.slectionner les employs tris par job, et pour chaque job tris par salaire dcroissant.

    ISI 204

  • La JointureLa jointure permet d'obtenir des informations venant de plusieurs tables dans un mme n-uplet rsultat.Il existe plusieurs type de jointuresl'quijointureLa jointure externeLa jointure d'une table ellemme

    ISI 204

  • Equijointure (1)Une jointure se formule en spcifiant plusieurs tables dans la clause FROM du SELECT.Syntaxeselect ... from nom_table1, nom_table2 ...Where Si aucune condition de slection WHERE, rsultat est le produit cartsien des deux tables, Dans notre exemple, EMP et DEPT peuvent tre "relies" par l'attribut DEPTNO. C'est en utilisant cet attribut que l'on pourra effectuer une jointure.

    ISI 204

  • Equijointure (2)Si l'attribut, qui dsigne le numro de dpartement, a le mme nom dans les deux tables, il ait ncessaire de prfixer l'attribut DEPTNO par le nom de la table dans le critre de jointure. dept.deptno et emp.deptnoPar contre, le nom des attributs ENAME et LOC n'ont pas besoin d'tre prfixs puisqu'il n'y a pas d'ambigut sur la table laquelle ces attributs appartiennent.

    ISI 204

  • Equijointure (3)PersonnesSELECT Personnes.prnom, dernierlivreFROM Personnes, BibliothqueWHERE Personnes.nom = Bibliothque.nomOn joint les deux tables, grce la colonne nom.Et on combine cette jointure une projection sur les attributs nom et dernierlivre.Attention lever toute ambi-gut sur les noms dattribut dans le cas o deux tables possdent des colonnes de mme nom.Bibliothque

    nomprnomadressetlphoneMartinPierre7 alle des vers0258941236DupondJean32 all Poivrot0526389152

    ISI 204

  • Equijointure (4)Les requtes utilisant trs souvent les jointures, il a t cr des syntaxes plus rapide si les attributs ont le mme nom.SyntaxeSELECT Personnes.nom, nblivresFROM Personnes INNER JOIN BibliothqueUSING (nom)ce qui signifie que les deux relations Personnes et Bibliothque sont concatnes (INNER JOIN) en utilisant (USING) lattribut nom.

    ISI 204

  • Equijointure (5)Si les attributs servant pour la jointure ne portent pas le mme nom, il faut utiliser la syntaxe ON.Ainsi la jointure prcdente peut scrire aussi :SELECT Personnes.nom, nblivresFROM Personnes INNER JOIN BibliothqueON Personnes.nom = Bibliothque. emprunteur RemarqueLa mthode INNER JOIN ninclus les enregistrements de la premire table que sils ont une correspondance dans la seconde table.

    PersonnesBibliothqueRsultat de la jointure

    NomPrnomMartinJeanTartanPionDupondJacques

    EmprunteurNblivresMartine5Tartan10Dupond3

    NomNblivresTartan10Dupond3

    ISI 204

  • Equijointure (

Recommended

View more >