MariaDB Tutoriel : Apprendre la syntaxe, les commandes avec des exemples
Qu’est ce qu' MariaDB?
MariaDB est une fourchette du MySQL système de gestion de base de données. Il est créé par ses développeurs d'origine. Cet outil SGBD offre des capacités de traitement de données pour les tâches des petites et des entreprises.
MariaDB est une version améliorée de MySQL. Il est livré avec de nombreuses fonctionnalités puissantes intégrées et de nombreuses améliorations de fonctionnalités, de sécurité et de performances que vous ne pouvez pas trouver dans MySQL.
Voici les caractéristiques de MariaDB:
- Il fonctionne sous licences GPL, BSD ou LGPL.
- MariaDB prend en charge un langage de requête populaire et standard.
- Il est livré avec de nombreux moteurs de stockage, y compris des moteurs hautes performances qui peuvent être intégrés à d'autres systèmes de gestion de bases de données relationnelles.
- Il fournit la technologie du cluster Galera.
- MariaDB prend en charge PHP, un langage populaire pour le développement Web.
- MariaDB peut fonctionner sur différents systèmes d’exploitation et prend en charge de nombreux langages de programmation.
- MariaDB est livré avec des commandes supplémentaires qui ne sont pas disponibles dans MySQL. MySQL possède des fonctionnalités qui ont un impact négatif sur les performances du SGBD. Ces fonctionnalités ont été remplacées dans MariaDB.
MariaDB vs. MySQL
Vous trouverez ci-dessous quelques différences clés entre MariaDB vs MySQL
Paramètres | MariaDB | MySQL |
---|---|---|
Plus d'options pour les moteurs de stockage | MariaDB dispose de 12 nouveaux moteurs de stockage que vous ne trouverez pas dans MySQL. | Il offre moins d’options de stockage par rapport à MariaDB. |
Améliorations de la vitesse | MariaDB montre une vitesse améliorée par rapport à MySQL. Il est livré avec de nombreuses fonctionnalités pour optimiser la vitesse. Ces fonctionnalités incluent les vues/tables dérivées, les sous-requêtes, le contrôle d'exécution, l'accès au disque et le contrôle de l'optimiseur. | MySQL présente une vitesse plus lente par rapport à MariaDB. Il ne s'appuie que sur quelques fonctionnalités d'optimisation de la vitesse, par exemple les index de hachage. |
Cache/index plus rapides | Avec le moteur de stockage mémoire de MariaDB, une instruction INSERT peut être complétée 24 % plus que dans la norme MySQL. | Le moteur de stockage mémoire de MySQL est plus lent que ça MariaDB. |
Pool de connexions plus grand et plus rapide | MariaDB est livré avec un pool de threads avancé capable de fonctionner plus rapidement et de prendre en charge jusqu'à 200,000 + connexions. | Le pool de threads fourni par MySQL ne peut pas prendre en charge jusqu'à 200,000 connexions à la fois. |
Réplication améliorée | In MariaDB, la réplication peut être effectuée de manière plus sûre et plus rapide. Les mises à jour peuvent également être effectuées 2 fois plus rapidement que les mises à jour traditionnelles. MySQL. | MySQLL'édition communautaire de permet de connecter un nombre statique de threads. MySQLLe plan d'entreprise de est livré avec des fonctionnalités de thread. |
Nouvelles fonctionnalités/extensions | MariaDB est livré avec de nouvelles fonctionnalités et extensions, notamment les instructions JSON, WITH et KILL. | Le nouveau système d’ MariaDB les fonctionnalités ne sont pas fournies dans MySQL. |
Caractéristiques manquantes | MariaDB il lui manque certaines des fonctionnalités fournies par le MySQL Edition pour entreprise. Pour résoudre ce problème, il propose des plugins open source alternatifs. Ainsi, MariaDB les utilisateurs peuvent bénéficier des mêmes fonctionnalités que MySQL Utilisateurs de l'édition Entreprise. | L'édition Entreprise de MySQL utilise un code propriétaire. Seuls les utilisateurs de MySQL Enterprise Edition y a accès. |
Comment installer MariaDB
Installer en tant qu'application autonome
Pour utiliser MariaDB, vous devez l'installer sur votre ordinateur.
L'installation peut être effectuée en suivant les étapes indiquées ci-dessous :
Étape 1) Ouvrir ci-dessous l'URL
Téléchargez le fichier d'installation à partir du lien https://downloads.mariadb.org/
Étape 2) Double cliquez sur le fichier pour démarrer l'installation
Une fois le téléchargement terminé, ouvrez le fichier
Étape 3) Cliquez sur le bouton Suivant
Dans la fenêtre qui apparaît, cliquez sur le bouton Suivant :
Étape 4) Acceptez le contrat de licence
Cliquez ensuite sur le bouton Suivant :
Étape 5) Choisir MariaDB Server
Choisissez les fonctionnalités qui doivent être installées et cliquez sur Suivant
Étape 6) Entrer le mot de passe
Dans la fenêtre suivante, vous devrez modifier le mot de passe de l'utilisateur root.
- Saisissez le mot de passe et confirmez-le en retapant le même mot de passe. Si vous souhaitez autoriser l'accès à partir de machines distantes, cochez la case nécessaire.
- Une fois terminé, cliquez sur le bouton Suivant.
Étape 7) Entrez le nom et choisissez le numéro de port
Dans la fenêtre suivante, saisissez un nom pour l'instance, choisissez le numéro de port et définissez la taille nécessaire. Cliquez sur le bouton Suivant :
Étape 8) Cliquez Sur Suivant
Dans la fenêtre suivante, cliquez simplement sur le bouton Suivant.
Étape 9) Cliquez sur Installer
Lancez l'installation en cliquant sur le bouton Installer.
Étape 10) Une barre de progression affichée
Une barre de progression montrant la progression de l'installation s'affichera :
Étape 11) Cliquez sur le bouton Terminer
Une fois l'installation terminée, vous verrez le bouton Terminer. Cliquez sur le bouton pour fermer la fenêtre :
Étape 12) Félicitations!
Vous avez maintenant MariaDB installé sur votre ordinateur.
Travailler avec l'invite de commande
Maintenant que vous avez MariaDB installé sur votre ordinateur, il est temps pour vous de le lancer et de commencer à l'utiliser. Cela peut être fait via le MariaDB invite de commande
Suivez les étapes ci-dessous:
Étape 1) Cliquez sur Démarrer, choisissez Tous les programmes puis cliquez sur MariaDB...
Étape 2) Choisissez un MariaDB Invite de commandes.
Étape 3) Notre MariaDB L'invite de commande sera lancée. Il est maintenant temps de vous connecter. Vous devez vous connecter en tant qu'utilisateur root et avec le mot de passe que vous avez défini lors de l'installation de MariaDBTapez la commande suivante sur l'invite de commande :
MySQL -u root -p
Étape 4) Entrez le mot de passe et appuyez sur la touche retour. Vous devez être connecté, comme indiqué ci-dessous :
Vous êtes maintenant connecté MariaDB.
Types de données
MariaDB prend en charge les types de données suivants :
- Types de données de chaîne
- Types de données numériques
- Types de données date/heure
- Types de données d'objets volumineux
Types de données de chaîne
Ceux-ci incluent les suivants:
Type de données Chaîne | Description |
---|---|
caractère (taille) | La taille indique le nombre de caractères à stocker. Il stocke un maximum de 255 caractères. Cordes de longueur fixe. |
varchar(taille) | La taille indique le nombre de caractères à stocker. Il stocke un maximum de 255 caractères. Chaînes de longueur variable. |
taille du texte) | La taille indique le nombre de caractères à stocker. Il stocke un maximum de 255 caractères. Cordes de longueur fixe. |
binaire (taille) | La taille indique le nombre de caractères à stocker. Il stocke un maximum de 255 caractères. Chaînes de taille fixe. |
Types de données numériques
Ils comprennent les éléments suivants:
Types de données numériques | Description |
---|---|
Bits | Une très petite valeur entière équivalente à tinyint(1). Les valeurs signées sont comprises entre -128 et 127. Les valeurs non signées sont comprises entre 0 et 255. |
entier(m) | Une valeur entière standard. Les valeurs signées sont comprises entre -2147483648 et 2147483647. Les valeurs non signées sont comprises entre 0 et 4294967295. |
flotter (m, d) | Un nombre à virgule flottante avec une simple précision. |
double(m,d) | Un nombre à virgule flottante avec double précision. |
flotter (p) | Un nombre à virgule flottante. |
Types de données date/heure
Ceux-ci incluent les suivants:
Type de données date/heure | Description |
---|---|
Date | Affiché sous la forme « aaaa-mm-jj ». Les valeurs varient entre « 1000-01-01 » et « 9999-12-31 ». |
Datetime | Affiché sous la forme « aaaa-mm-jj hh:mm:ss ». Les valeurs varient entre « 1000-01-01 00:00:00 » et « 9999-12-31 23:59:59 ». |
horodatage (m) | Affiché sous la forme « aaaa-mm-jj hh:mm:ss ». Les valeurs varient entre « 1970-01-01 00:00:01 » utc et « 2038-01-19 03:14:07 » utc. |
Heure | Affiché sous la forme 'hh:mm:ss'. Les valeurs varient entre « -838:59:59 » et « 838:59:59 ». |
Types de données d'objets volumineux (LOB)
Ils comprennent les éléments suivants:
Type de données d'objet volumineux | Description |
---|---|
petite goutte | Sa taille maximale est de 255 octets. |
goutte (taille) | Prend 65,535 octets comme taille maximale. |
goutte moyenne | Sa taille maximale est de 16,777,215 octets. |
longtext | Il faut 4 Go comme taille maximale. |
Créer une base de données et des tables
Pour créer une nouvelle base de données dans MariaDB, vous devez disposer de privilèges spéciaux qui ne sont accordés qu'à l'utilisateur root et aux administrateurs.
Pour créer une nouvelle base de données, vous devez utiliser la commande CREATE DATABASE qui prend la syntaxe suivante :
CREATE DATABASE DatabaseName;
Dans ce cas, vous devez créer une base de données et lui donner le nom Demo.
Commencer le MariaDB invite de commande et connectez-vous en tant qu'utilisateur root en tapant la commande suivante :
mysql -u root -p
Tapez le mot de passe root et appuyez sur la touche retour. Vous serez connecté.
Maintenant, exécutez la commande suivante :
CREATE DATABASE Demo;
Vous avez ensuite créé une base de données nommée Demo. Ce sera bien pour vous de confirmer si la base de données a été créée avec succès ou non. Il vous suffit d'afficher la liste des bases de données disponibles en exécutant la commande suivante :
SHOW DATABASES;
Le résultat ci-dessus montre que la base de données Demo fait partie de la liste et que la base de données a donc été créée avec succès.
MariaDB Sélectionnez la base de données
Pour que vous puissiez utiliser ou travailler sur une base de données particulière, vous devez la sélectionner dans la liste des bases de données disponibles. Après avoir sélectionné une base de données, vous pouvez effectuer des tâches telles que créer des tables dans la base de données.
Pour sélectionner une base de données, vous devez utiliser la commande USE. Il prend la syntaxe donnée ci-dessous :
USE database_name;
Vous devez utiliser la base de données Demo. Vous pouvez le sélectionner en exécutant la commande suivante :
USE Demo;
L'image ci-dessus montre que le MariaDB L'invite de commande est passée d'aucun au nom de la base de données qui a été sélectionnée.
Vous pouvez maintenant continuer et créer des tables dans la base de données de démonstration.
MariaDB – Créer un tableau
Pour pouvoir créer une table, vous devez avoir sélectionné une base de données. La table peut être créée à l'aide de l'instruction CREATE TABLE. Voici la syntaxe de la commande :
CREATE TABLE tableName (columnName columnType);
Vous pouvez définir l'une des colonnes comme clé primaire. Cette colonne ne doit pas autoriser les valeurs nulles.
Nous allons créer deux tables dans la base de données Demo, les tables Book et Price. Chaque tableau aura deux colonnes.
Commençons par créer la table Book avec deux colonnes, id et name. Exécutez la commande suivante :
CREATE TABLE Book( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id));
La contrainte PRIMARY KEY a été utilisée pour définir la colonne id comme clé primaire de la table. La propriété AUTO_INCREMENT incrémentera automatiquement les valeurs de la colonne id de 1 pour chaque nouvel enregistrement inséré dans la table. Toutes les colonnes n'autoriseront pas les valeurs nulles.
Maintenant, créez la deuxième table, la table Prix :
CREATE TABLE Price( id INT NOT NULL AUTO_INCREMENT, price float NOT NULL, PRIMARY KEY (id));
La colonne id a été définie comme clé primaire de la table.
Affichage des tableaux
Maintenant que vous avez créé les deux tables, il sera bon pour vous de vérifier si les tables ont été créées avec succès ou non. Vous pouvez afficher la liste des tables contenues dans une base de données en exécutant la commande suivante :
SHOW TABLES;
La capture d'écran ci-dessus montre que les deux tables ont été créées avec succès dans la base de données Demo.
Affichage de la structure du tableau
Pour voir la structure d'une table particulière, vous pouvez utiliser la commande DESCRIBE, communément abrégée en DESC. Il faut la syntaxe suivante :
DESC TableName;
Par exemple, pour voir la structure de la table nommée Book, vous pouvez exécuter la commande suivante :
DESC Book;
Le tableau comporte deux colonnes. Pour voir la structure de la table Price, vous pouvez exécuter la commande suivante :
DESC Price;
CRUD et clauses
INSERT
Pour insérer des données dans un MariaDB table, vous devez utiliser l'instruction INSERT INTO. Cette commande prend la syntaxe donnée ci-dessous :
INSERT INTO tableName (column_1, column_2, ... ) VALUES (value1, value2, ... ), (value1, value2, ... ), ...;
La syntaxe ci-dessus montre que vous devez spécifier les colonnes du tableau dans lesquelles vous souhaitez insérer des données ainsi que les données que vous devez insérer.
Insérons un enregistrement dans la table Book :
INSERT INTO book (id, name) VALUES(1, 'MariaDB Book');
Vous avez inséré un seul enregistrement dans la table. Insérez un enregistrement dans la table Prix :
INSERT INTO price (id, price) VALUES(1, 200);
L'enregistrement a été créé.
SELECT
L'instruction SELECT nous aide à afficher ou à voir le contenu d'une table de base de données. Pour voir le contenu de la table Book, par exemple, vous devez exécuter la commande suivante :
SELECT * from book;
Maintenant, affichez le contenu du tableau des prix :
SELECT * from price;
Insertion de plusieurs enregistrements
Il nous est possible d'insérer plusieurs enregistrements dans un MariaDB table à la fois. Pour illustrer cela, exécutez l'exemple suivant :
INSERT INTO book (id, name) VALUES (2,'MariaDB Book2'), (3,'MariaDB Book3'), (4,'MariaDB Book4'), (5,'MariaDB Book5');
Vous pouvez interroger la table pour vérifier si les enregistrements ont été insérés avec succès :
SELECT * FROM book;
Les enregistrements ont été insérés avec succès. Insérez plusieurs enregistrements dans la table Price en exécutant cet exemple :
INSERT INTO price (id, price) VALUES (2, 250), (3, 220), (4, 190), (5, 300);
Vérifions si les enregistrements ont été créés avec succès :
SELECT * FROM price;
MISE À JOUR
La commande UPDATE nous aide à changer ou modifier les enregistrements déjà insérés dans une table. Vous pouvez le combiner avec la clause WHERE pour spécifier l'enregistrement à mettre à jour. Voici la syntaxe :
UPDATE tableName SET field=newValue, field2=newValue2,... [WHERE ...]
La commande UPDATE peut également être combinée avec des clauses telles que SET, WHERE, LIMIT et ORDER BY. Vous verrez ceci sous peu :
Considérons la table nommée Price avec les enregistrements suivants :
Changeons le prix du livre d'identifiant 1 de 200 à 250 :
UPDATE price SET price = 250 WHERE id = 1;
La commande s'est exécutée avec succès. Vous pouvez maintenant interroger la table pour voir si la modification a eu lieu :
La capture d'écran ci-dessus montre que le changement a été mis en œuvre. Considérons le tableau Book avec les enregistrements suivants :
Changeons le nom du livre nommé Book en MariaDB Livre1. Notez que le livre a un identifiant de 1. Voici la commande pour cela :
UPDATE book SET name = “MariaDB Book1” WHERE id = 1;
Vérifiez si le changement a été mis en œuvre :
La capture d'écran ci-dessus montre que le changement a été mis en œuvre avec succès.
Dans les exemples ci-dessus, nous n'avons modifié qu'une seule colonne à la fois. Cependant, il nous est possible de modifier plusieurs colonnes à la fois. Montrons cela à l'aide d'un exemple.
Utilisons la table Prix avec les données suivantes :
Modifions à la fois l'identifiant et le prix du livre avec un identifiant de 5. Nous allons changer son identifiant en 6 et son prix en 6. Exécutez la commande suivante :
UPDATE price SET id = 6, price = 280 WHERE id = 5;
Maintenant, interrogez la table pour vérifier si la modification a été effectuée avec succès :
Le changement a été effectué avec succès.
Supprimer
Nous utilisons la commande DELETE lorsque nous devons supprimer un ou plusieurs enregistrements d'une table. Voici la syntaxe de la commande :
DELETE FROM tableName [WHERE condition(s)] [ORDER BY exp [ ASC | DESC ]] [LIMIT numberRows];
Considérez la table Prix avec les enregistrements suivants :
Nous devons supprimer le dernier enregistrement de la table. Il a un identifiant de 6 et un prix de 280. Supprimons l'enregistrement :
DELETE FROM price WHERE id = 6;
La commande s'est exécutée avec succès. Interrogons la table pour confirmer si la suppression a réussi :
Le résultat montre que l'enregistrement a été supprimé avec succès.
Où
La clause WHERE nous aide à spécifier l'emplacement exact où nous devons apporter une modification. Il est utilisé avec des instructions telles que INSERT, SELECT, UPDATE et DELETE. Considérez le tableau des prix avec les données suivantes :
Supposons que nous ayons besoin de voir les enregistrements dans lesquels le prix est inférieur à 250. Nous pouvons exécuter la commande suivante :
SELECT * FROM price WHERE price < 250;
Tous les disques dont le prix est inférieur à 250 ont été restitués.
La clause WHERE peut être combinée avec l'instruction AND. Supposons que nous ayons besoin de voir tous les enregistrements de la table Price où le prix est inférieur à 250 et l'identifiant est supérieur à 3. Nous pouvons exécuter la commande suivante :
SELECT * FROM price WHERE id > 3 AND price < 250;
Un seul enregistrement a été renvoyé. La raison en est qu'il doit remplir toutes les conditions spécifiées, c'est-à-dire un identifiant supérieur à 3 et un prix inférieur à 250. Si l'une de ces conditions n'est pas respectée, le disque ne sera pas restitué.
La clause peut également être combinée avec la commande OR. Remplaçons le AND dans notre commande précédente par OR et voyons le type de sortie que nous recevons :
SELECT * FROM price WHERE id > 3 OR price < 250;
Nous obtenons désormais 2 records au lieu de 1. En effet, pour qu'un record de qualification soit atteint, il suffit qu'il remplisse une des conditions spécifiées.
J'aime
Cette clause est utilisée pour spécifier le modèle de données lors de l'accès aux données de table dans lesquelles une correspondance exacte est nécessaire. Il peut être combiné avec les instructions INSERT, UPDATE, SELECT et DELETE.
Vous devez transmettre le modèle de données que vous recherchez à la clause, et il renverra vrai ou faux. Voici les caractères génériques qui peuvent être utilisés avec la clause :
- % : pour faire correspondre 0 ou plusieurs caractères.
- _ : pour faire correspondre un seul caractère.
Voici la syntaxe de la clause LIKE :
SELECT field_1, field_2,... FROM tableName1, tableName2,... WHERE fieldName LIKE condition;
Montrons comment utiliser la clause avec le caractère générique %. Utilisons la table Book avec les enregistrements suivants :
Nous devons voir tous les enregistrements dont le nom commence par M. Nous pouvons exécuter la commande suivante :
SELECT name FROM book WHERE name LIKE 'M%';
Tous les enregistrements ont été renvoyés car leurs noms commencent par la lettre M. Pour voir tous les noms se terminant par 4, vous pouvez exécuter la commande suivante :
SELECT name FROM book WHERE name LIKE '%4';
Un seul nom a été renvoyé car c'est le seul à remplir la condition.
Nous pouvons également entourer le modèle de recherche du caractère générique :
SELECT name FROM book WHERE name LIKE '%DB%';
Outre le caractère générique %, la clause LIKE peut être utilisée avec le caractère générique _. Il s'agit du caractère générique de soulignement et il ne recherchera qu'un seul caractère.
Travaillons avec la table Price avec les enregistrements suivants :
Vérifions l'enregistrement dans lequel le prix est comme 1_0. Nous exécutons la commande suivante :
SELECT * FROM price WHERE price LIKE '1_0';
Il a renvoyé le record dans lequel le prix est de 190. On peut également essayer un autre modèle :
SELECT * FROM price WHERE price LIKE '_2_';
Il nous est possible d'utiliser la clause LIKE avec l'opérateur NOT. Cela renverra tous les enregistrements qui ne correspondent pas au modèle spécifié. Par exemple:
Utilisons la table Price avec les enregistrements suivants :
Retrouvons tous les enregistrements où le prix ne commence pas par 2 :
SELECT * FROM price WHERE price NOT LIKE '2%';
Un seul enregistrement ne correspond pas au modèle spécifié.
Trier par
Cette clause nous aide à trier nos enregistrements par ordre croissant ou décroissant. Nous l'utilisons avec l'instruction SELECT, comme indiqué ci-dessous :
SELECT expression(s) FROM tables [WHERE condition(s)] ORDER BY exp [ ASC | DESC ];
Il nous est possible d'utiliser cette clause sans ajouter ni la partie ASC ni DESC. Par exemple:
Nous utiliserons la table Price avec les enregistrements suivants :
Exécutez la commande suivante sur la table :
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
Dans la commande ci-dessus, nous avons commandé par prix. Les disques ont été classés avec les prix par ordre croissant. Cela signifie que lorsque l'on ne précise pas l'ordre, le tri se fait par défaut par ordre croissant.
Exécutons la clause avec l'option DESC :
SELECT * FROM price WHERE price LIKE '2%' ORDER BY price DESC;
Les enregistrements ont été triés par prix par ordre décroissant comme nous l'avons précisé.
Utilisons la clause ORDER BY avec l'attribut ASC :
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price ASC;
Les disques ont été classés mais avec les prix par ordre croissant. Ceci est similaire à l'utilisation de la clause ORDER BY sans les attributs ASC ou DESC.
DISTINCT
Cette clause nous aide à supprimer les doublons lors de la sélection d'enregistrements dans une table. Cela signifie que cela nous aide à obtenir des enregistrements uniques. Sa syntaxe est donnée ci-dessous :
SELECT DISTINCT expression(s) FROM tableName [WHERE condition(s)];
Pour démontrer cela, nous utiliserons le tableau Prix avec les données suivantes :
Lorsque nous sélectionnons la colonne prix dans le tableau, nous obtenons le résultat suivant :
SELECT price FROM Price;
Nous avons deux disques avec un prix de 250, créant un doublon. Nous n'avons besoin que d'enregistrements uniques. Nous pouvons les filtrer en utilisant la clause DISTINCT comme indiqué ci-dessous :
SELECT DISTINCT price FROM Price;
Nous n'avons désormais aucun doublon dans la sortie ci-dessus.
À partir de
La clause FROM utilisée pour récupérer des données à partir d'une table de base de données. Cela peut également être utile lors de la réunion de tables. Voici la syntaxe de la commande :
SELECT columnNames FROM tableName;
Pour voir le contenu de la table book, exécutez la commande suivante :
SELECT * FROM price;
La clause peut vous aider à récupérer une seule colonne d'une table de base de données. Par exemple:
SELECT price FROM Price;
Tâches avancées
Procédure stockée
Une procédure est un MariaDB programme auquel vous pouvez transmettre des paramètres. Une procédure ne renvoie pas de valeurs. Pour créer une procédure, nous utilisons la commande CREATE PROCEDURE.
Pour montrer comment créer et appeler une procédure, nous allons créer une procédure nommée myProcedure() qui nous aide à sélectionner la colonne de nom dans la table book. Voici la procédure :
DELIMITER $ CREATE PROCEDURE myProcedure() BEGIN SELECT name FROM book; END; ;
La procédure a été créée. Nous avons simplement placé l'instruction SELECT dans les clauses BEGIN et END de la procédure.
Maintenant, nous pouvons appeler la procédure par son nom comme indiqué ci-dessous :
CALL myProcedure();
La procédure renvoie la colonne de nom de la table book lorsqu'elle est appelée.
Nous pouvons créer une procédure qui prend en compte un paramètre. Par exemple, nous devons sélectionner le nom du livre et filtrer en utilisant l'identifiant du livre. Nous pouvons créer la procédure suivante pour cela :
DELIMITER $ CREATE PROCEDURE myProcedure2(book_id int) BEGIN SELECT name FROM book WHERE id = book_id; END; ;
Ci-dessus, nous avons créé une procédure nommée myProcedure2(). Cette procédure prend un paramètre entier nommé book_id qui est l'identifiant du livre dont nous devons voir le nom. Pour voir le nom du livre avec un identifiant de 3, on peut appeler la procédure comme suit :
CALL myProcedure2(3);
Fonction
Contrairement aux procédures, nous devons transmettre des paramètres aux fonctions et une fonction doit renvoyer une valeur. Pour créer une fonction dans MariaDB, nous utilisons l'instruction CREATE FUNCTION. L'instruction adopte la syntaxe suivante :
CREATE [ DEFINER = { CURRENT-USER | username } ] FUNCTION function-name [(parameter datatype [, parameter datatype]) ] RETURNS datatype [LANGUAGE SQL | DETERMINISTIC | NOT DETERMINISTIC | {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} | SQL SECURITY {DEFINER | INVOKER} | COMMENT 'comment' BEGIN declaration-section executable-section END;
Les paramètres ci-dessus sont décrits ci-dessous :
Paramètres | Description |
---|---|
Clause DEFINEUR | Ce paramètre est facultatif. Si vous ne le spécifiez pas, le définisseur deviendra l'utilisateur qui a créé la fonction. S'il est nécessaire de spécifier un définisseur différent, incluez la clause DEFINER dans laquelle le nom d'utilisateur sera le définisseur de la fonction. |
nom_fonction | Le nom qui doit être attribué à cette fonction dans le MariaDB. |
paramètre | Le(s) paramètre(s) passé(s) à la fonction. Lors de la création de la fonction, tous les paramètres sont traités comme Dans les paramètres (plutôt que les paramètres OUT/INOUT). |
return_datatype | Le type de données de la valeur de retour de la fonction. |
LANGAGE SQL | Cela affecte la portabilité mais pas la fonction. |
DÉTERMINISTE | La fonction ne renverra qu’un seul résultat lorsqu’elle recevra un certain nombre de paramètres. |
PAS DÉTERMINISTE | Il est possible que la fonction renvoie un résultat différent lorsqu'elle reçoit un certain nombre de paramètres. |
CONTIENT SQL | Informe MariaDB que cette fonction contient du SQL. La base de données ne vérifiera pas si cela est vrai. |
PAS DE SQL | Cette clause n'est pas utilisée et elle n'a aucun impact sur votre fonction. |
LIT LES DONNÉES SQL | Dit MariaDB que cette fonction utilisera les instructions SELECT pour lire les données, mais elle ne modifiera pas les données. |
MODIFIE LES DONNÉES SQL | Dit MariaDB que cette fonction utilisera INSERT, DELETE, UPDATE et autres DDL instructions pour modifier les données SQL. |
section déclaration | C'est ici que les variables locales doivent être déclarées. |
section exécutable | Le code de fonction doit être ajouté ici. |
Voici un exemple MariaDB fonction:
DELIMITER // CREATE FUNCTION sumFunc (x INT ) RETURNS INT DETERMINISTIC BEGIN DECLARE sum INT; SET sum = 0; label1: WHILE sum <= 3000 DO SET sum = sum + x; END WHILE label1; RETURN sum; END; // DELIMITER ;
On peut alors appeler la fonction ci-dessus comme suit :
select sumFunc(1000);
La commande renverra ce qui suit :
Une fois que vous avez terminé avec une fonction, ce sera bien pour vous de la supprimer. C'est simple car il suffit d'appeler l'instruction DROP FUNCTION qui prend la syntaxe suivante :
DROP FUNCTION function_name;
Par exemple, pour supprimer la fonction nommée myFunc, nous pouvons exécuter la commande suivante :
DROP FUNCTION myFunc;
INSCRIPTION
Lorsque vous devez récupérer des données de plusieurs tables à la fois, utilisez MariaDB REJOINT. Cela signifie qu'un INSCRIPTION fonctionne sur deux ou plusieurs tables. Les trois types de jointures suivants sont pris en charge dans MariaDB:
- JOINTION INTERNE/SIMPLE
- JOINTURE EXTERNE GAUCHE/JOINTURE GAUCHE
- JOINTURE EXTERNE À DROITE/JOINTURE À DROITE
Discutons-en un par un :
JOINTURE INTERNE
La jointure interne renvoie toutes les lignes des tables dans lesquelles la condition de jointure est vraie. Sa syntaxe est la suivante :
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Par exemple :
Nous utiliserons nos deux tables, nos livres et notre livre.
La table du livre contient les données suivantes :
Le tableau Prix contient les données suivantes :
L'objectif est de joindre la colonne nom de la table Livre et la colonne prix de la table Prix en une seule table. Ceci est possible avec une jointure interne, comme démontré ci-dessous :
SELECT book.name, price.price FROM book INNER JOIN price ON book.id = price.id;
La commande renvoie ce qui suit :
JOINT EXTERIEUR GAUCHE
Cette jointure renvoie toutes les lignes de la table de gauche et uniquement les lignes dans lesquelles la condition de jointure est vraie de l'autre table. Sa syntaxe est la suivante :
SELECT columns FROM table-1 LEFT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Le mot clé OUTER a été placé entre crochets car il est facultatif.
Par exemple :
SELECT book.name, price.price FROM book LEFT JOIN price ON book.id = price.id;
La commande renvoie ce qui suit :
Le dernier enregistrement du tableau ci-dessus n'a aucune valeur correspondante sur la gauche. C'est pourquoi il a été remplacé par NULL.
JOINT EXTÉRIEUR DROIT
Cette jointure renvoie toutes les lignes de la table de droite et uniquement les lignes dans lesquelles la condition de jointure est vraie de l'autre table. Sa syntaxe est la suivante :
SELECT columns FROM table-1 RIGHT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Le mot clé OUTER a été placé entre crochets car il est facultatif.
Par exemple :
SELECT book.name, price.price FROM book RIGHT JOIN price ON book.id = price.id;
La commande renvoie ce qui suit :
La raison en est que toutes les lignes du tableau de droite correspondent à celles de l’autre tableau. Si certaines lignes ne correspondaient pas, nous aurions des NULL dans la première colonne.