Quelles sont les requêtes de connexion aux tables mysql ?
Les requêtes de connexion pour les tables mysql incluent : 1. La connexion croisée, qui est généralement utilisée pour renvoyer le produit cartésien de la table connectée ; 2. La jointure interne, qui supprime principalement certaines parties des résultats de la requête en définissant la connexion ; Conditions.Connexion croisée des lignes de données ; 3. Connexion externe, divisez d'abord la table connectée en une table de base et une table de référence, puis renvoyez les enregistrements qui remplissent et ne remplissent pas les conditions basées sur la table de base.
(Tutoriel recommandé : Tutoriel vidéo mysql)
Dans une base de données relationnelle, il y a Il y a une relation, Ainsi, dans les applications pratiques, les requêtes multi-tables sont souvent utilisées. La requête multi-tables consiste à interroger deux ou plusieurs tables en même temps.
Dans MySQL, les requêtes multi-tables incluent principalement les jointures croisées, les jointures internes et les jointures externes.
Jointure croisée
La jointure croisée (CROSS JOIN) est généralement utilisée pour renvoyer le produit cartésien de la table de jointure. Le format de syntaxe de
interconnexion est le suivant :
SELECT <字段名> FROM <表1> CROSS JOIN <表2> [WHERE子句]
ou
SELECT <字段名> FROM <表1>, <表2> [WHERE子句]
La description de la syntaxe est la suivante :
Nom du champ : ce qui doit être interrogé. Nom du champ.
: le nom de la table qui nécessite une connexion croisée.
Clause WHERE : utilisée pour définir les conditions de requête pour les connexions croisées.
Remarque : lorsque plusieurs tables sont jointes de manière croisée, utilisez simplement CROSS JOIN ou, en continu après FROM. Les résultats de retour des deux syntaxes ci-dessus sont les mêmes, mais la première syntaxe est la méthode d'écriture standard officiellement recommandée.
Lorsqu'il n'y a pas de relation entre les tables connectées, nous omettrons la clause WHERE. Dans ce cas, le résultat renvoyé est le produit cartésien des deux tables, et le nombre de résultats renvoyés est le produit du. lignes de données des deux tables. Il convient de noter que si chaque table comporte 1 000 lignes, alors le nombre de résultats renvoyés sera de 1 000 × 1 000 = 1 000 000 lignes et la quantité de données est très énorme.
Inner JOIN
Inner JOIN supprime principalement certaines lignes de données des résultats de la requête en définissant les conditions de connexion de connexion croisée. Pour faire simple, les expressions conditionnelles sont utilisées pour éliminer certaines lignes de données dans les connexions croisées.
La jointure interne utilise le mot-clé INNER JOIN pour connecter deux tables et utilise la clause ON pour définir les conditions de connexion. Sans conditions de jointure, INNER JOIN et CROSS JOIN sont syntaxiquement équivalents et interchangeables. Le format de syntaxe de
jointure interne est le suivant :
SELECT <字段名> FROM <表1> INNER JOIN <表2> [ON子句]
Copier après la connexionLa description de la syntaxe est la suivante.
Nom du champ : le nom du champ à interroger.
: le nom de la table qui nécessite une jointure interne.
INNER JOIN : Le mot-clé INNER peut être omis dans les jointures internes, et seul le mot-clé JOIN est utilisé.
Clause ON : utilisée pour définir les conditions de connexion des jointures internes.
INNER JOIN peut également utiliser la clause WHERE pour spécifier les conditions de connexion, mais la syntaxe INNER JOIN ... ON est la méthode d'écriture standard officielle, et la clause WHERE affectera la requête à un moment donné, la performance.
Lors de la connexion de plusieurs tables, utilisez simplement INNER JOIN ou JOIN en continu après FROM.
Jointure externe
Les résultats de la requête de la jointure interne sont tous les enregistrements qui répondent aux conditions de connexion, et la jointure externe divisera d'abord le table connectée en table de base et table de référence, puis renvoie les enregistrements qui remplissent et ne remplissent pas les conditions basées sur la table de base.
Les jointures externes peuvent être divisées en jointures externes gauches et jointures externes droites. Ce qui suit est une introduction aux jointures externes gauches et aux jointures externes droites basée sur des exemples.
Jointure gauche
Jointure externe gauche, également connue sous le nom de jointure gauche, utilise le mot-clé LEFT OUTER JOIN pour connecter deux tables et utilise la clause ON pour définir la connexion conditions. Le format de syntaxe de
jointure gauche est le suivant :
SELECT <字段名> FROM <表1> LEFT OUTER JOIN <表2> <ON子句>
Copier après la connexionLa description de la syntaxe est la suivante.
Nom du champ : le nom du champ à interroger.
: le nom de la table qui nécessite une jointure à gauche.
LEFT OUTER JOIN : Le mot-clé OUTER peut être omis dans la jointure gauche et seul le mot-clé LEFT JOIN est utilisé.
Clause ON : utilisée pour définir la condition de connexion de la jointure gauche et ne peut pas être omise.
Dans la syntaxe ci-dessus, "Tableau 1" est la table de base et "Tableau 2" est la table de référence. Lors d'une requête avec une jointure gauche, vous pouvez interroger tous les enregistrements du « Tableau 1 » et les enregistrements correspondant aux conditions de jointure du « Tableau 2 ». Si une ligne du « Tableau 1 » n'a pas de ligne correspondante dans le « Tableau 2 », alors dans le résultat renvoyé, les valeurs des champs du « Tableau 2 » seront nulles (NULL).
Exemple 1
Avant d'effectuer la requête de jointure gauche, nous vérifions d'abord les données dans les tables tb_course et tb_students_info. Les instructions SQL et les résultats d'exécution sont les suivants.
mysql> SELECT * FROM tb_course; +----+-------------+ | id | course_name | +----+-------------+ | 1 | Java | | 2 | MySQL | | 3 | Python | | 4 | Go | | 5 | C++ | | 6 | HTML | +----+-------------+ 6 rows in set (0.00 sec) mysql> SELECT * FROM tb_students_info; +----+--------+------+------+--------+-----------+ | id | name | age | sex | height | course_id | +----+--------+------+------+--------+-----------+ | 1 | Dany | 25 | 男 | 160 | 1 | | 2 | Green | 23 | 男 | 158 | 2 | | 3 | Henry | 23 | 女 | 185 | 1 | | 4 | Jane | 22 | 男 | 162 | 3 | | 5 | Jim | 24 | 女 | 175 | 2 | | 6 | John | 21 | 女 | 172 | 4 | | 7 | Lily | 22 | 男 | 165 | 4 | | 8 | Susan | 23 | 男 | 170 | 5 | | 9 | Thomas | 22 | 女 | 178 | 5 | | 10 | Tom | 23 | 女 | 165 | 5 | | 11 | LiMing | 22 | 男 | 180 | 7 | +----+--------+------+------+--------+-----------+ 11 rows in set (0.00 sec)
Copier après la connexionInterrogez tous les noms d'étudiants et les noms de cours correspondants dans les tables tb_students_info et tb_course, y compris les étudiants sans cours. L'instruction SQL et les résultats d'exécution sont les suivants.
mysql> SELECT s.name,c.course_name FROM tb_students_info s LEFT OUTER JOIN tb_course c -> ON s.`course_id`=c.`id`; +--------+-------------+ | name | course_name | +--------+-------------+ | Dany | Java | | Henry | Java | | NULL | Java | | Green | MySQL | | Jim | MySQL | | Jane | Python | | John | Go | | Lily | Go | | Susan | C++ | | Thomas | C++ | | Tom | C++ | | LiMing | NULL | +--------+-------------+ 12 rows in set (0.00 sec)
Copier après la connexionVous pouvez voir que le résultat en cours affiche 12 enregistrements. L'étudiant nommé LiMing n'a actuellement aucun cours car il n'y a aucune information de cours pour l'étudiant dans la table tb_course correspondante, donc cet enregistrement est uniquement retiré de. la table tb_students_info. La valeur correspondante dans la table tb_course est NULL.
右连接
右外连接又称为右连接,右连接是左连接的反向连接。使用 RIGHT OUTER JOIN 关键字连接两个表,并使用 ON 子句来设置连接条件。
右连接的语法格式如下:
SELECT <字段名> FROM <表1> RIGHT OUTER JOIN <表2> <ON子句>
Copier après la connexion语法说明如下。
字段名:需要查询的字段名称。
<表1><表2>:需要右连接的表名。
RIGHT OUTER JOIN:右连接中可以省略 OUTER 关键字,只使用关键字 RIGHT JOIN。
ON 子句:用来设置右连接的连接条件,不能省略。
与左连接相反,右连接以“表2”为基表,“表1”为参考表。右连接查询时,可以查询出“表2”中的所有记录和“表1”中匹配连接条件的记录。如果“表2”的某行在“表1”中没有匹配行,那么在返回结果中,“表1”的字段值均为空值(NULL)。
例 2
在 tb_students_info 表和 tb_course 表中查询所有课程,包括没有学生的课程,SQL 语句和运行结果如下。 mysql> SELECT s.name,c.course_name FROM tb_students_info s RIGHT OUTER JOIN tb_course c -> ON s.`course_id`=c.`id`; +--------+-------------+ | name | course_name | +--------+-------------+ | Dany | Java | | Green | MySQL | | Henry | Java | | Jane | Python | | Jim | MySQL | | John | Go | | Lily | Go | | Susan | C++ | | Thomas | C++ | | Tom | C++ | | NULL | HTML | +--------+-------------+ 11 rows in set (0.00 sec)
Copier après la connexion可以看到,结果显示了 11 条记录,名称为 HTML 的课程目前没有学生,因为对应的 tb_students_info 表中并没有该学生的信息,所以该条记录只取出了 tb_course 表中相应的值,而从 tb_students_info 表中取出的值为 NULL。
多个表左/右连接时,在 ON 子句后连续使用 LEFT/RIGHT OUTER JOIN 或 LEFT/RIGHT JOIN 即可。
使用外连接查询时,一定要分清需要查询的结果,是需要显示左表的全部记录还是右表的全部记录,然后选择相应的左连接和右连接。
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!
Déclaration de ce site WebLe contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cnOutils d'IA chauds
Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes
AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.
Undress AI Tool
Images de déshabillage gratuites
Clothoff.io
Dissolvant de vêtements AI
AI Hentai Generator
Générez AI Hentai gratuitement.
Article chaud
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌R.E.P.O. Meilleurs paramètres graphiques3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌Assassin's Creed Shadows: Solution d'énigmes de coquille2 Il y a quelques semaines By DDDR.E.P.O. Comment réparer l'audio si vous n'entendez personne3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌WWE 2K25: Comment déverrouiller tout dans Myrise4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌Outils chauds
Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit
SublimeText3 version chinoise
Version chinoise, très simple à utiliser
Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP
Dreamweaver CS6
Outils de développement Web visuel
SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)
MySQL: la facilité de gestion des données pour les débutants Apr 09, 2025 am 12:07 AM
MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.
Puis-je récupérer le mot de passe de la base de données dans Navicat? Apr 08, 2025 pm 09:51 PM
Navicat lui-même ne stocke pas le mot de passe de la base de données et ne peut récupérer que le mot de passe chiffré. Solution: 1. Vérifiez le gestionnaire de mots de passe; 2. Vérifiez la fonction "Remember Motway" de Navicat; 3. Réinitialisez le mot de passe de la base de données; 4. Contactez l'administrateur de la base de données.
Comment créer Navicat Premium Apr 09, 2025 am 07:09 AM
Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.
MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM
MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.
Comment afficher le mot de passe de la base de données dans NAVICAT pour MARIADB? Apr 08, 2025 pm 09:18 PM
NAVICAT pour MARIADB ne peut pas afficher directement le mot de passe de la base de données car le mot de passe est stocké sous forme cryptée. Pour garantir la sécurité de la base de données, il existe trois façons de réinitialiser votre mot de passe: réinitialisez votre mot de passe via Navicat et définissez un mot de passe complexe. Affichez le fichier de configuration (non recommandé, haut risque). Utilisez des outils de ligne de commande système (non recommandés, vous devez être compétent dans les outils de ligne de commande).
Comment exécuter SQL dans Navicat Apr 08, 2025 pm 11:42 PM
Étapes pour effectuer SQL dans NAVICAT: Connectez-vous à la base de données. Créez une fenêtre d'éditeur SQL. Écrivez des requêtes ou des scripts SQL. Cliquez sur le bouton Exécuter pour exécuter une requête ou un script. Affichez les résultats (si la requête est exécutée).
Comment créer une nouvelle connexion à MySQL dans Navicat Apr 09, 2025 am 07:21 AM
Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.
MySQL et SQL: Compétences essentielles pour les développeurs Apr 10, 2025 am 09:30 AM
MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.