30 روز با Node - روز هفدهم: انجام عملیات CRUD به کمک MySQL در نود جی اس

03 شهریور 1397
mysql-crud-nodejs

MySQL چیست؟

مای اسکیو ال (MySQL) یک سیستم مدیریت پایگاه داده رابطه ای و البته پیشرو در جهان است که بر اساس اسکیو ال (SQL =  اس کیو ال = زبان ساختیافته کوئری) طراحی شده است. به زبان C و C++ نوشته شده است و توسط شرکت سوئدی MySQL AB مدیریت می شود. مای اسکوئل داده ها را به فرم ردیف هایی از ستونها در جداول ذخیره می کند.

ویژگیهای MySQL

  • Cross Platform و پشتیبانی در تمامی پلتفرم ها
  • کش کردن کوئری
  • پشتیبانی از SSL
  • پشتیبانی از تریگرها
  • پشتیبانی از اشاره گرها

البته ما فقط تعدادی از ویژگیهای مهم را از بین لیست ویژگیهای MySQL نام بردیم که برای یادگیری آنها باید به مستندات MySQL مراجعه کنید.

مزایای MySQL

  1. متن باز است
  2. بسیار ساده است
  3. برای انجام عملیات از شناخته شده ترین دستورات SQL استفاده می کند.
  4. قابل سفارشی شدن است و برنامه نویس می تواند آن را در هر ریخت و شکلی که لازم دارد استفاده کند.

پیش نیازها

  1. MySQL: که می توانید از اینجا دانلود کنید.
  2. نود جی اس: همانند قبل، می توانید از اینجا دانلود کنید.
  3. مدیر پکیج نود جی اس: که وقتی نود جی اس را دانلود می کنید، خودش نصب خواهد شد.
  4. ماژول mysql (پکیج npm)، که به کمک دستور زیر نصب خواهد شد:
>npm install mysql

ایجاد ارتباط

اولین گام، ایجاد یک ارتباط بین دیتابیس mysql و اپلیکشن نود جی اس ماست:

var mysql = require('mysql');

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

ایجاد یک جدول در نود جی اس

در قطه کد زیر روش ایجاد یک جدول در MySQL به روشنی آمده است:
// Name of the file is  : create-table-mysql.js

var mysql = require('mysql');

var connect =  mysql.createPool({
host : 'localhost',
user : 'root',
password: '',
database: 'test'
});

var table = "CREATE TABLE details (id int(15) NOT NULL AUTO_INCREMENT,"+
    "name varchar(30) DEFAULT NULL,"+
    "age float(15) DEFAULT NULL,"+
    "PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=latin1";

//establishing connection
connect.getConnection(function(err, connection){    
  //Creating details table
  connection.query(table,  function(err){
    if(err) throw err;
    else {
        console.log('Table created Successfully!');
    }
  });

//releasing connection
 connection.release();

});

و به کمک دستور زیر در خط فرمان یا ترمینال، قطعه کد بالا را اجرا کنید:

>node create-table-mysql.js
Table created Successfully!

و اما می رسیم به عملیات CRUD. ایجاد/درج یک ردیف در جدول، خواندن یک یا چندردیف، بروزرسانی رکوردها در جدول و در نهایت حذف یک یا چند ردیف از جدول.

عملیات ایجاد ردیف جدید در MySQL به کمک نود جی اس

قطعه کد زیر برای انجام عملیات ایجاد/درج در مای اسکیو ال به کمک نود جی اس نوشته شده است:

//Name of the file : insert-mysql.js
var mysql = require('mysql');

var connect =  mysql.createPool({
host : 'localhost',
user : 'root',
password: '',
database: 'test'
});


var insert_R = 'INSERT INTO details(name,age) VALUE(?,?)';
//establishing connection
connect.getConnection(function(err, connection){
    
  //Inserting a record into details
   connection.query(insert_R,['rejii',24], function(err,res){
    if(err) throw err;
    else {
        console.log('Details added successfully');
    }
  });

//releasing connection
 connection.release();

});

و برای اجرای آن:

>node insert-mysql.js
Details added successfully

خواندن از MySQL به کمک نودجی اس

در قطعه کد زیر روش انجام عمل خواندن از دیتابیس مای اسکیو ال را به کمک نود جی اس مشاهده می کنید:
//name of the file : read-mysql.js
var mysql = require('mysql');

var connect =  mysql.createPool({
host : 'localhost',
user : 'root',
password: '',
database: 'test'
});


var read_R = 'SELECT * FROM details';
//establishing connection
connect.getConnection(function(err, connection){
    
  //retrieving a record from details
   connection.query(read_R, function(err, data){
    if(err) throw err;
    else {
        console.log(data);
    }
  });

//releasing connection
 connection.release();

});

و برای اجرای کد فوق:

>node read-mysql.js
[ RowDataPacket { id: 1, name: 'rejii', age: 24 },
  RowDataPacket { id: 2, name: 'angie', age: 47 },
  RowDataPacket { id: 3, name: 'alex', age: 27 } ]

عمل بروز رسانی دیتابیس MySQL به کمک نود جی اس

به قطعه کد زیر دقت کنید:
//name of the file : update-mysql.js
var mysql = require('mysql');

var connect =  mysql.createPool({
host : 'localhost',
user : 'root',
password: '',
database: 'test'
});


var update_R = 'UPDATE details SET age = ? WHERE name=?';
//establishing connection
connect.getConnection(function(err, connection){
    
  //Updating a record from details
  connection.query(update_R,[25,'regii'], function(err, res){
    if(err) throw err;
    else {
        console.log('Updated the age of regii !');
    }
  });

//releasing connection
 connection.release();

});

برای اجرای کد فوق، در ترمینال یا خط فرمان خود دستور زیر را وارد کنید و نتیجه اجرا را ببینید:

>node update-mysql.js
Updated the age of regii !

عمل حذف ردیف در MySQL به کمک نود جی اس

قطعه کد زیر با مثال نشان می دهد که چگونه می توان عملیات حذف ردبف جدول در مای اسکیو ال انجام داد:

//name of the file : delete-mysql.js
var mysql = require('mysql');

var connect =  mysql.createPool({
host : 'localhost',
user : 'root',
password: '',
database: 'test'
});


var delete_R = 'DELETE FROM details WHERE name=?';
//establishing connection
connect.getConnection(function(err, connection){
    
  //Deleting a record from details
  connection.query(delete_R,['regii'], function(err, res){
    if(err) throw err;
    else {
        console.log('A record is removed !');
    }
  });

//releasing connection
 connection.release();

});

و باز هم برای اجرا:

>node delete-mysql.js
A record is removed !

از بین بردن یک جدول از MySQL به کمک نود جی اس

قطعه کد زیر روش از بین بردن یک جدول داخل دیتابیس مای اسکیو ال را به کمک نود جی اس نشان می دهد:

//name of the file : drop-table-mysql.js
var mysql = require('mysql');

var connect =  mysql.createPool({
host : 'localhost',
user : 'root',
password: '',
database: 'test'
});


var drop_T = 'DROP table details';
//establishing connection
connect.getConnection(function(err, connection){
    
  //Drop the details table
  connection.query(drop_T, function(err, res){
    if(err) throw err;
    else {
        console.log('The details table is removed successfully');
    }
  });

//releasing connection
 connection.release();

});

و برای اجرای کد فوق:

>node drop-table-mysql.js
The details table is removed successfully

خلاصه

در درس امروز از سلسله دروس 30 رور با نود جی اس، روش برقراری ارتباط با MySQL را به کمک نود جی اس فراگرفتیم. همچنین توانستیم عملیات CRUD را به کمک نود جی اس انجام دهیم. و نیز یاد گرفتیم چگونه به کمک نود جی اس یک جدول در MySQL بسازیم یا جدولی را ریشه کن و حذف کنیم.

نویسنده شوید
دیدگاه‌های شما (1 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

کیوان
26 بهمن 1400
سلام عرض شد آیا با نود جی اس میشه دیتابیس رابطه ای رو هندل کرد؟

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.