MySQL چیست؟
مای اسکیو ال (MySQL) یک سیستم مدیریت پایگاه داده رابطه ای و البته پیشرو در جهان است که بر اساس اسکیو ال (SQL = اس کیو ال = زبان ساختیافته کوئری) طراحی شده است. به زبان C و C++ نوشته شده است و توسط شرکت سوئدی MySQL AB مدیریت می شود. مای اسکوئل داده ها را به فرم ردیف هایی از ستونها در جداول ذخیره می کند.
ویژگیهای MySQL
- Cross Platform و پشتیبانی در تمامی پلتفرم ها
- کش کردن کوئری
- پشتیبانی از SSL
- پشتیبانی از تریگرها
- پشتیبانی از اشاره گرها
البته ما فقط تعدادی از ویژگیهای مهم را از بین لیست ویژگیهای MySQL نام بردیم که برای یادگیری آنها باید به مستندات MySQL مراجعه کنید.
مزایای MySQL
- متن باز است
- بسیار ساده است
- برای انجام عملیات از شناخته شده ترین دستورات SQL استفاده می کند.
- قابل سفارشی شدن است و برنامه نویس می تواند آن را در هر ریخت و شکلی که لازم دارد استفاده کند.
پیش نیازها
- MySQL: که می توانید از اینجا دانلود کنید.
- نود جی اس: همانند قبل، می توانید از اینجا دانلود کنید.
- مدیر پکیج نود جی اس: که وقتی نود جی اس را دانلود می کنید، خودش نصب خواهد شد.
- ماژول mysql (پکیج npm)، که به کمک دستور زیر نصب خواهد شد:
>npm install mysql
ایجاد ارتباط
اولین گام، ایجاد یک ارتباط بین دیتابیس mysql و اپلیکشن نود جی اس ماست:
var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '', database : 'my_db' });
ایجاد یک جدول در نود جی اس
// 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 بسازیم یا جدولی را ریشه کن و حذف کنیم.