Maison >interface Web >Questions et réponses frontales >requête associée à nodejs

requête associée à nodejs

WBOY
WBOYoriginal
2023-05-11 12:54:43700parcourir

Node.js est un environnement d'exécution JavaScript permettant de créer des applications réseau hautes performances, à haute concurrence, évolutives et fiables. Il est très courant d'effectuer des opérations de base de données dans Node.js, et la requête est l'une des fonctions les plus couramment utilisées dans les opérations de base de données. Dans le développement réel, les requêtes liées à plusieurs tables doivent être fréquemment effectuées. Cet article explique comment implémenter des requêtes liées à plusieurs tables dans Node.js.

  1. Connexion à la base de données

L'exécution d'opérations de base de données dans Node.js nécessite l'utilisation d'une bibliothèque tierce. Cet article utilise MySQL comme exemple pour utiliser la bibliothèque client MySQL pour effectuer des opérations de base de données. pour se connecter :

const mysql = require('mysql');

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'password',
    database: 'test'
});

connection.connect();

Ci-dessus Le code utilise la méthode createConnection du module mysql pour créer un objet de connexion MySQL, puis appelle le connect méthode pour se connecter à la base de données. Parmi eux, host est le nom d'hôte où se trouve la base de données, user est le nom d'utilisateur utilisé pour se connecter à la base de données, password est le mot de passe, et database code> est le nom de la base de données à laquelle se connecter. mysql 模块的 createConnection 方法来创建一个 MySQL 连接对象,然后调用 connect 方法来连接数据库。其中,host 是数据库所在的主机名,user 是登录数据库所用的用户名,password 是密码,database 是要连接的数据库名。

  1. 单表查询

在进行多表关联查询之前,首先需要了解如何进行单表查询。使用 MySQL 客户端库可以使用 query 方法来向数据库发送 SQL 语句,如下所示:

connection.query('SELECT name, age FROM users', (error, results, fields) => {
    if (error) throw error;
    console.log(results);
});

connection.end();

以上代码查询 users 表中的 nameage 字段,并将其输出到控制台中。query 方法的第一个参数是要执行的 SQL 语句,第二个参数是一个回调函数,用于处理查询结果。回调函数的第一个参数是查询过程中发生的错误,第二个参数是查询结果,第三个参数是查询字段的描述信息。

  1. 多表关联查询

在进行多表关联查询之前,需要先了解几种 JOIN 语句:

  • INNER JOIN:返回两个表中共同满足条件的行;
  • LEFT JOIN:返回左侧表中全部行,右侧表中满足条件的行,右侧表中没有满足条件的行返回 NULL;
  • RIGHT JOIN:返回右侧表中全部行,左侧表中满足条件的行,左侧表中没有满足条件的行返回 NULL;
  • FULL OUTER JOIN(MySQL 不支持):返回两个表中全部行,没有匹配到的行为 NULL。

使用多表关联查询需要使用 JOIN 语句,以及 ON 子句来指定要关联的条件。以下是一个多表关联查询的示例:

connection.query('SELECT users.name, orders.id FROM users INNER JOIN orders ON users.id = orders.user_id', (error, results, fields) => {
    if (error) throw error;
    console.log(results);
});

connection.end();

以上代码查询 users 表和 orders 表中的数据,并使用 INNER JOIN 来关联两个表。关联条件是 users.id = orders.user_id,即将 users 表的 id 字段和 orders 表的 user_id 字段进行关联。查询结果包括 users.nameorders.id 两个字段的值。

  1. 多个表关联查询

在实际开发中,往往需要对多个表进行关联查询。以下是一个多个表关联查询的示例:

connection.query('SELECT users.name, orders.id, order_items.product_id FROM users INNER JOIN orders ON users.id = orders.user_id INNER JOIN order_items ON orders.id = order_items.order_id', (error, results, fields) => {
    if (error) throw error;
    console.log(results);
});

connection.end();

以上代码查询 users 表、orders 表和 order_items 表中的数据,并使用 INNER JOIN 来关联三个表。关联条件是 users.id = orders.user_idorders.id = order_items.order_id。查询结果包括 users.nameorders.idorder_items.product_id

    Requête de table unique
    1. Avant d'effectuer des requêtes liées à plusieurs tables, vous devez d'abord comprendre comment effectuer des requêtes de table unique. À l'aide de la bibliothèque client MySQL, vous pouvez utiliser la méthode query pour envoyer des instructions SQL à la base de données, comme indiqué ci-dessous :
    rrreee

    Le code ci-dessus interroge le nom dans le users table code> et age et affichez-les sur la console. Le premier paramètre de la méthode query est l'instruction SQL à exécuter, et le deuxième paramètre est une fonction de rappel utilisée pour traiter les résultats de la requête. Le premier paramètre de la fonction de rappel est l'erreur survenue pendant le processus de requête, le deuxième paramètre est le résultat de la requête et le troisième paramètre est les informations de description du champ de requête.

      🎜Requête liée à plusieurs tables🎜🎜🎜Avant d'effectuer une requête liée à plusieurs tables, vous devez comprendre plusieurs instructions JOIN : 🎜
    🎜INNER JOIN : renvoie les deux tables qui répondent conjointement à la conditions Lignes ; 🎜🎜LEFT JOIN : renvoie toutes les lignes du tableau de gauche, les lignes du tableau de droite qui remplissent les conditions, et renvoie NULL s'il n'y a aucune ligne dans le tableau de droite qui remplit les conditions 🎜🎜RIGHT JOIN : renvoie toutes les lignes. lignes dans la table de droite, à gauche Si les lignes de la table secondaire qui remplissent la condition ne sont pas satisfaites, NULL sera renvoyé 🎜🎜FULL OUTER JOIN (non pris en charge par MySQL) : renvoie toutes les lignes des deux tables, et NULL le sera ; être renvoyé s’il n’y a pas de lignes correspondantes. 🎜
🎜L'utilisation de requêtes d'association multi-tables nécessite l'utilisation d'instructions JOIN et de clauses ON pour spécifier les conditions à associer. Voici un exemple de requête associée à plusieurs tables : 🎜rrreee🎜Le code ci-dessus interroge les données de la table users et de la table orders, et utilise INNER JOIN pour relier deux tables. La condition d'association est users.id =orders.user_id, c'est-à-dire le champ id de la table users et les orders table code>user_id champ à associer. Les résultats de la requête incluent les valeurs des deux champs users.name et orders.id. 🎜
    🎜Requêtes associées sur plusieurs tables🎜🎜🎜En développement réel, il est souvent nécessaire d'effectuer des requêtes associées sur plusieurs tables. Voici un exemple de requête d'association de plusieurs tables : 🎜rrreee🎜Le code ci-dessus interroge les données de la table users, de la table orders et de order_items table, et utilisez INNER JOIN pour joindre les trois tables. Les conditions associées sont users.id =orders.user_id et orders.id = order_items.order_id. Les résultats de la requête incluent les valeurs des trois champs users.name, orders.id et order_items.product_id. 🎜🎜🎜Résumé🎜🎜🎜Cet article explique comment effectuer des requêtes liées à plusieurs tables dans Node.js. Grâce à l'exemple de code ci-dessus, vous pouvez voir qu'il est très pratique d'utiliser la bibliothèque client MySQL pour exécuter des instructions SQL dans Node.js. Dans le développement réel, vous devez prêter attention aux détails, tels que les noms de champs des résultats de requête, etc. Dans le même temps, vous devez également prêter attention aux problèmes de sécurité tels que l’injection 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!

Déclaration:
Le 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.cn