Làm việc với Table MySQL sử dụng Nodejs
Trong bài viết này chúng mình sẽ cùng nhau làm việc với Table trong MySQL sử dụng Nodejs, như các bạn đã viết MySQL tổ chức database theo dạng các bảng, mỗi bảng đều có khuân mẫu riêng của nó, các bảng có thể được liên kết với nhau.
1. Tạo một bảng mới bằng NodeJS
Mình sẽ khởi tạo một bảng mới có tên customers trong đó có 2 trường đó là name
, và andress
, chúng ta có file index.js
const mysql = require('mysql'); const con = mysql.createConnection({ host: "localhost", user: "yourusername", password: "yourpassword", database: "mydb" }); con.connect(function(err) { if (err) throw err; console.log("Đã kết nối!"); var sql = "CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))"; con.query(sql, function (err, result) { if (err) throw err; console.log("Tạo bảng thành công"); }); });
Các bạn chú ý thay thông tin database cho đúng với database của bạn nha. Chúng ta sẽ khởi chạy file index.js
bằng cách mở terminal và chạy dòng lệnh :
node index
Lúc này bạn sẽ thấy table được khởi tạo thành công
Bài viết này được đăng tại [free tuts .net]
2. Tạo bảng kèm khóa chính bằng NodeJS
Trong một bảng bạn cần phải chỉ định khóa chính, khóa chính là một cột trong bảng mà giá trị của nó là duy nhất trong bảng. Ví dụ, mỗi sinh viên có mã sinh viên và mỗi sinh viên đều có mã khác nhau và không trùng lặp, bằng mã sinh viên này, nhà trường có thể lấy thông tin sinh viên môt cách nhanh chóng.
Để khởi tạo quá chính khi tạo một bảng, bạn có thể định nghĩa một cột có các thuộc tính như INT AUTO_INCREMENT PRIMARY KEY
, điều này có nghĩa là sẽ chèn một số duy nhất vào mỗi bảng ghi được tạo. Bắt đầu từ 1.
Trong ví dụ này mình sẽ tạo một bảng có tên students
gồm các cột như id, name, gender
và định nghĩa id là khóa chính, sẽ tự động tăng khi có bản ghi mới :
Để tạo bảng như hình, chúng ta tạo file index.js
có nội dung :
const mysql = require('mysql'); const con = mysql.createConnection({ host: "localhost", user: "admin", password: "yourpassword", database: "freetuts" }); con.connect(function(err) { if (err) throw err; console.log("Đã kết nối!"); var sql = "CREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), gender BIT(1))"; con.query(sql, function (err, result) { if (err) throw err; console.log("Đã tạo bảng thành công !!"); }); });
Tiến hành khởi chạy file bằng cách mở terminal :
node index
3. Tạo bảng kèm Foreign Key (khóa ngoại)
Foreign key(khóa ngoại) là mối quan hệ giữa hai bảng và mối quan hệ này ta hay gọi là cha - con, nghĩa là nếu bảng A có một thuộc tính liên kết tới bảng B thì lúc này bảng B đóng vai trò là cha và bảng A đóng vai trò là con. Mục đích của khóa ngoại là đảm bảo tính toàn vẹn tham chiếu của dữ liệu. Nói cách khác, chỉ những giá trị được cho là xuất hiện trong cơ sở dữ liệu mới được phép.
Ví dụ: Giả sử chúng mình có hai bảng, bảng Users bao gồm tất cả dữ liệu khách hàng và bảng Groups bao gồm tất cả các đơn đặt hàng của khách hàng. Logic ở đây yêu cầu tất cả các thành viên phải được liên kết với một groups. Để thực thi logic này, chúng mình sẽ đặt một khóa ngoại trên bảng Users, và để nó tham chiếu khóa chính của bảng Groups. Bằng cách này, chúng mình có thể đảm bảo rằng tất cả các thành viên trong bảng Users có mối liên hệ với Groups.
Chúng ta sẽ đi vào ví dụ thưc tế bên dưới, mình sẽ tạo ra 2 bảng Users và Groups. Trong bảng Groups chúng ta sẽ có thông tin của Groups, có trường groupID là khóa chính, Users sẽ có thông tin của thành viên, bảng này bao gồm 1 khóa chính là userID và một khóa ngoại là groupID liên kết với bảng Groups.
Trong Node.js, chúng ta sẽ tạo ví dụ bằng cách sử dụng phương thức query trong module mysql đã cài đặt. Trong file app.js chúng ta sẽ có nội dung như sau:
const mysql = require("mysql"); const con = mysql.createConnection({ host: "localhost", user: "admin", password: "yourpassword", database: "mydb" }); con.connect(function(err) { if (err) throw err; var sql = `CREATE TABLE Groups ( groupid INT(11) NOT NULL PRIMARY KEY, title INT(11) NOT NULL, LEVEL TINYINT(1) DEFAULT 1 NOT NULL ); CREATE TABLE Users( userid INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL , email VARCHAR (50) NOT NULL , groupid INT(11), CONSTRAINT fk_group FOREIGN KEY (groupid) REFERENCES Groups(groupid) )`; con.query(sql, function(err, result) { if (err) throw err; console.log("Đã tạo bảng thành công "); }); });
Trên đây là những kiến thức cơ bản về làm việc với Table trong MySQL sử dụng Nodejs . Mong bài viết này có thể giúp ích cho bạn cho việc lập trình với Nodejs, cảm ơn bạn đã quan tâm bài viết này.