MariaDB Tutoriel
Qu'est-ce que le 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) Choisissez 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) Le 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 A 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.
Dรจs
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.






































































