MySQL چیست و هر آنچه بایستی در مورد امکانات مای اس کیو ال بدانید!
بصورت کاملا ساده در پاسخ به سوال mysql چیست میتوان گفت، MySQL یکی از مشهورترین سیستمهای مدیریت دیتابیس است که قابلیت اجرا شدن در بیش از ۲۰ نوع پلت فرم مختلف شامل Linux ، Windows را دارد و اغلب به صورت ترکیبی با زبان برنامهنویسی PHP استفاده می شود. از آن میتوان به عنوان جایگزین SQL server و یا Microsoft Access استفاده کرد.
MySQL چیست ؟
یک شرکت سوئدی به نام MySQL AB در ابتدا MySQL را در سال ۱۹۹۴ توسعه داد. شرکت فنی آمریکایی Sun Microsystems پس از خرید MySQL AB در سال ۲۰۰۸، مالکیت کامل را به دست آورد. غول فناوری اوراکل ایالات متحده، در سال ۲۰۱۰ خود Sun Microsystems را به دست آورد و MySQL از آن سال به بعد، متعلق به اوراکل بود.
همانطور که در بالا اشاره شد، کار با mysql ( مای اس کیو ال) می تواند به عنوان جایگزین SQL Server یا مایکروسافت اکسس استفاده شود. در این صورت باید این پایگاه های داده را به یکدیگر تبدیل کنید.
با توجه به تعریف کلی، MySQL در واقع یک سیستم مدیریت پایگاه دادهای ( database ) است که به صورت رابطهای منبع باز ( open source ) با یک مدل کلاینت – سرور خدمات دهی میکند. RDBMS نرم افزاری یا خدماتی است که برای ایجاد و مدیریت بانکهای اطلاعاتی بر اساس مدل رابطهای استفاده میشود. اگر نرم افزار از مدل دادههای رابطهای پشتیبانی نمیکند، فقط آن را DBMS مینامند. در ادامه این مقاله از گروه تحریریهی ایران هاست ( ارائه دهندهی ارائه دهندهی خدمات هاست python ) بیایید دقیقتر هر اصطلاح را بررسی کنیم:
بانک اطلاعاتی (Database) چیست؟
بانک اطلاعاتی به بیان ساده مجموعهای از داده های ساختار یافته است. برای درک بانک اطلاعاتی به گرفتن سلفی فکر کنید: یک دکمه را فشار میدهید و از خود تصویر میگیرید. عکس شما داده است و گالری تلفن شما پایگاه داده است. بانک اطلاعاتی مکانی است که در آن، دادهها ذخیره و سازماندهی میشوند. دادههای ذخیره شده به صورت تعدادی جدول، سازماندهی میشوند. هر جدول به نحوی به دیگر جداول، مربوط میشود.
متن باز (Open source) به چه معناست؟
MySQL متن باز یا Open Source است. این مورد بدان معنی است که شما میتوانید بدون آنکه هزینهای به شخص یا سازمانی پرداخت نمایید، از آن استفاده کنید. هرکسی میتواند نرم افزار MYSQL را در پلتفرم خود نصب کند. همچنین میتوانید کد ساختاری آن را آموخته و سفارشی سازی کنید تا بتوانید نیازهای خود را، بهتر برآورده نمایید. با این حال، GPL (مجوز عمومی GNU) بسته به شرایط تعیین میکند چه کارهایی را مجاز هستید که انجام دهید. در صورت نیاز به مالکیت انعطاف پذیرتر و پشتیبانی پیشرفته، نسخه دارای مجوز تجاری در دسترس است. در مقالات دیگر در مورد آنکه open source چیست به طور کامل توضیح داده ایم.
مدل کلاینت – سرور چیست؟
کامپیوتر هایی که نرم افزار RDBMS را نصب و راه اندازی میکنند، کلاینت نامیده میشوند در مقاله client server چیست بیشتر در این باره توضیح داده ایم. هر زمان که نیازمند دسترسی به دادهها باشند، به سرور RDBMS متصل میشوند. این قسمت “سرور” است.
MySQL یکی از گزینههای مختلف نرم افزار RDBMS است. RDBMS و MySQL به دلیل محبوبیت MySQL اغلب تصور میشوند که یکسان نیستند. برای نامگذاری چند برنامه وب بزرگ مانند Facebook ، Twitter ، YouTube ، Google و Yahoo! همه از MySQL برای اهداف ذخیره سازی داده استفاده میکنند. اگرچه در ابتدا برای استفاده محدود ایجاد شده است، اما اکنون با بسیاری از سیستم عاملهای مهم رایانهای مانند Linux ، macOS ، Microsoft Windows و Ubuntu سازگار است.
کاربرد MySQL
دیتابیس سرور MySQL جزو یکی از محبوبترین دیتابیس سرورهای دنیا محسوب میشود و برندهای بزرگی همانند Facebook و Google از آن بهره بردهاند. همچنین مجموعهی بزرگ و مهم Wikipedia (مالک وب سایت Wikipedia) نیز برای زیر ساخت پایگاه دادهی خود از این دیتابیس سرور، استفادهمیکند.
می توان گفت که دنیای امروزی دنیای اطلاعات است! تصور کنید فیسبوک چه حجمی از اطلاعات از جمله عکس، فیلم، متن و… دارد، این اطلاعات با استفاده از دیتابیس ذخیره و سازماندهی می شود.
یادگیری MySQL بسیار آسان است چرا که بسیاری از امکانات پیشرفته را پشتیبانی نمیکند و استفاده از آن برای Database های ساده و معمولی، پیشنهاد میشود.
تفاوت sql و mysql
در ابتدای این بخش باید به این نکته اشاره کنیم که MySQL و SQL یکسان نیستند. توجه داشته باشید که MySQL یکی از محبوبترین نامهای تجاری نرمافزار RDBMS است که مدل کلاینت – سرور را، پیاده سازی میکند. بنابراین، چگونه کلاینت و سرور در یک محیط RDBMS ارتباط برقرار میکنند؟ آنها از یک زبان خاص استفاده میکنند – Structured Query Language (SQL).
اگر تاکنون با نامهای دیگری که SQL در آنها وجود دارد مانند PostgreSQL و Microsoft SQL Server روبرو شدهاید، آنها به احتمال زیاد پایگاه دادههایی هستند که از syntax SQL نیز، استفاده میکنند. نرم افزار RDBMS اغلب به زبانهای برنامه نویسی دیگر نوشته شده است، اما همیشه از SQL به عنوان زبان اصلی آن برای تعامل با بانک اطلاعاتی استفاده میشود. MySQL خود به زبان C و C ++ نوشته شده است. به کشورهای آمریکای جنوبی فکر کنید، همه آنها از لحاظ جغرافیایی متفاوت هستند و تاریخهای مختلفی دارند، اما همه آنها در درجه اول به زبان اسپانیایی صحبت میکنند.
تد کاد (Ted Codd)، دانشمند علوم کامپیوتر، SQL را در اوایل دهه ۱۹۷۰ با یک مدل رابطه مبتنی بر IBM توسعه داد. در سال ۱۹۷۴ بیشتر مورد استفاده قرار گرفت و سریعاً جایگزین زبانهای قدیمی ISAM و VISAM شد.
SQL به سرور میگوید چه کاری با دادهها انجام دهد. شبیه به رمز ورود یا کد WordPress شما است. شما برای دستیابی به داشبورد مدیریت، آن را وارد مرورگر میکنید. در این حالت، دستورات SQL میتوانند سرور را به انجام برخی عملیات کنترل کنند:
- پرس و جو دادهها (Data query): درخواست اطلاعات خاص از پایگاه داده موجود.
- دستکاری دادهها (Data manipulation): اضافه کردن، حذف، تغییر، مرتب سازی و سایر عملیات برای تغییر دادهها، مقادیر یا تصاویر.
- هویت داده (Data identity): تعریف انواع داده، به عنوان مثال تغییر دادههای عددی به اعداد صحیح را میتوان نامبرد.
- کنترل دسترسی به دادهها (Data access control): ارائه تکنیکهای امنیتی برای محافظت از دادهها، این شامل تصمیم گیری در مورد اینکه چه کسی میتواند اطلاعات موجود در پایگاه داده را مشاهده یا استفاده کند، میشود
شباهت پایگاه داده sql server و mysql
در عین حال که my sql و sql server تفاوت هایی با هم دارند، شباهتهایی از جمله موارد زیر داردند:
- امنیت
- ابزارهای مورد استفاده
- ویژگی های سطح بالا (Enterprise)
- موتور دیتابیس
- Bussiness Intelligence and Big Data
تفاوت MSSQL و mysql
حال که متوجه شدید My SQL چیست، باید به تفاوت دو محصول مختلف MSSQL و MySQL که از دو شرکت مختلف هستند بپردازیم.
MS SQL Server نرم افزار مدیریت بانک اطلاعاتی هست که توسط شرکت مایکروسافت تولید و با قیمت بالایی فروخته می شود. MySQL یک نرم افزار مدیریت بانک اطلاعاتی Open-source و رایگان است که شرکت Sun امتیازش را خریداری کرده است. بطور کلی، MS SQL Server امکانات بیشتری در مقایسه با نرم افزار mysql دارد، ولی رایگان بودن MySQL باعث شده که در کارهای با حجم متوسط، بیشتر مورد استفاده قرار بگیرد.
MS SQL SERVER یکی از محصولات میکروسافت و معمولا از ورژن ۲۰۰۰ به بعد آن در سازمان ها استفاده می شد. اما MS SQL Server 2008 که در همین سال معرفی شد، به نسبت ورژن قبلی فوق العاده بود. زمانیکه که از زبان های برنامه نویسی مایکروسافتی یا برنامه نویسی تحت ویندوز استفاده می کنید از SQL SERVER استفاده می شود. قدرت پردازش آن فوق العاده بوده ، کاربردهای بسیاری را پشتیبانی کرده و امکانات و امنیتی بالایی دارد . برای آشنایی با نصب ابن برنامه می توانید مقاله آموزش نصب sql server 2019 را بخوانید.
Mssql بر پایه ی سیستم عامل ویندوز قرار دارد در صورتیکه Mysql جهت طراحی برنامه های تحت سیستم عامل لینوکس بوده و از آنجایی که open source است بیشتر افراد با آن آشنا بوده و هنگام بروز مشکل به راحتی می توان از افراد کمک گرفت .
در نسخه ی ۴ ، Mysql ا View,Triggers,store procedure وجود ندارد در حالیکه همه این عناصر در sql server پشتیبانی می شوند.
Mssql توسط مایکروسافت توسعه یافته است در حالیکه My sql ، Open source بوده و رایگان می باشد. همچنین بیشتر سایت های پرترافیک از Mysql استفاده کرده اند که در استفاده از آن موفق بوده اند.
پیشنهاد می کنیم مقاله sql server چیست را مطالعه نمایید تا درباره Microsoft SQL Server و نسخه های مختلف آن نیز اطلاعات بیشتری کسب نمایید
مزایای استفاده از پایگاه داده mysql چیست؟
- استفاده رایگان
- یادگیری آسان و سهولت پیکربندی
- کارایی بالا
- سازگاری با تمام سیستم عامل های ویندوزی و لینوکسی
- امنیت بالا
- در دسترس بودن کد اصلی
MariaDB یک شاخه (Fork) از MySQL
MariaDB یک شاخه توسعه یافته در انجمنهای برنامه نویسی از سیستم مدیریت پایگاه داده رابطه ای MySQL است که قصد دارد تحت GNU GPL آزاد بماند.
به دلیل نگرانی در مورد خریداری MySQL توسط اوراکل اصلی MySQL ایجاد شد. MariaDB در نظر دارد سازگاری بالایی با MySQL داشته باشد و از قابلیت جایگزینی MySQL برخوردار باشد و این مهم از طریق مطابقت دقیق با API ها و دستورات MySQL به دست آمدهاست. برخی اختلافات و ناسازگاریهای مستند بین نسخههای MySQL و MariaDB وجود دارد، به عنوان مثال برخی از ابزارهای تعامل با MySQL مانند MySQL Workbench کاملاً با MariaDB سازگار نیستند.
Mysql یک نوع دیتابیس است که داده را به شکل جدول ذخیره می نماید. به هر سطر جدول یک رکورد و هر ستون فیلد نام دارد. هر دیتابیسی مجموعه ای از چندین جدول می باشد که هر کدام دارای نام بوده و معمولا این نام متناسب با نوع داده های ذخیره شده در جدول می باشد.
یک نمونه جدول به شکل زیر است :
LastName | FirstName | Address | City |
Hansen | Ola | Timoteivn 10 | Sandnes |
Svendson | Tove | Borgvn 23 | Sandnes |
Pettersen | Kari | Storgt 20 | Stavanger |
Queries : کوئری در واقع پرس و جوی یک درخواست یا سوال است. توسط Mysql می توانید یک پرس و جو را از دیتابیس برای اطلاعات خاصی انجام دهید : مانند
SELECT LastName FROM Persons
این پرس و جو lastname را از جدول Persons درخواست می دهد که نتیجه به شکل زیر است :
LastName |
Hansen |
Svendson |
Pettersen |
دستورات پایگاه داده mysql
دستوراتی مانند ایجاد/قطع ارتباط با دیتابیس، ساخت پایگاه داده، ایجاد جدول در پایگاه داده MySQL و … از مهمترین و کاربردی ترین دستورات MySQL به شمار می روند. از این رو در این بخش به معرفی آنها خواهیم پرداخت:
ساخت Connection به دیتابیس Mysql :
قبل از دسترسی به داده های دیتابیس شما نیاز به ایحاد یک Connection دارید : در PHP این کار توسط تابع mysql_connect() انجام می شود.
mysql_connect(servername,username,password);
بستن Connection :
با اتمام اجرای اسکریپت شما ، دیتابیس به طور اتوماتیک بسته می شود. جهت بستن کانکشن پیش از اتمام کد، از تابع mysql_close() استفاده می شود.
ساخت دیتابیس :
برای ساخت دیتابیس در MySql از دستور mysql_close() استفاده می شود.دستورات PHP موجود در لیست زیر این کار را انجام می دهد:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } if (mysql_query("CREATE DATABASE my_db",$con)) { echo "Database created"; } else { echo "Error creating database: " . mysql_error(); } mysql_close($con); ?>
ساخت جدول در MySQL:
از دستور CREATE TABLE جهت ساخت جدول در Mysql استفاده می شود. از تابع mysql_query() نیز جهت اجرای فرمان استفاده می شود.
نکته : قبل از ساخت جدول بایستی دیتابیس توسط تابع mysql_select_db() انتخاب شود .
انواع داده هایی که در این نوع دیتابیس برای فیلدها استفاده می شوند شامل :
CHAR(size) |
VARCHAR(size) |
TINYTEXT |
TEXT |
BLOB |
MEDIUMTEXT |
MEDIUMBLOB |
LONGTEXT |
LONGBLOB |
ENUM(x,y,z,etc.) |
SET |
درج داده در جدول:
از فرمان INSERT INTO جهت انجام این کار استفاده می شود.
INSERT INTO table_name
VALUES (value1, value2, value3,...)
منظور از بروز رسانی و (Update) داده های mysqlچیست ؟
از دستور Update برای انجام این کار استفاده می شود. در صوتیکه از PHP برای به روز آوری استفاده کنید ، باید تابع mysql_query() را فراخوانی کنید.
حذف داده ها در دیتابیس:
از دستور DELETE FROM برای حذف رکوردها استفاده می شود.
DELETE FROM table_name WHERE some_column = some_value
ساخت کانکشن ODBC:
پیش از آنکه بخواهیم ایجاد ارتباط با ODBC را بگوییم باید به این سوال پاسخ دهیم که odbc چیست؟ ODBC یک رابط برنامه نویسی کاربردی است که به شما اجازه ی اتصال به datasource های مختلف را می دهد.
توسط این کانکشن می توانید به هر نوع دیتابیسی وصل شوید ، تنظمیات زیر بایستی در جایی که سایت شما قرار دارد انجام شود تا یک کانکشن ODBC ایجاد گردد :
گزینه ی Administrative Tools را در کنترل پنل باز کنید ،
بر روی Data Sources (ODBC) کلیک کنید .
به تب System DSN برویدو بر روی Add کلیک کنید.
Microsoft Access Driver را انتخاب و بر روی finish کلیک کنید.
در صفحه ی بعد روی Select to locate the database کلیک نمایید.
نام datasource را وارد نمایید و روی Ok کلیک کنید.
اتصال به ODBC:
از تابع odbc_connect() برای اتصال استفاده می شود و تابع odbc_exec() برای اجرای دستورات sql می باشد .
توسط تابع odbc_fetch_row() می توانید یک فیلد را از یک رکورد بخوانید.
تفاوت mysql با بقیه سرویس های مشابه چیه؟
سلام مقالتون بسیار مفید بود اما من یه سوال داشتم در رابطه با sql server و اینکه من تو ویژوال مایگرشن رو میزنم اوکیه مدلا هم ساخته میشن update-database هم میزنم وقتی sql رو باز میکنم هیچ مدلی ساخته نشده و نمیدونم چرا اینطوری شده و هیچ اروری هم نیست تا بررسیش کنم
شما میتونید کمکم کنید ممنون میشم
باید لاگ سرور رو چک کنید، با توجه به نوع و مسیر نصب هم مسیر لاگ فایل ها متفاوته. فایل های لاگ رو پیدا کنید و متن ارور رو از توی لاگ در بیارید.
سلام خسته نباشید. ممنون بابت مقاله های خوبتون
یه سوالی داشتم ممنون میشم راهنمایی کنید:
من یه کوئری میخوام بنویسم که بیاد اعضایی که نام کاربری شون با “A” شروع میشه رو برگردونه.
ممنون میشم راهنمایی کنید
سلام
کاربر عزیز، شما میتواند در خود phpmyadmin روی tabel مورد نظر کلیک کنید و در تب search روش های مختلفی برای یافتن مقدار وجود دارد به عنوان مثال اگر سرچ رو بر اساس %LIKE% انجام دهید، مقادیری حروف مشابه در داخلش هست رو براتون بر میگردونه.
برای query هم باید به صورت زیر انجام دهید.
SELECT * FROM `tabel` where ‘name’ %LIKE% ‘a’
سلام
می خواستم بدونم اگر بخوایم برای پیاده سازی Authentication بازیمون تو یونیتی از MySQL استفاده کنیم آیا تو ایران جواب میده یا پیاده سازیش تو ایران ممکن نیست؟
تا جایی که من میدونم محدودیت مکانی نداره و مهم اینه که استراتژی درستی برای دسترسی و امنیت خودتون داشته باشین
مطلب جالبی بود استفاده کردم.
ممنون