Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Chapitre II.1] – SQL : Langage de manipulation de données
Auteur Message
Répondre en citant
Message [Chapitre II.1] – SQL : Langage de manipulation de données 

1) Présentation

SQL (Structured Query Language) est un langage qui permet de dialoguer avec les systèmes de gestion de base de données relationnels (SGBDR) (comme MS-Acces).
Ce langage est reconnu par l’ANSI comme LE langage de requêtes officiel pour les systèmes relationnels. Il a été conçu à l’origine par IBM.

SQL permet la création de DB et d’objets de DB, d’y ajouter ou d’en extraire des données, de modifier des données existantes, mais aussi d’utiliser d’autres fonctions complexes. Il est aussi possible de modifier la configuration serveur, les options de DB ou de session ou encore de contrôler les instructions relatives aux données et à l’accès aux données.


Résumé : La triple fonction d’SQL sur une DB :

Définition et modification du schéma (grâce au langage de définition des données (DDL))
Interrogation et modification (grâce au langage de manipulation des données (DML))
Contrôle de sécurité et d’intégrité (Grâce au langage de contrôle des données (DCL))


Notations utilisés lors de l’écriture des ordres SQL

Les mots réservés SQL sont imprimés en caractères majuscules.
Les noms symbolique ou expressions spécifiques à écrire par le programme sont imprimés en caractères minuscules.
Les expressions facultatives sont éditées entre crochets [].
Lorsqu’on peut choisir entre plusieurs expressions mais que au moins l’une d’elle est obligatoire, elles sont regroupées entre accolades {}.
L’alternative entre expressions est symbolisée par un pipe | .



Représentation textuelle

Citation:
Fournisseurs(NumFour, NomFour, AdrFour, VilleFour, ContactFour, FonctionFour)
Clé primaire : NumFour

Produits(RefProd, NomProd, PrixU, NumFour*, CodeCat*)
Clé primaire : RefProd
Clés étrangères : CodeCat, NumFour

Categorie(CodeCat, NomCat, Description, Illustration)
Clé primaire : CodeCat

DetailsCdes(RefProd*, NumCde*, PUVente, Quantite, Remise)
Clé primaire : RefProd, NumCde
Clés étrangères : Refprod, NumCde

Commandes(NumCde, DateCde, DateLimLiv, CodeCli*, NumEmp*)
Clé primaire : NumCde
Clés étrangères : CodeCli, NumEmp

Clients(CodeCli, NomCli, PrenmCli, AdrCli, VilleCli, CpCli, TelCli, FaxCli)
Clé primaire : CodeCli

Employes(NumEmp, NomEmp, PrnmEmp, FctEmp, Titre)
Clé primaire : NumEmp



Représentation graphique



2) Le langage de manipulation de données.

2.1) La projection.

2.1.a) Choix des colonnes.

La projection consiste a extraire les colonnes spécifiées d’une table éventuellement en éliminant les doublons.

Syntaxe
Code:
SELECT [ALL|DISTINCT] {[colonne1 [,colonne2, …]] | * }
FROM nomtable;


ALL est l’option par défaut, elle affiche toutes les lignes même les doublons, utiliser DISTINCT pour ne pas prendre en compte les doublons.


Exemples

Code:
SELECT * FROM produits;

Affiche toutes les lignes et toutes les colonnes (*) de la table produits dans la DB comptoirs (voir annexe).

Code:
SELECT refprod, nomprod, prixu
FROM produits;

Affiche toutes les lignes et uniquement un sous ensemble des colonnes (refprod, nomprod, prixu) de la table produits dans la DB comptoirs

Code:
SELECT DISTINCT codecli
FROM comandes;

Liste des codes clients ayant déjà commandé, sans doublons.

Code:
SELECT DISTINCT numemp, nomemp
FROM employes;

Utilisation inutile de DISTINCT, puisqu’il n’y aura jamais de doublons ici.



II.1.b) Exercice

Liste des produits commandés (ref)
Liste des fonctions des fournisseurs
Liste des clients avec toutes leurs informations
Liste des employés (num) reponsables d’une commande





II.1.c) Titre des colonnes

Lorsque les résultats des requêtes sont affichés, le titre des colonnes est affiché par défaut par le titre que cette dernière a depuis sa création.

Pour obtenir un meilleur résultat, vous pouvez choisir un autre titre de colonne grâce à l’instruction AS.

Par exemple, pour remplacer le nom d’une des requêtes précédente :
Code:
SELECT nomprod AS ‘Nom du produit’, refprod
FROM produits;


Nous obtenons :
Désignation 

RefProd 

 Tourtière
 54
 Pâté
 55
 Ravioli
 57



Il est aussi possible d’utiliser des opérateurs arithmétiques pour effectuer des calcul impliquant colonnes et/ou constantes (+,-,*,/) :
Code:
SELECT refprod, nomprod, prixu*1,196 AS ‘Prix Unitaire TTC’
FROM produits;




II.1.d) Exercice

Afficher la liste des catégories
Afficher la liste des commandes (num) avec la remise accordée pour chaque produit (en indiquant la ref)
Liste des clients (code) ayant passé une commande
Liste des commandes : Numéro, Référence des produits, qté, prix de vente unitaire avec le montant remisé pour chaque produit (donner un nom a la colonne calculée)





II.2) Restrictions

II.2.a) La clause WHERE



La clause WHERE spécifie les critères des lignes à extraire.

Syntaxe :
Code:
SELECT *
FROM table
WHERE condition;


Par exemple, pour fournir la liste des produits de catégorie 3 :
Code:
SELECT *
FROM produits
WHERE codecat=3;


La même requête avec l’affichage du nom du produit et du prix unitaire s’écrit :
Code:
SELECT nomprod, prixu
FROM produits
WHERE codecat=3;


De manière plus générale, WHERE peut inclure :

Des opérateurs de comparaison (=,<>,>,<)
Code:
WHERE remise>0,1


Des intervalles (BETWEEN, NOT BETWEEN)
Code:
WHERE remise BETWEEN 0,1 AND 0,2


Des listes (IN, NOT IN)
Code:
WHERE nomcat IN (‘HIFI’,’INFO’,’VIDEO’)


Des concordances avec des modèles (LIKE, NOT LIKE) (non valable pour les dates)
Vous pouvez utiliser les caractères génériques suivant : « % » ( 0 à n caractères ( comme * ) ) et «  _ » (remplace un caractère et un seul (comme un jeton))
Code:
WHERE cpfour LIKE ‘75%'


Des tests pour vérifications de renseignement des champs (IS NULL, IS NOT NULL)
Code:
WHERE remise IS NULL


Des combinaisons de critères (AND, OR)
Code:
WHERE remise>0,1 AND remise <0,2


Les opérateurs ANY et ALL (utilisés dans les sous-requêtes)



Exemple montrant toutes les informations contenues dans la table DetailsCommandes où le PUVente d’une produit vendu est supérieur à 20€ :
Code:
SELECT *
FROM detailscommandes
WHERE puvente>20;



Autre exemple fournissant seulement les lignes pour lesquelles une remise à été faite :
Code:
SELECT *
FROM detailscommandes
WHERE remise IS NOT NULL;


II.2.b) Exercices
Listes des commandes avec une remise entre 5 et 10 %
Liste des clients (nom, tel, cp, ville) qui habite le département 45 ainsi que le 41
Liste des produits (ref, nom) vendus le fournisseur 123
Liste des commandes passées en septembre 2015


II.3) Tri du resultat

II.3.a) ORDER BY


En cours (...)




______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch