Bases de données HEDFI SOUHIR Page 1 Chapitre 4 : SQL (Structured Query Languag
Bases de données HEDFI SOUHIR Page 1 Chapitre 4 : SQL (Structured Query Language) 1- Définition: C’est le langage d'interrogation Structuré. En fait SQL est un langage complet de gestion de bases de données relationnelles. Il a été conçu par IBM dans les années 70. Il est devenu le langage standard des systèmes de gestion de bases de données (SGBD) relationnelles (SGBDR). C'est à la fois : • Un langage de définition des données (LDD) ordres CREATE, ALTER, DROP • Un langage de manipulation des données (LMD) ordres UPDATE, INSERT, DELETE • Un langage d'interrogation de la base (ordre SELECT) 2- LDD 2.1) La création d'une table L'ordre CREATE TABLE permet de créer une table en définissant le nom, le type de chacune des colonnes de la table ainsi que les contraintes. Une syntaxe simplifiée est la suivante : CREATE TABLE nom_table { ( nom-col type-col [DEFAULT val] [ [CONSTRAINT] contrainte-col] )* [ [CONSTRAINT] contrainte-table] }; Exemples : CREATE TABLE Clients (ncin NUMBER(8), nom VARCHAR(20) NOT NULL, prénom VARCHAR(15), adresse VARCHAR(20), CONSTRAINT PK_cl PRIMARY KEY (ncin)) ; CREATE TABLE Commandes (num_com NUMBER, date_com DATE, ncin NUMBER(8), CONSTRAINT PK_com PRIMARY KEY (num_com), CONSTRAINT FK_com FOREIGN KEY (ncin) REFERENCES Clients(ncin), CONSTRAINT CK_com CHECK (num_com between 1 and 999)); Bases de données HEDFI SOUHIR Page 2 2.1.1) Les types : A-) Les nombres entiers On peut ajouter l’attribut « unsigned » pour indiquer que votre nombre n’est pas signé. B-) Les nombres décimaux : Cinq mots-clés permettent de stocker des nombres décimaux dans une colonne : DECIMAL, NUMERIC, FLOAT, REAL et DOUBLE. • NUMERIC et DECIMAL sont équivalents et acceptent deux paramètres : la précision et l'échelle. Exemple : DECIMAL(5,3) • Le mot-clé FLOAT peut s'utiliser sans paramètre, auquel cas quatre octets sont utilisés pour stocker les valeurs de la colonne. Il est cependant possible de spécifier une précision et une échelle, de la même manière que pour DECIMAL et NUMERIC. • Quant à REAL et DOUBLE, ils ne supportent pas de paramètres. DOUBLE est normalement plus précis que REAL C-) Les types alphanumériques : Pour stocker un texte relativement court (moins de 255 caractères), vous pouvez utiliser les types CHAR et VARCHAR. Ces deux types s'utilisent avec un paramètre qui précise la taille que peut prendre votre texte (entre 1 et 255). La différence entre CHAR et VARCHAR est la manière dont ils sont stockés en mémoire. Un CHAR(x) stockera toujours x caractères, en remplissant si nécessaire le texte avec des espaces vides pour le compléter, tandis qu'un VARCHAR(x) stockera jusqu'à x caractères (entre 0 et x), et stockera en plus en mémoire la taille du texte stocké. D-) Texte >255 caractères Bases de données HEDFI SOUHIR Page 3 E-) Chaînes de type binaire Les types binaires sont définis de la même façon que les types de chaînes de texte. VARBINARY(x) et BINARY(x) permettent de stocker des chaînes binaires de x caractères maximum (avec une gestion de la mémoire identique à VARCHAR(x) et CHAR(x)). Pour les chaînes plus longues, il existe les types TINYBLOB, BLOB, MEDIUMBLOB et LONGBLOB. E-) Date et heure Exemples DATE : • 'AAAA-MM-JJ' (c'est sous ce format-ci qu'une DATE est stockée dans MySQL) • 'AAMMJJ' • 'AAAA/MM/JJ' • 'AA+MM+JJ' • 'AAAA%MM%JJ' • AAAAMMJJ (nombre) • AAMMJJ (nombre) Exemples : TIME • 'HH:MM:SS' • 'HHH:MM:SS' • 'MM:SS' • 'J HH:MM:SS' • 'HHMMSS' • HHMMSS (nombre) Exemple DATETIME : • 'AAAA-MM-JJ HH:MM:SS' • 'AA*MM*JJ HH+MM+SS' • AAAAMMJJHHMMSS (nombre) Bases de données HEDFI SOUHIR Page 4 2.2) La modification d'une table L'ordre ALTER TABLE permet de modifier la définition d’une table. Sa syntaxe est la suivante : ALTER TABLE nom-table { RENAME TO nouveau-nom-table | ADD ( [ (nom-col type-col [DEFAULT valeur] [contrainte-col])* ] | MODIFY (nom-col [type-col] [DEFAULT valeur] [contrainte-col])*| DROP COLUMN nom-col [CASCADE CONSTRAINTS] | RENAME COLUMN old-name TO new-name }; Exemples : • ALTER TABLE Clients RENAME TO LESCLIENTS ; • ALTER TABLE LESCLIENTS ADD (age NUMBER(3) CHECK (age < 150), taille NUMBER(3,2)); • ALTER TABLE LESCLIENTS MODIFY (age NUMBER CHECK (age BETWEEN 15 and 150)); • ALTER TABLE LESCLIENTS DROP COLUMN taille CASCADE CONSTRAINTS; • ALTER TABLE LESCLIENTS RENAME COLUMN age TO age_cli; 2.3) Suppression d'une table L'ordre DROP TABLE permet de supprimer une table et tout son contenu. Sa syntaxe est la suivante : DROP TABLE nom_table [CASCADE CONSTRAINTS]; CASCADE CONSTRAINTS • Supprime toutes les contraintes de clé externeυ référençant cette table • Si on cherche à détruire une table dont certainsυ attributs sont référencés sans spécifier CASCADE CONSTRAINT: refus Exemples : DROP TABLE Commandes CASCADE CONSTRAINTS; 3. LMD Une fois les tables créées, on peut commencer à y insérer des données, les mettre à jour, les supprimer. Toutes ces opérations sont des opérations de manipulation des bases de données. Pour effectuer ces manipulations, SQL dispose de 3 instructions : INSERT UPDATE DELETE 3.1) Insérer des données La commande INSERT est utilisée pour ajouter des enregistrements ou des parties d'enregistrements dans des tables. Elle est utilisée généralement sous deux formes : 1ère forme : INSERT INTO table [(liste d’attributs)] VALUES (liste des valeurs) ; Bases de données HEDFI SOUHIR Page 5 2ème forme : INSERT INTO table [(liste d’attributs)] {requête SQL} ; Exemples : Soit la table CLIENT (CodeClt, NomClt, AdrClt, TelClt) A-Insérer le client suivant dans la table client : « 100, Karray, Tunis, 98111222 ». INSERT INTO Client (CodeClt, NomClt, AdrClt, TelClt) VALUES (100, 'Karray', 'Tunis', 98111222); B-Insérer tous les clients de kairouan dans la table “Client_Kr” déjà crée. INSERT INTO Client_kr SELECT * FROM Client WHERE AdrClt = 'Kairouan'; 3.2) Modifier des données La commande UPDATE est utilisée pour mettre à jour les valeurs des champs dans des tables. Sa syntaxe est : UPDATE table SET champ1 = nouvelle_valeur1, champ2 = nouvelle_valeur2, champ3 = nouvelle_valeur3 {WHERE condition}; Exemples : Soit la table PRODUIT (RefProd, LibProd, PrixU, Stock) A-Modifier les prix de tous les produits. Le nouveau prix = 1000. UPDATE Produit SET PrixU = 1000 ; B-Modifier les prix de tous les produits dont le stock est supérieur à 25. (PrixU = PrixU *1.1) UPDATE Produit SET PrixU = PrixU * 1.1 WHERE Stock > 25 ; C-Modifier la quantité en stock des produits dont le prix est inférieur à la moyenne des prix. (Stock= Stock – 10). UPDATE Produit SET Stock = Stock – 10 WHERE PrixU < (SELECT AVG(PrixU) FROM Produit); 3.3) Supprimer des données Pour supprimer des enregistrements d'une table, utilisez la commande DELETE. Sa syntaxe est : DELETE FROM table {WHERE condition }; Exemples : • Supprimer tous les produits DELETE FROM Produit • Supprimer tous les produits dont le stock est inférieur à 10. DELETE FROM Produit Bases de données HEDFI SOUHIR Page 6 WHERE Stock < 10 ; uploads/Voyage/ chapitre-4-sql.pdf
Documents similaires
-
17
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 02, 2022
- Catégorie Travel / Voayage
- Langue French
- Taille du fichier 0.0901MB