Mục lục
1. Giới thiệu MySQL trong NodeJS 2. Tạo database MySQL sử dụng Nodejs |
SQL là ngôn ngữ tiêu chuẩn cho các hệ thống quản lý cơ sở dữ liệu quan hệ. Một cơ sở dữ liệu quan hệ xác định các mối quan hệ dưới dạng các bảng. Các câu lệnh SQL được sử dụng để thực hiện các tác vụ như cập nhật dữ liệu trên cơ sở dữ liệu hoặc truy xuất dữ liệu từ cơ sở dữ liệu. Một số hệ thống quản lý cơ sở dữ liệu quan hệ phổ biến sử dụng SQL là: Oracle, Sybase, Microsoft SQL Server, Access, Ingres,MySQL v.v.
Mặc dù hầu hết các hệ quản trị cơ sở dữ liệu sử dụng SQL, nó cũng sẽ có phần mở rộng được bổ sung thêm, nhưng những điều không thể thiếu mà SQL có thể làm trong mỗi hệ quản trị cơ sở dữ liệu như:
SELECT
INSERT
UPDATE
DELETE
CREATE
DROP
Ngoài ra các hệ quản trị cơ sở dữ liệu sử dụng SQL còn có thể duy trì, tối ưu hòa duy trì cơ sở dữ liệu. Hệ quản trị cơ sở dữ liệu MySQL là một hệ quản trị cơ sở dữ liệu quan hệ, phần cuối này mình sẽ giới thiệu qua về sử dụng MySQL trong Node.js .
MySQL là hệ quản trị cơ sở dữ liệu cấu trúc phổ biến trên thế giới và được sử dụng bởi rất nhiều lập trình viên trong phá trình phát triển ứng dụng. Trong phần này mình sẽ giới thiệu về MySQL trong Node.js.
Cài đặt MySQL
Để sử dụng MySQL, điều đầu tiên bạn cần phải khởi tạo MySQL server, có rất nhiều cách để khởi tạo MySQL server ví dụ như khởi tạo bằng Docker, sử dụng MySQL databse bên ngoài. Trong bài này mình sẽ hướng dẫn khởi tao bằng cách cài đặt MySQL Server trực tiếp trên máy của bạn.
Trước tiên, bạn truy cập trang download của MySQL và download phiên bản MySQL Server phù hợp cho máy của bạn:
Tiếp theo, tiến hành cài đặt như cài đặt các chương trình thông thường khác, lưu ý ở phần cài đặt mật khẩu root là được, bạn phải nhớ mật khẩu để sau này còn đăng nhập.
Cài đặt Mysql Driver cho NodeJS
Node.js cho phép chúng ta làm việc với cơ sở dữ liệu SQL, đề làm việc với MySQL trong Node.js bạn cần phải cài đặt driver mysql bằng cách mở terminal và gõ dòng lệnh :
npm i mysql
Để kết nối với MySQL bạn sử dụng cú pháp:
|
Thực hiện câu truy vấn
|
Database là tập hợp các dữ liệu được lưu trữ có cùng cấu trúc dữ liệu, database có thể lưu trữ bất cứ thứ gì gì danh sách bạn bè của bạn, những cuốn sách trong thư viện hay dữ liệu khách hàng của bạn. MySQL là một hệ quản trị cơ sở dữ liệu cho phép bạn quản lý các database đươc dễ dàng hơn. Trong MySQL, bạn có thể tạo ra nhiều database khác nhau để dùng cho việc lưu trữ dữ liêu.
Database trong MySQL bao gồm các bảng chứa dữ liệu, MySQL lưu trữ dữ liệu trong các bảng, mỗi bảng gồm các trường, các trường đêu phải có cấu trúc nhất định. Để khởi tạo database trong MySQL chúng ta thường sử dụng cấu trúc:
CREATE DATABASE titoe
Chúng ta sẽ có hai thao tác chính, thứ nhất là tạo database và thứ hai là xóa database. Mỗi thao tác có những tham số riêng nên bạn phải hiểu để tránh bị nhầm lẫn.
Tạo Database
Như bên trên mình đề cập để khởi tạo database trong MySQL bạn chỉ cần dùng đoạn cấu trúc : CREATE DATABASE [tên_database]
. Node.js cũng tương tự như vậy. Chúng ta cùng khởi tạo file app.js
và tiên hành tạo bảng :
|
Khởi chạy chương trình bằng cách mở terminal và chạy dòng lệnh :
node app.js
Chúng ta sẽ thấy database có tên titoe
đã được khởi tạo thành công :
Kiểm tra tồn tại trước khi tạo database
Nếu bạn khởi tạo theo các bên trên, nếu database đã tồn tại thì câu truy vấn sẽ trả về lỗi, để không hiển thị lỗi bạn cần kiểm tra xem database đã có hay chưa mới tiến hành khởi tạo:
Chúng ta cùng khởi tạo file app.js
và tiên hành tạo bảng :
|
Khởi chạy chương trình bằng cách mở terminal và chạy dòng lệnh :
node app.js
Kết quả trả về tương tự như ví dụ trên, khác nhau là bạn chỉ có thể khởi tạo khi database đó chưa tồn tại.
Thêm các tùy chọn khi tạo database
Khi khởi tạo dattabase bạn còn có thể thêm một vài tùy chọn khi khởi tạo bằng câu lệnh như : CHARACTER, COLLATE
|
Xóa database
Bạn có thể xóa database bằng cách sử dụng câu truy vấn : DROP DATABASE [database]
. Chúng ta sẽ xóa database có tên titoe
vừa khởi tạo.
|
Khởi chạy chương trình bằng cách mở terminal và chạy dòng lệnh :
node app.js
Bạn sẽ thấy database đã bị xóa, trước khi xóa một database bạn cần phải chắc chắn dữ liệu trong database không còn quan trọng =)))
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
|
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
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 :
|
Tiến hành khởi chạy file bằng cách mở terminal :
node index
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:
|
Trong các dự án cần dữ liệu có mối quan hệ chặt chẽ với nhau, người ta thường sử dụng MySQL làm hệ quản trị cơ sở dữ liệu chính bởi tính quan hệ chặt chẽ giữa các bản ghi, các mối quan hệ liên kết với nhau qua các "khuân mẫu" nhất định. Khi làm việc với MySQL các lập trình viên cần thao tác như thêm, sửa, xóa rất nhiều. Dưới đây mình sẽ giới thiệu về các thao tác như Insert, Update, Delete, Select với MySQL trong NodeJS.
Trước tiên, mình sẽ đi tạo một bảng ghi mới.
Ở đây mình có một bảng có tên users
, chúng ta sẽ có 4 cột :
userID
username
password
createDate
|
Để thêm các bảng ghi trong MySQL chúng ta sử dụng câu lệnh SQL:
|
Vậy khi thao tác với MySQL trong NodeJS chúng ta sẽ có câu lệnh như sau:
|
Giả sử khi mình muốn thêm một user vào trong bảng sử dụng MySQL trong NodeJS, chúng ta sẽ khởi tạo file app.js
có nội dung như sau :
|
Chúng ta có thể cập nhật một bản ghi mới trong MySQL bằng câu lệnh SQL:
|
Vậy khi thao tác với MySQL trong NodeJS chúng ta sẽ có câu lệnh như sau:
|
Bây giờ, mình sẽ tiến hành sửa nội dung của bản ghi vừa mới thêm ở phần trên, chúng ta sẽ làm việc trong NodeJS, Tiến hành khởi tạo file app.js
có nội dung như sau :
|
Để xóa một bản ghi trong NodeJS cũng tương tự như cách thêm và sửa, chỉ khác câu lệnh SQL truyền vào. Khi muốn xóa một bản ghi trong MySQL bằng SQL chúng ta sẽ có câu lệnh :
|
Trong Nodejs cũng tương tự, file app.js
sẽ có nội dung như sau:
|
Ngoài việc thêm, sửa, xóa bạn cũng có thể thao tác để select các bàn ghi trong MySQL bằng NodeJS. chúng ta có thể thực hiện lệnh truy vấn select bằng cách dùng SQL :
|
Khi sử dụng NodeJS, chúng ta sẽ truy vấn như sau :
|
Về bài trước |
+ Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!
* Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!
* Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!
+ -:
+ -: