Maison > Article > développement back-end > Embarquez pour votre voyage MySQL
Malgré l'émergence de bases de données NoSQL modernes telles que MongoDB, Firebase et Redis ces dernières années, les bases de données SQL restent extrêmement populaires parmi les développeurs.
SQL (Structured Query Language) est un langage utilisé pour interagir avec les données de diverses bases de données, y compris des bases de données populaires telles que MySQL, PostgreSQL, Oracle et MS SQL Server.
Dans cet article, vous apprendrez tout ce que vous devez savoir pour démarrer avec MySQL, la base de données open source qui alimente les systèmes de gestion de contenu comme WordPress, les plateformes de commerce électronique comme Shopify et les plateformes de médias sociaux comme Twitter.
Vous apprendrez comment fonctionne MySQL, les bases de données relationnelles et certains de ses concepts clés, comment installer et interagir avec une base de données MySQL à l'aide de la ligne de commande et la syntaxe SQL moderne pour créer, lire, mettre à jour et supprimer des données dans MySQL.
La plupart des développeurs travaillant avec des bases de données relationnelles n'écrivent pas réellement du SQL brut. Le plus souvent, ils utilisent des bibliothèques qui effectuent un mappage objet-relationnel, ou ORM.
Ces bibliothèques font essentiellement ressembler vos tables de base de données à des objets côté serveur de votre site, afin que vous puissiez facilement manipuler les données à l'aide de n'importe quel langage de programmation orienté objet de votre choix.
Des exemples d'ORM incluent Sequelize (JavaScript), Eloquent (Laravel), SQLAlchemy (Python) et Active Record (Ruby on Rails).
ORM élimine le besoin d'écrire du code SQL brut. Au lieu de cela, vous pouvez utiliser vos connaissances en programmation orientée objet pour créer, lire, mettre à jour et supprimer des données sur une base de données SQL. ORM rend l'utilisation des bases de données relationnelles plus facile et plus intuitive.
Essentiellement, un système de gestion de base de données relationnelle se compose de deux composants principaux : une base de données et un langage de requête.
La base de données elle-même n'est qu'une collection de tables. Dans chaque tableau, vos données réelles sont organisées en colonnes et en lignes, tout comme une feuille de calcul. Les tables d'une base de données relationnelle peuvent être liées ou liées en fonction des données communes à chaque table.
Le langage de requête est utilisé pour manipuler et lire les données dans la base de données. Pour la plupart des bases de données relationnelles, le langage de requête utilisé pour manipuler les données est une variante de SQL.
Si vous souhaitez apprendre à utiliser MySQL, nous devons d'abord comprendre quelques concepts de base afin d'expliquer les concepts de base de données SQL suivants de manière visuelle, j'utiliserai un outil de visualisation de base de données appelé DrawSQL. Tout d’abord, nous découvrirons les schémas et les types de données.
Vous pouvez considérer un schéma comme un plan qui définit la structure globale d'une table et ses relations avec d'autres tables.
Par exemple, considérons le schéma de la table Users suivante :
Dans le diagramme du tableau ci-dessus, vous remarquerez que chaque ligne est un dictionnaire où les clés représentent les colonnes de la base de données et les valeurs représentent les types de données qui peuvent y être stockées.
Il existe plusieurs types de données dans MySQL, et les différents types de données de base de données SQL sont également différents.
Vous remarquerez également que id
键前面也有一个键。这表明 id
qui accepte des valeurs entières est défini à l'aide d'une contrainte de clé primaire.
Donc la valeur de id
dans chaque colonne ne peut pas être vide et doit être unique. Par conséquent, deux utilisateurs ou plus ne peuvent jamais partager la même clé primaire et chaque ligne peut être identifiée par sa clé primaire.
Ces règles forment ensemble la structure de la table users.
Examinons de plus près les contraintes de la base de données MySQL.
Nous avons vu plus tôt la contrainte de clé primaire, qui garantit que la valeur d'une clé spécifiée est unique pour chaque colonne du tableau.
Dans MySQL, les contraintes sont des règles qui autorisent ou restreignent les valeurs stockées dans une table. Ils aident à limiter le type de données qui seront insérées dans le tableau, garantissant ainsi l'exactitude et l'exhaustivité des données contenues dans le tableau.
Les contraintes suivantes sont couramment utilisées dans MySQL :
NOT NULL
: Assurez-vous que la colonne ne peut pas avoir de valeurs NULL UNIQUE
: Assurez-vous que toutes les valeurs de la colonne sont différentes les unes des autres 主键
: Combinaison de NOT NULL et UNIQUE - identifie de manière unique chaque ligne du tableau外键
: Utilisé pour relier deux tables entre ellesCREATE INDEX
: Utilisé pour créer rapidement des bases de données et récupérer des données à partir de bases de donnéesCHECK
: Assurez-vous que les valeurs de la colonne remplissent les conditions spécifiées DEFAULT
: Si aucune valeur n'est spécifiée, définissez une valeur par défaut pour la colonne Pour ajouter plus de contexte, supposons que la table Users soit utilisée pour stocker les utilisateurs enregistrés sur un site Web d'achat en ligne.
Habituellement, un site d'achat en ligne doit avoir une table Produit et une table Panier dans sa base de données. Les Produits contiendront tous les produits disponibles pour l'utilisateur et le Panier contiendra les articles spécifiques que l'utilisateur spécifique a l'intention d'acheter ainsi que la quantité de chaque article. p>
Tous les tableaux créés jusqu'à présent sont les suivants :
Toutes ces tables sont des entités uniques. Cela signifie, par exemple, que la table carts n'a pas besoin de stocker d'informations sur l'utilisateur.
Techniquement, rien ne nous empêche de fusionner les données du panier dans le tableau Utilisateurs. Après tout, les deux ensembles d’informations sont liés (l’utilisateur dispose d’un panier). Cependant, cette approche conduit finalement à une table bondée et très difficile à gérer.
Au lieu de cela, nous avons adopté une approche plus durable et créé une table Panier distincte pour stocker toutes les données liées au panier. Nous créons ensuite une référence à l'autre table en plaçant la clé étrangère user_id
和 product_id
dans la table carts.
De cette façon, le panier peut accéder à toutes les informations sur l'utilisateur propriétaire du panier et les produits présents dans le panier, bien qu'aucune information de ce type n'y soit réellement stockée.
Maintenant que nous avons une compréhension plus approfondie de MySQL et de MySQL Server, pratiquons en installant MySQL sur notre système.
Pour installer MySQL sur votre système, accédez à la page Téléchargements de la communauté MySQL et téléchargez le programme d'installation de MySQL.
Une fois le téléchargement terminé, exécutez le programme d'installation et terminez l'assistant d'installation pour installer MySQL.
Lors de la sélection du type d'installation, assurez-vous d'inclure le produit du serveur MySQL. Je recommande d'utiliser l'option Developer Default.
Après une installation réussie, vous devriez pouvoir accéder aux commandes du serveur MySQL à partir de la ligne de commande.
Cependant, pour utiliser MySQL depuis la ligne de commande, vous devez d'abord vous authentifier. Exécutez la commande suivante et remplissez l'espace réservé avec votre nom d'utilisateur :
mysql -u <your username> -p
Vous serez invité à saisir votre mot de passe administrateur et si les deux informations sont correctes, vous aurez accès à MySQL à partir de la ligne de commande.
N'oubliez pas que le nom d'utilisateur par défaut pour MySQL est root et que le mot de passe par défaut est vide.
Pour créer une base de données dans MySQL, nous utilisons l'instruction CREATE DATABASE
suivie du nom de la base de données :
CREATE DATABASE shopping_site;Une instruction
est un code qui indique au système de faire quelque chose. Les instructions SQL se terminent toujours par un point-virgule. Les mots en majuscules sont des mots-clés SQL réservés et SQL les interprétera pour effectuer certaines opérations.
L'exécution de la commande ci-dessus créera une base de données vide nommée shopping_site dans MySQL.
Pour afficher toutes les bases de données présentes dans une instance MySQL, exécutez SHOW DATABASE
.
Pour créer une table dans une nouvelle base de données, utilisez l'instruction CREATE TABLE
, suivie du nom de la table et des parenthèses contenant la liste des colonnes que nous souhaitons inclure dans cette table :
CREATE TABLE users( id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(255), last_name VARCHAR(255), email VARCHAR(255) UNIQUE NOT NULL, password VARCHAR(255), created_at TIMESTAMP, updated_at TIMESTAMP );
Pour chaque colonne de User, nous spécifions le type de données de cette colonne. Nous avons également ajouté une série de contraintes aux colonnes id et email.
L'exécution de cette commande créera une table vide mais structurée nommée users dans la base de données.
Pour créer un nouvel enregistrement dans un tableau, utilisez l'instruction INSERT INTO
, suivie du tableau dans lequel la valeur doit être insérée :
INSERT INTO users(first_name, last_name, email, password) VALUES( 'Kingsley', 'Ubah', 'ubahthebuilder@gmail.com', '12345678' );
Dans la première parenthèse, on précise la colonne dans laquelle on souhaite insérer la valeur. Ensuite, dans la deuxième parenthèse, on précise les valeurs à insérer dans le bon ordre.
L'exécution de cette commande insérera ces valeurs dans les colonnes spécifiées de la table users.
要从数据库查询数据,请使用 SELECT
语句。
例如,如果我们想从 users 表中选择所有内容,我们可以使用以下语句:
SELECT * FROM users;
星号 (*
) 代表我们数据库中的所有内容。该语句将返回整个表以及每一列。
如果我们只需要列的子集,例如 id 和 email,我们可以指定列来代替星号:
SELECT id, email FROM users;
在选择数据方面,我们的能力是无限的。
要从 MySQL 中完全删除表,请使用 DROP
语句,后跟表名称:
DROP TABLE users;
现在,使用此命令时需要小心!它将永久删除users表中的所有数据。另外,不要将其与 DROP DATABASE
语句混淆,该语句会删除整个数据库。
MySQL 是一个开源关系数据库管理系统,即使在今天,它仍然为网络的重要部分提供支持。结构化查询语言或 SQL 用于在 MySQL 数据库中操作和存储数据。
在这篇文章中,我们回顾了 SQL 的一些关键概念,包括 ORM、模式、约束和数据库规范化。我们还回顾了 MySQL 的安装和设置过程。
最后,我们介绍了一些负责在 MySQL 中操作数据的 SQL 语句。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!