Le développement d'applications Web à l'aide d'un magasin de données statique dans lequel les données doivent être mises à jour, stockées et manipulées fréquemment peut être une tâche fastidieuse. Cependant, cet article vous fera découvrir le monde des bases de données relationnelles vous permettant de maximiser le potentiel de vos données..
Avec l’expansion constante des applications Web et des sites Web axés sur les utilisateurs, il devient nécessaire de disposer d’un moyen de stocker les données dans un environnement informatique.
mode organisée qui peut être récupérée et manipulée à la volée; quelque chose qui est impossible avec un contenu statique.
Pour ce faire, une base de données doit être utilisée!
Une base de données dans sa forme la plus simple est la collecte de données de manière organisée, qu’elle utilise un classeur ou une base de données informatisée..
L'intégration d'une base de données dans votre site Web ou votre application Web vous permet de stocker et de récupérer des données à l'aide de commandes spécifiques..
Pour cet article, nous utiliserons un package du système de gestion de base de données relationnelle appelé MySQL..
C'est un logiciel open-source disponible sous la licence publique générale GNU qui le rend bien sûr gratuit.!
Le site Web MySQL est disponible à l'adresse http://www.mysql.com/. Tous les mots soulignés dans cet article indiquent une fonction MySQL. Vous pouvez trouver une documentation complète sur ces fonctions sur le site Web MySQL..
POINTE: Pour rechercher une fonction sur le site Web MySQL, ajoutez simplement le nom de la fonction à l'URL MySQL. PAR EXEMPLE. http://www.mysql.com/SELECT cet exemple rechercherait select.
J'ai créé une version modifiée du bookmarklet de recherche Google de Jesse Ruderman afin d'effectuer une recherche dans la documentation MySQL 5.1. Pour l'utiliser, il suffit de mettre en surbrillance le mot souligné, puis d'appuyer sur le bookmarklet à afficher dans les résultats de la recherche. Vous pouvez également lancer le bookmarklet avec rien mis en surbrillance pour recevoir une boîte de dialogue vous demandant de saisir ce que vous souhaitez rechercher..
Bookmarklet: > RECHERCHE MySQL
Afin de stocker des données dans une base de données, une base de données doit tout d'abord être créée. Cette base de données peut alors stocker de nombreuses tables (imaginez un classeur contenant de nombreux fichiers); chaque table doit avoir des colonnes définies, et de ces colonnes sont créées pour stocker des données spécifiques (imaginez un formulaire de saisie de données). Il est possible de limiter ce qui peut être entré dans ces données, telles que des données numériques ou des limites de caractères, par exemple..
Une fois que les données ont été entrées dans la base de données, elles seront stockées dans une table appropriée. La table se composera alors de lignes et de colonnes, à la manière d'un tableur, à mesure que les données sont enregistrées et affichées sous forme de tableau. MySQL peut gérer plusieurs bases de données pouvant contenir plusieurs tables. Des niveaux d'accès peuvent être accordés à différents utilisateurs pour fournir ou révoquer des privilèges spécifiques.
MySQL utilise des commandes / fonctions basées sur SQL (langage de requête structuré). Cela nous permet d'utiliser des mots-clés pour spécifier les données que nous souhaitons renvoyer. MySQL implémente ensuite des fonctionnalités supplémentaires pour améliorer les fonctionnalités disponibles. Les mots clés sont généralement faciles à comprendre et se rapportent souvent à un mot ou à une phrase anglaise (E.G.. SÉLECTIONNER, METTRE À JOUR, OÙ).
Dans cet article, nous couvrirons:
Pour utiliser MySQL, il est nécessaire de l’installer, que ce soit sur notre système local ou sur un hôte Web distant. Cependant, pour pouvoir se connecter à l'un ou l'autre, nous devons d'abord avoir une interface à utiliser..
Aujourd'hui, nous utiliserons le paquet essentials disponible sur le site Web de MySQL à l'adresse http://dev.mysql.com/downloads/..
Au moment de l'écriture, la version stable actuelle est la 5.1 et je discuterai de la manière de l'installer sur le système d'exploitation Windows. Tout d’abord, localisez le logiciel dont vous avez besoin, je vais utiliser la version Windows 64 bits, mais vous pouvez choisir d’autre chose en fonction de l’architecture de votre système. Pour cet article, j'ai choisi d'utiliser le package essentials car il inclut toutes les fonctionnalités nécessaires. Vous pouvez comparer les différences entre les versions de Windows à l’adresse http://dev.mysql.com/doc/refman/5.1/en/windows-choosing-package.html.
Une fois que vous avez téléchargé l'exécutable d'installation approprié, lancez-le et la fenêtre ci-dessus s'affichera. Comme vous pouvez le constater, j'installe la version 5.1.30. Appuyez sur Suivant pour passer à l'écran suivant..
J'ai choisi de rester avec l'installation typique, mais n'hésitez pas à choisir les composants que vous souhaitez installer. Vous aurez besoin du serveur MySQL et des fichiers de données si vous travaillez sur votre machine locale. Toutefois, si vous souhaitez utiliser une base de données distante, vous pouvez choisir de ne pas installer ces fonctionnalités.. Vous aurez besoin du shell en ligne de commande MySQL car il s’agit de l’application que nous utiliserons.. De nouveau, si vous n'utilisez pas de base de données locale, vous pouvez ignorer les utilitaires de ligne de commande et la configuration de l'instance du serveur. Cet article ne couvrira pas l'utilisation de C avec MySQL. Toutefois, si vous développez à l'aide de C, vous pouvez choisir de l'installer. Appuyez sur Suivant pour passer à l'écran suivant..
Vous serez ensuite invité à confirmer vos choix, appuyez sur Installer si vous êtes satisfait, sinon appuyez sur Retour pour apporter des modifications..
Votre installation va commencer. À ce stade, un anti-virus ou un contrôle de compte d'utilisateur Windows Vista peut vous interrompre. Il indique qu'un programme demande à être installé ou à accéder à des fichiers spécifiques. Ce sera signé par MySQL AB; Il s'agit de la société qui exploite et entretient MySQL et que vous pouvez consulter à l'adresse http://www.mysql.com/about/..
Une fois installé, assurez-vous que vous avez coché Configurer le serveur MySQL maintenant (s'il est installé) et cliquez sur Terminer. Félicitations, vous avez correctement installé MySQL Server / composants. Ensuite, l'assistant de configuration de l'instance du serveur MySQL devrait se charger. Cependant, s'il ne démarre pas, ne vous inquiétez pas, vous pouvez y accéder dans le dossier des programmes MySQL (s'il est installé)..
Nous allons maintenant configurer votre installation (si vous avez installé le serveur), appuyez sur Suivant pour passer à l'écran suivant..
Vous avez maintenant la possibilité d'utiliser une configuration standard. Cependant, j'utiliserai une configuration détaillée qui me permettra de personnaliser différents aspects de mon installation..
J'ai choisi ceci en tant que machine de développement; Cependant, vous pouvez choisir quelle option vous préférez. La machine du développeur autorisera une utilisation complète, mais évitera d’utiliser trop de ressources. Appuyez sur Suivant pour passer à l'écran suivant..
Cette installation étant destinée à des fins de développement et non à un projet spécifique, j'ai choisi une base de données multifonctionnelle qui permet d'utiliser le moteur de stockage InnoDB et MyISAM. Pour en savoir plus sur les moteurs de stockage, consultez http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html. Appuyez sur Suivant pour passer à l'écran suivant..
Vous devez maintenant sélectionner l'emplacement où vous souhaitez stocker le fichier de données InnoDB. En fonction de l'espace de stockage disponible, vous souhaiterez peut-être le modifier si vous disposez d'une capacité plus grande ou plus rapide. Appuyez sur Suivant pour passer à l'écran suivant..
Vous devez maintenant configurer le nombre de connexions simultanées que vous allez devoir connecter à votre base de données à tout moment. Choisir DSS autorise jusqu'à 100 connexions mais suppose en moyenne 20 connexions simultanées. OLTP permet jusqu'à 500 connexions simultanées. Cependant, pour notre machine de développement, nous ne faisons souvent qu'une seule connexion; par conséquent, je règle le réglage manuel sur 5. Appuyez sur Suivant pour passer à l'écran suivant..
Vous avez maintenant le choix de personnaliser les paramètres TCP / IP. J'ai décoché la case pour le désactiver. En le désactivant, cela empêche les connexions distantes à la base de données. Vous pouvez ensuite définir le mode serveur, je laisse cette case cochée (pour plus d'informations sur les modes serveur, consultez http://dev.mysql.com/doc/refman/5.1/fr/server-sql-mode.html). . Appuyez sur Suivant pour passer à l'écran suivant..
Nous devons maintenant sélectionner le jeu de caractères / encodage que nous allons utiliser. J'ai choisi UTF8 car cela permet de saisir différentes langues (lecteurs internationaux). Appuyez sur Suivant pour passer à l'écran suivant..
Vous devez maintenant décider si vous souhaitez exécuter le serveur en tant que service. Vous pouvez personnaliser le nom du service à l'aide de la liste déroulante. En installant MySQL en tant que service par défaut, le serveur sera démarré automatiquement et redémarrera même en cas d'échec. Je recommande d'utiliser le paramètre ci-dessus. Vous avez également la possibilité d'inclure les fichiers MySQL Bin dans le chemin de Windows. Cela nous permet d’appeler MySQL directement à partir de la ligne de commande, je vous le recommande également. Appuyez sur Suivant pour passer à l'écran suivant..
Vous devez maintenant fournir un mot de passe pour le compte root. C'est le compte 'maître' avec tous les privilèges (le nom d'utilisateur du compte sera 'root'); Je ne recommande pas de laisser ce champ vide! Le choix d'activer l'accès depuis les machines racine n'est pas coché par défaut; Je l’avais gardé ainsi car j’avais désactivé les paramètres TCP / IP, mais le risque de sécurité est plus élevé si les détails tombent entre de mauvaises mains. J'ai également désactivé le choix d'activer un compte anonyme car cette base de données est destinée à un usage personnel. Appuyez sur Suivant pour passer à l'écran suivant..
Votre configuration d'installation est maintenant prête à être appliquée, appuyez sur Exécuter pour lancer le processus..
Vous devriez alors recevoir un message de configuration réussi. Une fois terminé, appuyez sur terminer pour quitter cet assistant. Vous avez maintenant terminé la configuration avec succès.
Si vous installez MySQL sur un autre système d'exploitation ou si vous souhaitez vous reporter à la documentation officielle, consultez la page http://dev.mysql.com/doc/refman/5.1/fr/installing.html..
Maintenant que le serveur est installé, nous pouvons maintenant nous y connecter!
Je vais utiliser la CLI Windows (interface de ligne de commande) pour initialiser la connexion, mais vous pouvez utiliser la CLI MySQL présente dans le dossier des programmes MySQL..
Commencez par ouvrir une invite de commande en ouvrant la boîte de dialogue Exécuter située dans le menu Démarrer, puis tapez CMD et appuyez sur [Entrée]; sur lequel vous verrez une fenêtre semblable à celle ci-dessous.
La première commande que nous allons taper va se connecter au serveur avec notre nom d'utilisateur et mot de passe.
Il existe plusieurs façons de se connecter au serveur, qui font toutes la même tâche..
La commande de connexion MySQL utilise la syntaxe suivante:
mysql [hôte] [port] [nom d'utilisateur] [mot de passe] [base de données]
Chacun de ces arguments peut être passé à la commande mysql comme suit:
Remarque: En fournissant la chaîne de mot de passe complète comme celle-ci, celle-ci sera visible à l'écran. Si vous préférez, vous pouvez simplement fournir la commande -p ou -password sans mot de passe et afficher une invite de saisie de mot de passe masqué. Nous n'avons pas non plus besoin d'un terminateur de commande, car nous ne saisissons pas MySQL dans la CLI de Windows..
Nous souhaitons donc nous connecter à notre ordinateur local afin d'éliminer l'argument hôte (voir la section sur la connexion à un hôte distant plus loin dans cet article). Nous voulons nous connecter en tant que compte root pour nous donner tous les privilèges. Nous aurons donc besoin de notre nom d'utilisateur et de notre mot de passe. comme nous n'avons actuellement aucune base de données configurée, nous ne fournirons pas l'argument de base de données non plus.
Je vais me connecter au compte utilisateur "root" sur ma machine locale avec le mot de passe "secret" à l'aide de la commande suivante:
mysql -uroot -psecret
Cela se connecte à MySQL en utilisant l’utilisateur root avec un mot de passe secret. Les commandes suivantes obtiendront le même résultat.
mysql --username = root --password = secret
mysql -uroot --password = secret
mysql --username = root -psecret
Le compte utilisateur 'root' est le compte principal MySQL créé lors de l'installation. c’est le même utilisateur que vous devriez être connecté en tant que. Toutefois, veuillez noter qu'il n'est pas recommandé de laisser un compte root activé sur une installation Web. Veuillez vous reporter aux comptes d'utilisateurs et privilèges sur le site Web de MySQL pour plus d'informations..(http://dev.mysql.com/doc/refman/5.1/en/adding-users.html)
(ignorez-le si vous vous connectez à une base de données locale) Pour vous connecter à votre base de données distante, souvent fournie par un fournisseur d'hébergement, vous devez connaître l'adresse IP ou le nom d'hôte de votre base de données (et éventuellement le numéro de port s'il a été utilisé). la valeur par défaut est 3306). Vous vous y connecteriez comme une base de données locale en remplaçant les arguments d'hôte et de port en fonction de votre configuration d'hébergement..
Pour vous déconnecter de la session MySQL, envoyez la commande QUIT (ou \ q).
QUITTER
Maintenant que nous sommes connectés (après avoir reçu le message "Bienvenue sur le moniteur MySQL."), Nous sommes prêts à envoyer nos commandes, mais il reste quelques points à noter..
MySQL permet d'utiliser des espaces sans affecter les commandes entrées. Cela est très utile pour rendre nos requêtes aussi lisibles que possible (voir l’image ci-dessous). Les deux requêtes donnent le même résultat, mais la seconde est beaucoup plus facile à lire..
Remarque: Cette requête ne fonctionnera pas car nous n'avons pas de base de données configurée ceci est uniquement à des fins de démonstration!
Vous pouvez voir le code que j'ai utilisé ci-dessous. Les deux requêtes entrées sont identiques. Cependant, en appuyant sur la touche [Entrée], le CLI nous permet de poursuivre la commande sur une ligne distincte. MySQL a implémenté une fonctionnalité permettant d'annuler une entrée si votre commande s'étend sur plusieurs lignes, il vous suffit d'envoyer la commande clear "\ c".
SÉLECTIONNER fld_1longlonglong, fld_2longlonglong, fld_3longlonglong, fld_4longlonglong, fld_5longlonglong, fld_6longlonglong, fld_7longlonglong, tl_nomlong
Cela signifie cependant également qu’une commande spéciale doit être envoyée pour indiquer qu’elle est alors la fin de la commande. Nous pouvons utiliser l'un des éléments suivants:
Les deux premiers terminateurs sont identiques, mais le troisième, lorsqu'il est utilisé dans une requête renvoyant des données, affiche le résultat dans un tableau vertical plutôt qu'horizontal. Il est bon de garder à l’esprit si nous renvoyons des informations à partir d’une table contenant plusieurs colonnes, car elle risque de devenir illisible..
Nous allons ensuite importer un fichier SQL. Il s’agit du même processus que si vous restauriez une sauvegarde de base de données. Ce fichier contient simplement toutes les commandes nécessaires pour dupliquer la base de données au moment de la sauvegarde..
Idéalement, nous créerions notre propre base de données. Toutefois, la création d'une base de données peut être un sujet complexe comprenant des relations, des conventions de dénomination, des moteurs de stockage et des paramètres de champ, ce qui dépasse le cadre de cet article..
Nous allons utiliser une base de données pré-préparée disponible à l'adresse http://dev.mysql.com/doc/#sampledb jusqu'à ce que vous voyiez les exemples de bases de données et que vous souhaitiez télécharger le fichier. monde base de données
(world.sql).
Une fois connecté à MySQL, nous allons restaurer la base de données mondiale car il s’agit d’une sauvegarde d’une base de données précédente. Ce fichier est simplement une liste de commandes MySQL qui seront exécutées pour créer la nouvelle base de données. Ce fichier SQL contient uniquement des données de table et ne stocke pas les informations de la base de données. Par conséquent, nous devons d'abord créer une base de données dans laquelle stocker les tables (voir l'analogie au début de l'article)..
Remarque: Pour économiser la longueur de cet article, je placerai plusieurs commandes dans les extraits de code. Vous pouvez les séparer ou les lancer ensemble pour rechercher les terminateurs de commande présentés précédemment dans cet article. Sachez aussi que Les fonctions MySQL ne sont pas sensibles à la casse si SELECT est identique à select et SELEcT. Personnellement, je capitalise les fonctions MySQL afin de rendre mes requêtes aussi lisibles que possible, car les requêtes deviennent de plus en plus longues et complexes, cela devient une fonctionnalité précieuse aux côtés des espaces..
Pour rendre la base de données, nous allons émettre le CREATE DATABASE commande, une fois créé nous allons ensuite UTILISATION la base de données.
CREATE DATABASE db_world; USE db_world;
Il est temps d’importer la sauvegarde, il existe de nombreuses façons de le faire, son traitement par lots (http://dev.mysql.com/doc/refman/5.0/fr/batch-commands.html). Puisque nous sommes déjà connectés à MySQL, nous allons utiliser le LA SOURCE commande suivie de notre nom de fichier. J'ai extrait le fichier "world.sql" du dossier zip et je l'ai placé à la racine de mon lecteur C: vous devez connaître le chemin absolu de votre fichier source. Si vous n'indiquez que votre nom de fichier, MySQL recherchera la source dans le dossier dans lequel vous avez lancé votre invite de commande à partir de (C: \ USERS \ USERNAME sur vista C: \ Documents and Settings \ Nom d'utilisateur.
sur XP). Vous ne pouvez pas accéder à un répertoire différent lorsque vous utilisez l'interface MySQL, assurez-vous de fournir le chemin absolu approprié. Après avoir lancé cette commande, la fenêtre CLI émettra chacune des commandes du fichier SQL. Une fois l’opération terminée, vous serez renvoyé à l’invite mysql>..
SOURCE C: \ world.sql;
Non, vous avez une base de données entièrement fonctionnelle à votre disposition. Cependant on ne sait pas encore ce qu'il contient! Faisons un peu de plongée; nous allons utiliser les commandes suivantes:
MONTRER LES TABLES;
Après l’émission de la commande, nous savons maintenant que la base de données contient trois tables: "ville", "pays" et "country". Ensuite, nous allons découvrir quels champs ces tables stockent. Vous voulez émettre le DESCRIBE nom_table pour chacune des tables.
Après avoir émis la commande DESCRIBE pour la table de pays, vous verrez ci-dessous qu'elle a renvoyé un désordre illisible. Pour résoudre ce problème, utilisez simplement le terminateur \ G au lieu de;.
Décrire la ville; Décrire le pays; DESCRIBE pays \ G DESCRIBE langue de la campagne;
Maintenant que nous avons toutes les informations nécessaires pour manipuler les tables à notre guise, nous avons le nom d'utilisateur, le mot de passe, le nom de la base de données, les noms de tables et de champs de la base de données si vous développez dans une autre langue, telle que PHP. vous auriez besoin de renvoyer des données sur votre système (voir http://php.net/mysql).
Nous pouvons choisir de consigner la sortie de l'interface MySQL. Nous faisons cela en envoyant la commande \ T filename.txt. Pour arrêter la journalisation, nous émettons la commande \ t. L'exemple ci-dessous enregistre un fichier appelé log.txt dans le répertoire racine du disque dur E:. Sur ma machine, il s’agit d’un disque dur disponible. Veuillez noter que vous devez avoir la permission d’accéder à ce disque; vous ne pourrez pas écrire à la racine du lecteur d'installation Windows sous Windows Vista sans lancer MySQL à partir d'une invite de commande avec privilèges élevés.
\ T E: \ log.txt MONTRER TABLES; \ t
E: \ log.txt contenu: mysql> SHOW TABLES; + -------------------- + | Tables_in_db_world | + -------------------- + | ville | | pays | | langue de pays | + -------------------- + 3 lignes dans le set (0.00 sec) mysql> \ t
Le moniteur MySQL est fourni avec une extension appelée mysqldump; comme on pouvait s'y attendre, supprime les informations nécessaires de la base de données pour pouvoir créer un réplica exact. La commande mysqldump utilise la syntaxe suivante:
mysqldump [nom d'utilisateur] [mot de passe] [nom de la base de données]> [fichier de vidage]
Pour le lancer, vous devez être déconnecté de la session MySQL..
Le code suivant se connecte à la session MySQL avec le compte utilisateur root avec le mot de passe secret, puis il vide la table db_world dans le fichier db_worldbak.sql..
mysqldump -uroot -psecret db_world> db_worldbak.sql
Après avoir lu cet article, j’espère que vous avez acquis une solide compréhension de la manière de s’interfacer avec mysql au niveau de la ligne de commande. Quelque chose qui peut s'avérer utile car les commandes peuvent être envoyées directement à la base de données MySQL plutôt que via un autre langage de script. Ne vous arrêtez pas ici, http://dev.mysql.com/doc/ est vraiment une excellente ressource et en un rien de temps, vous allez créer votre propre base de données. Ci-dessous, j'ai écrit quelques requêtes de base pour effectuer une recherche dans la base de données mondiale et quelques exemples que vous pouvez essayer. Permet de voir si vous pouvez les comprendre, sinon vous savez où se trouve la documentation.
SELECT Nom, Population DE la ville WHERE CountryCode = "GBR" ORDER BY Population ASC LIMIT 0,5 \ G
En anglais cette requête SELECTIONNE et retourne le nom et la population DE la table de la ville OÙ le code pays est GBR, les résultats sont ensuite filtrés à l'aide de COMMANDÉ PAR Population ASC (population ascendante) et est alors LIMITEed pour renvoyer les 5 premiers résultats. Cette requête affiche le nom et la population des 5 villes les moins peuplées de Grande-Bretagne..
Et un de plus pour la route…
SÉLECTIONNER CONCAT (ville.Nom, 'parler le', country.Language, 'langue') comme détail, city.Population DE la ville, campagne, O city.CountryCode = country.CountryCode AND city.countryCode = 'GBR' AND countrylanguage.Language = 'Anglais' ORDER BY city.Population ASC LIMIT 5,5 \ G
En anglais cette requête SÉLECTIONNERs données, il CONCATenates Nom de la table de ville et Langue de la table de pays et affiche les résultats COMME Détaillez également la requête SÉLECTIONNERs Population de la table de la ville. Encore cette requête SÉLECTIONNERs ses données DE la table de ville et la table de langue de pays, elles renvoient des données dans lesquelles le code de pays de la ville est identique à celui de la langue du pays. Les données sont filtrées pour afficher les pays OÙ le code de pays est GBR ET la langue est l'anglais, c'est alors ORDREed PAR population croissante, et les résultats sont LIMITEpour afficher les résultats de 6 à 10. Cette requête est connue sous le nom de JOINTURE INTERNE, comme deux tables sont liées ensemble dans la requête. Cette requête affichera les 6ème et 10ème villes les moins peuplées avec le code pays GBR qui parle anglais..
Comment ai-je su quelles données écrire ces requêtes pour vous demander! En exécutant la requête SELECT suivante, il utilise le caractère générique pour sélectionner tous les champs et renvoyer toutes les données de la table spécifiée. A partir du résultat de la requête, j'ai compris ce qui était inclus et j'ai fait quelques scénarios que je voulais interroger..
SELECT * FROM nom_de_table;
Voici quelques fonctions que vous voudrez peut-être examiner plus en détail pour commencer:
Cherchez un tutoriel de suivi sur la récupération et la manipulation des données. N'hésitez pas à poser des questions dans les commentaires et je ferai de mon mieux pour y répondre. Assurez-vous de commencer une question avec #Q afin que je puisse les trouver!