CoursDocuments

SQL (Structured Query Language )

16/11/2018 

SQL: LANGAGE DE REQUÊTE STRUCTURÉ SOUS LANGAGES SQL 

Le langage SQL (Structured Query Language ) se subdivise en 3 sous langages: 

Langage de Contrôle de Données – LCD 

  • Gestion des protections d’accès 

Langage de Définition des Données – LDD 

  • Création, modification et suppression des structures des différents objets de la base (table, vue, …) 

Langage de Manipulation des Données – LMD 

  • Ajout, modification, suppression et interrogation des données de la base 

Le langage de définition des données (LDD) CREATE 

ALTER 

DROP 

Le langage de manipulation des données (LMD) SELECT 

INSERT 

UPDATE 

DELETE 

Le langage de contrôle des données (LCD

GRANT 

REVOKE 

COMMIT 

ROLLBACK 

16/11/2018 

LDD 

Le LDD est le langage de définition de données (DDL en anglais). 

Il permet de – – Créer Créer des des tables tables par par l’instruction l’instruction CREATE CREATE TABLE Modifier la STRUCTURE (et non le contenu) des 

TABLES avec ALTER TABLE Supprimer une table avec DROP TABLE. 

TYPES DE DONNÉES SQL 

Les principaux types autorisés sont : 

CRÉATION DE TABLES: CREATE TABLE 

Syntaxe: 

CRÉATION DE TABLES: CREATE TABLE 

Exemple 

CRÉATION DE TABLES: CONTRAINTES DINTÉGRITÉ 

Une contrainte d’intégrité est une règle qui permet d’assurer la validité (cohérence) des données stockées dans une base. 

○ ○ Le Le SGBD SGBD contrôle contrôle les les contraintes contraintes d’intégrité d’intégrité à à chaque modification dans les tables (saisies, modification ou suppression). 

Une contrainte d’intégrité peut se définir au moment de la création d’une table 

CRÉATION DE TABLES: CONTRAINTES DINTÉGRITÉ 

Les différentes contraintes que l’on peut définir sont : non nullité (obligation) : NOT NULL 

La colonne ne peut pas contenir de valeurs NULL. 

– – unicité unicité : : UNIQUE UNIQUE Toutes les valeurs de la (des) colonnes doivent être différentes ou NULL 

clé primaire : PRIMARY KEY 

Chaque ligne de la table doit avoir une valeur différente pour la ou les colonnes qui font partie de la clé primaire. Les valeurs NULL sont rejetées. primary key = unique + not null 

CRÉATION DE TABLES: CONTRAINTES DINTÉGRITÉ 

valeur par défaut : DEFAULT 

Permet de spécifier une valeur par défaut à la colonne (dans le cas où aucune valeur n’est explicitement donnée) 

intégrité intégrité de de domaine domaine : : CHECK CHECK Permet de spécifier les valeurs acceptables pour une colonne. 

intégrité référentielle (clé étrangère) : FOREIGN KEY 

Cette colonne fait référence à une colonne clé d’une autre table. 

CONTRAINTES DINTÉGRITÉ SUR UNE COLONNE OU UNE TABLE 

Les contraintes peuvent concerner soit une seule colonne, soit une table toute entière. 

Les contraintes de colonne s’écrivent tout simplement simplement après après la la colonne colonne à à laquelle laquelle elles elles se se rapportent. 

AVANTAGE DES CONTRAINTES DINTÉGRITÉ 

Au lieu de coder (programmer) les différentes vérifications à effectuer lors de la saisie, la suppression et la modification de données, ce qui est est très très contraignant contraignant et et de de plus plus peu peu sûr, sûr, 

☺ la majorité des SGBD prennent en charge la 

vérification des contraintes d’intégrité. 

MODIFICATION DUNE TABLE: ALTER TABLE 

Ajouter une ou plusieurs colonne 

On peut ajouter plusieurs colonnes en les séparant par des virgules dans les parenthèses du ADD 

MODIFICATION DUNE TABLE: ALTER TABLE 

Modifier le type ou tout autre propriété d’une colonne 

Exemple: 

SUPPRIMER UNE TABLE: DROP TABLE 

Syntaxe: 

Exemple: Exemple: 

RENOMMER UNE TABLE: RENAME TABLE 

Syntaxe: 

Exemple: Exemple: 

16/11/2018 

LMD 

Le LMD est le langage de manipulation de données, et inclut les deux parties suivantes: 

Modification de données 

ó les données peuvent être insérées, effacées ou mises à jour ó ó les les opérations opérations de de modification modification de de données données utilisent utilisent les les mots mots clés INSERT, DELETE, UPDATE 

Récupération/Interrogation de données 

ó les opérations de récupération de données parcourent la base de données, recherchent les informations demandées 

et les affichent ó toutes les requêtes de recherche sont exprimées à l’aide du 

mot clé SELECT 

16/11/2018 

INSERTION DE LIGNE: INSERT INTO 

Syntaxe (Première forme): 

On On indique indique explicitement explicitement le le nom nom des des colonnes colonnes qu’on veut valoriser, et on indique les valeurs dans le même ordre. 

Exemple: 

SUPPRESSION DE LIGNE: DELETE FROM 

DELETE permet de supprimer une ou plusieurs lignes, qui vérifie(nt) une condition. 

Syntaxe: 

Exemple: 

MODIFICATION DE LIGNE: UPDATE…SET 

Modifier la valeur d’une colonne pour une ou plusieurs lignes en particulier (qui vérifie(nt) un critère) 

○ ○ Syntaxe: Syntaxe: 

Exemple: 

REQUÊTE DE RECHERCHE : SELECT 

La principale commande du langage de manipulation de données est la commande SELECT. 

○ ○ La La commande commande SELECT SELECT est est basée basée sur sur l’algèbre l’algèbre relationnelle. 

Syntaxe: SELECT [ALL] | [DISTINCT] <liste des noms de colonnes> FROM <Liste des tables> [WHERE <condition logique>] 

REQUÊTE DE RECHERCHE : SELECT 

La liste des noms de colonnes indique la liste des colonnes choisies, séparées par des virgules. Lorsque l’on désire sélectionner l’ensemble des colonnes d’une table il n’est pas nécessaire de saisir la liste de ses colonnes, l’option * permet de réaliser cette tâche 

La liste des tables indique l’ensemble des tables (séparées par des virgules) sur lesquelles on opère 

La condition logique permet d’exprimer des qualifications complexes à l’aide d’opérateurs logiques et de comparateurs arithmétiques 

REQUÊTE DE RECHERCHE : SELECT 

Il existe d’autres options pour la commande SELECT: GROUP BY HAVING ORDER BY 

L’option ALL est, par opposition à l’option DISTINCT, l’option par défaut. Elle permet de sélectionner l’ensemble des lignes satisfaisant à la condition logique 

L’option DISTINCT permet de ne conserver que des lignes distinctes, en éliminant les doublons 

REQUÊTE DE RECHERCHE : SELECT 

SELECT * FROM T_Customer; 

Customer_ID Customer_Name Customer_address City State Postal_Code ——————————————————————————————– 1 1 Contemporary Contemporary Casuals Casuals 1355 1355 S. S. Hines Hines Blvd. Blvd. Gainsville Gainsville FL FL 32601 32601 2 Value Furniture 15145 S.W. 17th St. Plano TX 75094 3 Home Furnishings 1900 Allard Ave. Albany NY 12209 4 Eastern Furniture 1925 Beltline Rd. Carteret NJ 7008 5 Impressions 5585 Westcott Ct. Sacramento CA 94206 6 Furniture Gallery 325 Flatiron Dr. Boulder CO 80514 7 Period Furnishings 394 Rainbow Dr. Seattle WA 97954 8 California Classics 816 Peach Rd. Santa Clara CA 96915 9 M & H Casual Furniture 3709 First Street Clearwater FL 34620 10 Seminole Interiors 2400 Rocky Point Dr. Seminole FL 34646 11 American Euro Lifestyles 2424 Missouri Ave. N. Prospect Park NJ 7508 12 Battle Creek Furniture 345 Capitol Ave. SW Battle Creek MI 49015 13 Heritage Furnishings 66789 College Ave. Carlisle PA 17013 14 Kaneohe Homes 112 Kiowai St. Kaneohe HI 96744 15 Mountain Scenes 4132 Main Street Ogden UT 84403 

ORDRE ET CHOIX DES COLONNES CLAUSE SELECT 

SELECT customer_name, city FROM T_Customer; 

customer_name city ————————- ————— Contemporary Casuals Gainsville Value Value Furniture Furniture Plano Plano Home Furnishings Albany Eastern Furniture Carteret Impressions Sacramento Furniture Gallery Boulder Period Furnishings Seattle California Classics Santa Clara M & H Casual Furniture Clearwater Seminole Interiors Seminole American Euro Lifestyles Prospect Park Battle Creek Furniture Battle Creek Heritage Furnishings Carlisle Kaneohe Homes Kaneohe Mountain Scenes Ogden 

ORDRE DES LIGNES: CLAUSE ORDER BY 

SELECT customer_name, city FROM T_Customer ORDER BY customer_name; 

customer_name city ————————- ————– American Euro Lifestyles Prospect Park 

SELECT customer_name, city FROM T_Customer ORDER BY city; 

customer_name city ————————– —————- American Euro Lifestyles Prospect Park 

Home Home Furnishings Furnishings Albany Albany Battle Creek Furniture Battle Creek 

Battle Creek Furniture Battle Creek California Classics Santa Clara 

Furniture Gallery Boulder Contemporary Casuals Gainsville 

Heritage Furnishings Carlisle Eastern Furniture Carteret 

Eastern Furniture Carteret Furniture Gallery Boulder 

M & H Casual Furniture Clearwater Heritage Furnishings Carlisle 

Contemporary Casuals Gainsville Home Furnishings Albany 

Kaneohe Homes Kaneohe Impressions Sacramento 

Mountain Scenes Ogden Kaneohe Homes Kaneohe 

Value Furniture Plano M & H Casual Furniture Clearwater 

American Euro Lifestyles Prospect Park Mountain Scenes Ogden 

Impressions Sacramento Period Furnishings Seattle 

California Classics Santa Clara Seminole Interiors Seminole 

Period Furnishings Seattle Value Furniture Plano 

Seminole Interiors Seminole 

FONCTIONS ENSEMBLISTES 

COUNT 

ó COUNT(*) 

compte toutes les lignes ó COUNT(nom-attribut) 

compte compte les les lignes lignes où où l’attribut l’attribut n’a n’a pas pas la la valeur valeur nulle nulle 

MIN, MAX 

s’applique aux valeurs numériques ou alphanumériques 

SUM, AVG 

s’appliquent aux valeurs numériques 

FONCTIONS ENSEMBLISTES COUNT 

SELECT product_id, product_name, product_description FROM T_Product ; 

Product_ID Product_Name Product_Description ———– ——————— ——————- 1 End Table 2 Coffee Table 3 Computer Desk Computer Desk 48 4 Entertainment Center 

5 Writer’s Desk 6 8-Drawer Desk 7 Dining Table 8 Computer Desk Computer Desk 64 

SELECT COUNT(*) 

SELECT COUNT(product_description) FROM T_Product ; 

FROM T_Product ; 

COUNT(*) 

COUNT(product_description) ——– 

————————– 8 

FONCTIONS ENSEMBLISTES MIN, MAX 

SELECT MIN(unit_price), MAX(unit_price) FROM T_Product ; 

MIN(unit_price) MAX(unit_price) ————— ————— ———— ———— 175,00 800,00 

SELECT MAX(order_date) FROM T_Order; 

MAX(order_date) ————– 05/11/1998 

FONCTIONS ENSEMBLISTES SUM, AVG 

SELECT SUM(on_hand*unit_price) FROM T_Product; 

11 150.00 

SELECT AVG(unit_price) FROM T_Product; 

440.63 

OPÉRATEURS DE COMPARAISON 

Format : Expression 1 Op Expression 2 

=, <, >, <=, >=, <>, SELECT * FROM COMMANDE WHERE NO_VENDEUR <> 9; 

BETWEEN SELECT * FROM COMMANDE WHERE MONTANT BETWEEN 100 AND 200; 

IS NULL SELECT COUNT(product_id) FROM T_Product WHERE product_description IS NULL

OPÉRATEURS DE COMPARAISON: OPERATEUR LIKE 

Le caractère % remplace n’importe quel nombre de n’importe quels caractères. Il remplace 0 à n caractères 

○ ○ Le Le caractère caractère _ _ remplace remplace n’importe n’importe quel quel caractère. caractère. Il remplace 1 caractère 

product_id product_name SELECT product_id, product_name FROM T_Product WHERE product_name LIKE %Desk%‘ 

———- ————- 3 Computer Desk 5 Writer’s Desk 6 8-Drawer Desk 8 Computer Desk 

OPÉRATEURS LOGIQUES 

AND 

NOT 

OR 

REGROUPEMENT CLAUSE GROUP BY 

La clause GROUP BY divise une table en groupes de lignes. 

Utilisée avec une fonction dans la clause SELECT, la requête fournit des informations sur le le groupe groupe 

groupe 1 

groupe 2 

groupe 3 

groupe 4 

TABLE COMMANDE 

SELECT * FROM COMMANDE; 

NO_C NO_CLIENT DATE_COM NO_VENDEUR MONTANT ———- ———- ——– ———- ———- 261 261 1233 1233 96-05-13 96-05-13 687 687 132,33 132,33 262 4333 96-05-15 132 32,35 263 4436 96-05-20 132 100 264 1233 96-05-22 455 225,1 265 1233 96-05-30 455 144,73 266 4333 96-05-31 687 137,98 267 1233 96-06-04 455 123,45 268 5026 96-06-07 687 44,32 269 4333 96-06-30 754 122,1 270 5026 96-07-01 455 100 

REGROUPEMENT REQUÊTE SIMPLE 

SELECT NO_CLIENT, SUM(MONTANT) FROM COMMANDE GROUP BY NO_CLIENT ; 

NO_CLIENT SUM(MONTANT) ——— ———— 1233 625,61 4333 292,43 4436 100 5026 144,32 

REGROUPEMENT CLAUSE HAVING 

La clause GROUP BY divise une table en groupes de lignes. 

La clause HAVING permet de sélectionner des groupes. 

groupe 1 

groupe 2 

groupe 3 

groupe 4 

 

télécharger gratuitement cours de  SQL (Structured Query Language )

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Bouton retour en haut de la page

Adblock détecté

S'il vous plaît envisager de nous soutenir en désactivant votre bloqueur de publicité