
- Node.js 教程
- Node.js - 首頁
- Node.js - 簡介
- Node.js - 環境設定
- Node.js - 第一個應用程式
- Node.js - REPL 終端
- Node.js - 命令列選項
- Node.js - 包管理器 (NPM)
- Node.js - 回撥函式概念
- Node.js - 上傳檔案
- Node.js - 傳送郵件
- Node.js - 事件
- Node.js - 事件迴圈
- Node.js - 事件發射器
- Node.js - 偵錯程式
- Node.js - 全域性物件
- Node.js - 控制檯
- Node.js - 程序
- Node.js - 應用程式擴充套件
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 緩衝區
- Node.js - 流
- Node.js - 檔案系統
- Node.js MySQL
- Node.js - MySQL 入門
- Node.js - MySQL 建立資料庫
- Node.js - MySQL 建立表
- Node.js - MySQL 插入資料
- Node.js - MySQL 從表中選擇資料
- Node.js - MySQL Where 條件
- Node.js - MySQL Order By 排序
- Node.js - MySQL 刪除資料
- Node.js - MySQL 更新資料
- Node.js - MySQL 連線
- Node.js MongoDB
- Node.js - MongoDB 入門
- Node.js - MongoDB 建立資料庫
- Node.js - MongoDB 建立集合
- Node.js - MongoDB 插入資料
- Node.js - MongoDB 查詢資料
- Node.js - MongoDB 查詢
- Node.js - MongoDB 排序
- Node.js - MongoDB 刪除資料
- Node.js - MongoDB 更新資料
- Node.js - MongoDB 限制結果
- Node.js - MongoDB 連線
- Node.js 模組
- Node.js - 模組
- Node.js - 內建模組
- Node.js - 實用程式模組
- Node.js - Web 模組
- Node.js 有用資源
- Node.js - 快速指南
- Node.js - 有用資源
- Node.js - 討論
Node.js - MySQL 從表中選擇資料
在 MySQL 資料庫中最常見的操作是從表中檢索資料。SELECT 查詢對應於 CRUD 首字母縮寫詞中的檢索操作。要使用 Node.js 程式執行檢索,應將 SELECT 查詢字串傳遞給 MySQL 連線物件的 query() 方法。
MySQL 中的 SELECT FROM 語句具有以下語法:
SELECT field1, field2, ... FROM table_name;
要從表中定義的所有欄位中選擇資料,可以使用星號 (*) 字元。
SELECT * FROM table_name;
可以使用其他子句與主 SELECT 語句一起使用,例如 LIKE、WHERE、ORDER BY 等。
SELECT 語句返回一個結果集,其中包含從表中檢索的行列表。
MySQL 命令列客戶端類似於 Node.js REPL 環境。SELECT 語句檢索的結果集在查詢語句之後立即顯示。
mysql> use mydb; Database changed mysql> SELECT name, age, salary FROM employee; +-------+------+--------+ | name | age | salary | +-------+------+--------+ | Ravi | 25 | 25000 | | Anil | 26 | 30000 | | Meena | 26 | 27000 | +-------+------+--------+
但是,在 Node.js 中,當將 SELECT 查詢傳遞給 MySQL 連線物件的 query() 方法時,它會返回一個 RowDataPacket 物件陣列。要處理檢索到的資料,必須將其轉換為 JSON 格式。
示例
在以下程式碼中,我們將 SELECT 查詢字串傳遞給 con.query() 方法,並在控制檯上顯示結果集。
var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "mypassword", database: "mydb" }); var qry =`SELECT name,salary FROM employee;`; con.connect(function (err) { if (err) throw err; console.log("Connected!"); con.query(qry, function (err, results) { if (err) throw err; console.log(results); }); con.end(); });
輸出
[ RowDataPacket { name: 'Ravi', salary: 25000 }, RowDataPacket { name: 'Anil', salary: 30000 }, RowDataPacket { name: 'Meena', salary: 27000 } ]
我們可以使用 JSON.stringify() 方法將 RowDataPacket 物件轉換為字串,而不是原始結果集。
var qry =`SELECT name,salary FROM employee;`; con.connect(function (err) { if (err) throw err; console.log("Connected!"); con.query(qry, function (err, results) { if (err) throw err; console.log(JSON.stringify(results)); }); con.end(); });
輸出
[{"name":"Ravi","salary":25000},{"name":"Anil","salary":30000},{"name":"Meena","salary":27000}]
示例
在此示例中,* 萬用字元用於從 employee 表中的所有欄位檢索資料。我們還使用 forEach 迴圈逐行迭代 SELECT 查詢返回的結果集。每一行中每個欄位的值可以透過在方括號中放入欄位名稱來獲取。例如,行的 ID 由 row[‘id’] 給出。
var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "mypassword", database: "mydb" }); var qry =`SELECT * FROM employee;`; con.connect(function (err) { if (err) throw err; console.log("Connected!"); con.query(qry, function (err, results) { if (err) throw err; results.forEach((row) => { console.log(`ID: ${row['id']}, NAME: ${row['name']}, AGE: ${row['age']}, SALARY: ${row['salary']}`); }); }); con.end(); });
輸出
ID: 1, NAME: Ravi, AGE: 25, SALARY: 25000 ID: 2, NAME: Anil, AGE: 26, SALARY: 30000 ID: 3, NAME: Meena, AGE: 26, SALARY: 27000
您可以在 SELECT 語句的欄位列表中包含派生或計算列,其中其值取決於涉及結構中定義的欄位的表示式。您還可以使用 AS 關鍵字為欄位指定別名。
SELECT expression AS COLUMN_name FROM table_name;
在以下示例中,SELECT 語句有一個 TAX 列。它的值計算為 salary 欄位的 5%。
var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "mypassword", database: "mydb" }); var qry =`SELECT name, salary, salary*0.05 as tax FROM employee;`; con.connect(function (err) { if (err) throw err; console.log("Connected!"); con.query(qry, function (err, results) { if (err) throw err; console.log(JSON.stringify(results)); }); con.end(); });
輸出
[{"name":"Ravi","salary":25000,"tax":1250},{"name":"Anil","salary":30000,"tax":1500},{"name":"Meena","salary":27000,"tax":1350}]