15 requêtes MySQL que tous les débutants devraient connaître - Letecode

15 requêtes MySQL que tous les débutants devraient connaître

Les requêtes MySQL de base que vous devriez connaître, partage avec les autres

Jean Claude Mbiya
Jean Claude Mise à jour : 21 décembre 2022 3251

Voici une liste des quelques requêtes de base que vous devriez connaître en débutant avec MySQL. Faites en une pratique afin de bien prendre la main dessus.

1. Créer une base de données

Avant toute manipulation, votre base de données doit exister afin d'exécuter des requêtes. Pour créer une base de données dans MySQL, utilisez la requête suivante.

CREATE DATABASES MABASE;

2. Afficher la liste de toutes les bases de données

Pour récupérer la liste de toutes les bases de données dans MySQL, utilisez

SHOW DATABASES;


Supposons que vous souhaitiez vérifier si une base de données quelconque est présente ou rechercher une base de données, en utilisant  LIKE , vous pouvez également utiliser des caractères génériques.

SHOW DATABASES LIKE 'MABD';

SHOW DATABASES LIKE '%DB%';

3. Sélectionner la base de données

La création d'une base de données ne signifie pas qu'elle est prête à être utilisée, vous devez d'abord sélectionner cette base de données, utilisez cette requête pour sélectionner la base de données à utiliser : 

USE MABASE;

4. Afficher toutes les tables d'une base de données

Pour afficher les tables de la base de données dans MySQL : 

SHOW TABLES;


Pour récupérer la liste des tables d'une base de données particulière, utilisez le sql ci-dessous.

SHOW TABLES FROM letecode_bd;

 

5. Créer et joindre une table dans MySQL

Je vais vous montrer un exemple pratique de création et de jointure de table. 

Prenons un système d'inventaire comme exemple, nous allons créer 2 tables à savoir. catégories et produits.

  • categories - Les produits peuvent être classés en catégories comme les mobiles, les tablettes, etc.
  • produits - Il contient des informations sur le produit comme le nom, le prix, la catégorie qui lui est attribuée

Création d' une table categories et ajout de valeurs par defaut.

CREATE TABLE IF NOT EXISTS `categories` (
  `cat_id` int(11) AUTO_INCREMENT NOT NULL,
  `cat_nom` varchar(255) NOT NULL,
  PRIMARY KEY (`cat_id`),
  UNIQUE (`cat_nom`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `categories` (`cat_id`, `cat_nom`) VALUES
(1, 'Ordinateurs'),
(2, 'Mobiles');


Création d' une table produits et ajout de valeurs factices. Dans ce tableau, nous joignons également le tableau des catégories. Il aura une colonne nommée prd_cat_id qui est la clé étrangère de la table des catégories. J'ai défini ON DELETE RESTRICT afin qu'aucun utilisateur ne puisse supprimer une catégorie si le produit est présent dans le tableau (intégrité référentielle).

CREATE TABLE IF NOT EXISTS `produits` (
  `prd_id` int(11) AUTO_INCREMENT NOT NULL,
  `prd_nom` varchar(255) NOT NULL,
  `prd_cat_id` int(11) NOT NULL,
  `prd_prix` double NOT NULL DEFAULT '0',
  PRIMARY KEY (`prd_id`),
  FOREIGN KEY (`prd_cat_id`) REFERENCES `categories` (`cat_id`)  ON UPDATE CASCADE ON DELETE RESTRICT
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `produits` (`prd_id`, `prd_nom`, `prd_cat_id`, `prd_prix`) VALUES
(1, 'Macbook Pro', 1, 25000),
(2, 'HP', 1, 300),
(3, 'Iphone 13', 2, 1500),
(4, 'Iphone X', 2, 900);

 

6. Ajouter et supprimer une colonne dans un tableau

Supposons que vous souhaitiez supprimer une colonne dans une table, utilisez la requête MySQL ci-dessous

-- suppression d'une seule colonne
ALTER TABLE `produits` DROP `prd_model` ;    
-- suppression de plusieurs colonnes
ALTER TABLE `produits` DROP `prd_model` , DROP `prd_prix` ;     


Pour ajouter une nouvelle colonne dans le tableau, utilisez la requête ci-dessous. Cela ajoutera une nouvelle colonne avec le nom prd_desc de type varchar.

 -- ajouter une nouvelle colonne dans la table produits
ALTER TABLE `produits` ADD `prd_desc` VARCHAR ( 255 ) NOT NULL ;   

   

7. Sélectionner les lignes, trier et limiter

Pour obtenir les enregistrements de la table, utilisez la requête ci-dessous.

-- récupérer toutes les colonnes et lignes du tableau
SELECT * FROM `produits` ;
-- ne récupère que deux colonnes mais tous les enregistrements
SELECT `prd_id` , `prd_nom` FROM `produits` ;

 
Dans un cas similaire, si vous souhaitez récupérer la ligne avec l'identifiant du produit = 1

 -- ligne qui a l'identifiant du produit = 1
SELECT * FROM `produits` WHERE `prd_id` = 1;

  
Si vous souhaitez récupérer un enregistrement par ordre croissant ou décroissant en fonction de certaines colonnes, utilisez la requête ci-dessous.

 -- Trier par ID de produit Ascendant
SELECT * FROM `produits` ORDER BY `prd_id` ASC;
-- Trier par ID de produit Décroissant
SELECT * FROM `produits` ORDER BY `prd_id` DESC;

 
Maintenant, il n'est pas recommandé de récupérer toutes les lignes en une seule fois. Nous pouvons limiter les lignes en utilisant le mot-clé LIMIT.

-- Récupérer 5 lignes 
SELECT * FROM `produits` LIMIT 5 ;  
-- Récupérer 10 lignes mais à partir de la 6è position
SELECT * FROM `produits` LIMIT 6 , 10;  

 

8. Caractère générique (Wildcard)

Un caractère générique est utilisé pour remplacer un ou plusieurs caractères dans une chaîne. Les caractères génériques sont utilisés avec l'opérateur LIKE. Les symboles utilisés dans les caractères génériques sont % et _

En termes généraux, vous pouvez utiliser ces caractères génériques pour effectuer une recherche dans les enregistrements

--recherche des enregistrements où le nom du produit commence par I
SELECT * FROM `produits` WHERE `prd_nom` LIKE 'I%'; 
--recherche des enregistrements où le nom du produit se termine par un ordinateur portable
SELECT * FROM `product` WHERE `prd_nom` LIKE '% ordinateur portable'; 
--recherche des enregistrements où le nom du produit contient le mot téléphone
SELECT * FROM `product` WHERE `prd_name` LIKE '%téléphone%';
--recherche des enregistrements où le nom du produit, le premier caractère peut être n'importe quoi dans la chaîne
SELECT * FROM `product` WHERE `prd_name` LIKE '_phone';

9. Alias ​​pour la colonne lors de la récupération

Parfois, lorsque vous joignez des tables ou utilisez une fonction pour récupérer la colonne, vous voulez un nom différent de la colonne. Vous pouvez y parvenir via ALIAS . regardez un exemple ci-dessous.

-- même valeur mais en utilisant la colonne comme alias
SELECT `prd_id` AS produit_id   `prd_nom` as produit_nom FROM produits ;   
-- compter les produits mais le nom de la colonne est différent
SELECT count(prd_id) as total_produits FROM produits ;

10. Sélectionnez les lignes avec les valeurs NULL & NOT NULL

Pour récupérer les lignes de la table avec des valeurs nulles, utilisez la requête :

SELECT * FROM table WHERE colonne  IS NULL;

 

Et pour récupérer des enregistrements avec des valeurs non nulles, utilisez :

SELECT * FROM table WHERE colonne  IS NOT NULL ;

11. Compter les lignes d'un tableau

Pour obtenir le nombre de lignes dans le tableau, utilisez simplement :

SELECT count(pr_id) FROM produits ;


si vous le souhaitez, vous pouvez également utiliser la clause WHERE

SELECT COUNT (pr_id) FROM produits WHERE pr_id > 200 ; 

12. Concatener les colonnes avec séparateur

Il y a des moments où vous préférez utiliser la fonction MySQL plutôt que la fonction PHP. Par exemple, si vous souhaitez récupérer le nom complet de la table des utilisateurs, récupérez les colonnes (prénom, nom de famille), puis concaténez -le côté serveur. À la place, utilisez les fonctions CONCAT_WS() fournies dans MySQL.

Comme indiqué dans la documentation officielle, CONCAT_WS() signifie Concatenate With Separator et est une forme spéciale de CONCAT() . CONCAT_WS() n'ignore pas les chaînes vides. Cependant, il ignore toutes les valeurs NULL après l'argument séparateur.

Jetez un oeil à un exemple ci-dessous. Créez d'abord un tableau avec des exemples de données.

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fname` varchar(255) NOT NULL,
  `mname` varchar(255) DEFAULT NULL,
  `lname` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

INSERT INTO `users` (`id`, `fname`, `mname`, `lname`) VALUES
(1, 'Jean', 'Claude', 'Mbiya'),
(2, 'Liuis', NULL, 'Mvita'),
(3, 'Martin', 'Tshims', 'Bless'),
(4, 'Benie', NULL, 'Bosenge');

Concaténons maintenant le nom d'utilisateur avec un séparateur d'espace vide à l'aide de la fonction CONCAT_WS().

SELECT id, concat_ws( ' ' , `fname` , `mname` , `lname` ) FROM `users` WHERE 1 ORDER BY `id` ASC      
Le résultat sera
-------
1      Jean Claude Mbiya
2      Louis Mvita
3      Martin Tshims Bless
4      Benie Bosenge

13. Concatenation en groupe

GROUP_CONCAT() est une fonction MySQL utilisée pour concaténer des valeurs de colonne unique en une seule chaîne. Cela peut être utile lorsque vous souhaitez éviter les boucles PHP.

Prenons un exemple, nous créons une table nommée "football" et ajoutons quelques données.

CREATE TABLE IF NOT EXIST `football` (     
  `pid` int( 11 ) NOT NULL AUTO_INCREMENT, 
  `player` varchar( 255 ) NOT NULL , 
  `scored` varchar( 255 ) DEFAULT NULL , 
  CLÉ PRIMAIRE ( `pid` ) 
) MOTEUR = InnoDB   DEFAULT CHARSET = utf8 AUTO_INCREMENT = 5 ; 
INSERT INTO `football` ( `pid` , `player` , `scored` ) VALUES  
( 1 , 'Beckham' , 'oui' ),
( 2 , 'Ronaldo' , 'oui' ),
( 3 , 'Messi' , 'non' ),
( 4 , 'Gigs' , 'oui' ),
( 5 , 'Gérard' , 'non' ),
( 6 , 'Henri' , 'oui' ),
( 7 , 'Pepe' , 'non' );


La requête MySQL pour récupérer les noms des joueurs en fonction du groupe de notation.

SELECT scored, group_concat(player) as names FROM football GROUP BY scored;
les résultats seront
scored | names
oui | Beckham, Ronaldo, Giggs, Henry
non | Messi, Gerard, Pepe

14. Tronquer vs supprimer le tableau

Comprendre la différence entre supprimer et tronquer la table est très important.

TRUNCATE - Il supprime et recrée la table, et est beaucoup plus rapide que la suppression de lignes une par une, en particulier pour les grandes tables. Il vide complètement une table ; pour tronquer n'importe quelle table utiliser :

TRUNCATE [ TABLE ] nom_table;


DELETE - supprime des lignes d'une table. Vous pouvez également utiliser la clause WHERE pour donner également certaines conditions. L'instruction DELETE supprime les lignes de la table et renvoie le nombre de lignes supprimées .

--Pour supprimer tous les enregistrements
DELETE FROM produits ;  
-- pour supprimer les produits avec id > 500 
DELETE FROM produits WHERE prd_id > 500 

15. Supprimer la base de données

Et toutes les bonnes choses ont une fin. si jamais vous avez besoin de supprimer la base de données, utilisez cette requête MySQL :

DROP DATABASE nom-votre-base-de-données ;


Soyez extrêmement prudent lorsque vous utilisez l'instruction drop car elle supprime toutes les tables de la base de données et supprime la base de données.

Partagez vos commentaires / faites-moi part de vos doutes concernant ce tutoriel dans la zone de commentaires ou poser des questions dans le forum à ce sujet

 

3
Jean Claude Mbiya
Jean Claude Mbiya

Développeur Web full stack, Développeur Android (Certifié Google AAD) Formateur dans les domaines du numérique, Créateur letecode.com 👨‍💻. Je suis un grand passionné des nouvelles technologies et j'adore partager ce que j'apprend.

0 commentaire(s)

Laissez votre commentaire à @johnmbiya

ou pour laisser un commentaire