ما قبلا دو مقاله در مورد Mysql منتشر کرده ایم که به خوبی توسط انجمن linux-zone مورد استقبال قرار گرفته است. این سومین مقاله ی Mysql می باشد.
دستورات اولیه administration پایگاه داده ی MySQL – بخش اول
20 دستور Mysql (Mysqladmin) برای Database Administration در لینوکس
در این مقاله ما می خواهیم برروی جنبه ی عملی Mysql تمرکز کنیم، و به صورت پرسش و پاسخ آن را مورد بحث قرار دهیم.
1. استفاده از select برای یافتن نسخه ی سروری که شما دارید و چاپ نام دیتابیس چگونه است؟
جواب : دستور Mysql زیر نسخه ی سرور و نام دیتابیس را به شما نشان خواهد داد.
در ستون دیتابیس شما مقدار NULL را می بینید، به دلیل اینکه ما هیچ سروری را انتخاب نکرده ایم. بنابراین با دستور زیر دیتابیسی را انتخاب کنید.
2. نحوه ی استفاده ار عملگر NOT(!) برای انتخاب تمامی کاربران بجز ‘SAM’ از جدولی به نام Tecmint چگونه است؟
جواب : در زیرتمام ستون های تمام کاربران از جدول Tecmint بجز کاربر SAM نشان داده شده اند.
3. آیا امکان پیاده سازی AND با استفاده ازعملگر NOT(!) وجود دارد؟
جواب : عملگر AND زمانی که ما از = استفاده می کنیم ، بکار می رود و عملگر OR زمانی که ما از != استفاده می کنیم، بکار می رود. یک مثال از = با عملگر AND در زیر آمده است.
و یک مثال از != با عملگر OR نیز در زیر آمده است.
= : معنی برابر با می دهد.
!= : معنی برابر نیست را می دهد.
! : عملگر NOT یا نفی را نشان می دهد.
AND و OR به عنوان عملگر های الحاقی در Mysql رفتار می کند.
4. نحوه ی استفاده از عبارت IFNULL() در Mysql چیست؟
جواب : یک query در mysql می تواند دقیقا با عبارت IFNULL() نوشته شود. عبارت IFNULL آرگومان اولش را تست کرده و در صورتی که Null نباشد آنرا برمی گرداند، درغیر اینصورت آرگومان دوم را برمی گرداند.
5. شما می خواهید تنها ردیف هایی از یک مجموعه نتیجه از شروع یا پایان آنرا ببینید. چطور باید این کار را انجام دهید؟
جواب : ما نیاز داریم که از LIMIT به همراه ORDER BY برای توصیف سناریو ی بالا استفاده کنیم.
نمایش 1 رکورد
نمایش 5 رکورد
6. Oracle در برابر Mysql، کدام یک و چرا؟
جواب :مزایا و معایب هر کدام چیست. به عنوان یک موضوع من Mysql را ترجیح می دهم.
دلایلی برای انتخاب Mysql در برابر oracle
Mysql ،FOSS است.
Mysql قابل حمل است.
Mysql هردو محیط GUI یا گرافیکی و خط فرمان را پشتیبانی می کند.
Mysql administration توسط Query browser پشتیبانی شده است.
7. چگونه شما می توانید در Mysql زمان جاری را مشاهده کنید؟
جواب : زمان جاری در Mysql به سادگی با اجرای عبارت زیر قابل مشاهده است.
8. چگونه شما باید جداول را در قالب فایل XML در Mysql استخراج کنید؟
جواب : ما از گزینه –e برای استخراج جداول در mysql یا کل دیتابیس به فایل xml استفاده می کنیم. برای جداول بزرگ ما می توانیم این کار را به صورت دستی اجرا کنیم ولی در مورد جداول کوچک می توانیم از phpMyAdmin استفاده کنیم.
یک دستور محلی در Mysql که این کار را انجام می دهد.
USER_NAME همان username دیتابیس است و table_name نام همان جدولی است که شما می خواهید آنرا در فایل xml استخراج کنید و table_name.xml نام فایلی است که دیتا در آن ذخیره می شود.
9. MySQL_pconnect چیست؟ و تفاوت آن با Mysql_connect چیست؟
جواب : MySQL_pconnect() کانکشنی مداوم را در دیتابیس mysql باز می کند که به سادگی این معنی را می دهد که دیتابیس هر زمان که باز می شود صفحه هایی را لود می کند و از این رو ما نمی توانیم برای بستن یک کانکشن از MySQL_CLOSE() استفاده کنیم.
یک تفاوت کوچک بین Mysql_pconnect() و Mysql_connect() وجود دارد. برخلاف MySQL_pconnect،MySQL_connect هر زمان که دیتابیس لودمی شود صفحات را باز میکند، و هر بار با استفاده از عبارت Mysql_CLOSE()می تواند صفحات لود شده را ببندد.
10. شما نیاز دارید که تمام ایندکس های تعریف شده در جدول user از دیتابیس mysql را نشان دهید. شما چطور باید به این نتیجه برسید؟
جواب : دستور زیر تمام ایندکس های جدول user را نشان می دهد.
11. جداول csv چه هستند؟
جواب : CSV مخفف Comma Seperated value می باشد. جدول csv داده را به صورت متن ساده و جدولی ذخیره می کند. آن معمولا یک رکورد را در هر خط ذخیره می کند.
هر رکورد با جداکننده خاصی (کاما، سمی کالن و ...) جدا می شود و هر رکورد همان دنباله ی فیلد است. جداول csv به طور گسترده برای ذخیره شماره تلفن ها استفاده می شود و می تواند برای ذخیره ی هر نوع داده ی متنی ساده ای استفاده می شود.
دستورات اولیه administration پایگاه داده ی MySQL – بخش اول
20 دستور Mysql (Mysqladmin) برای Database Administration در لینوکس
در این مقاله ما می خواهیم برروی جنبه ی عملی Mysql تمرکز کنیم، و به صورت پرسش و پاسخ آن را مورد بحث قرار دهیم.
1. استفاده از select برای یافتن نسخه ی سروری که شما دارید و چاپ نام دیتابیس چگونه است؟
جواب : دستور Mysql زیر نسخه ی سرور و نام دیتابیس را به شما نشان خواهد داد.
کد:
mysql> SELECT VERSION(), DATABASE(); +-------------------------+------------+ | VERSION() | DATABASE() | +-------------------------+------------+ | 5.5.34-0ubuntu0.13.10.1 | NULL | +-------------------------+------------+ 1 row in set (0.06 sec)
در ستون دیتابیس شما مقدار NULL را می بینید، به دلیل اینکه ما هیچ سروری را انتخاب نکرده ایم. بنابراین با دستور زیر دیتابیسی را انتخاب کنید.
کد:
mysql> use Tecmint; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select VERSION(), DATABASE(); +-------------------------+------------+ | VERSION() | DATABASE() | +-------------------------+------------+ | 5.5.34-0ubuntu0.13.10.1 | tecmint | +-------------------------+------------+ 1 row in set (0.00 sec)
2. نحوه ی استفاده ار عملگر NOT(!) برای انتخاب تمامی کاربران بجز ‘SAM’ از جدولی به نام Tecmint چگونه است؟
جواب : در زیرتمام ستون های تمام کاربران از جدول Tecmint بجز کاربر SAM نشان داده شده اند.
کد:
mysql> SELECT * FROM Tecmint WHERE user !=SAM; +---------------------+---------+---------+---------+---------+-------+ | date | user | host | root | local | size | +---------------------+---------+---------+---------+---------+-------+ | 2001-05-14 14:42:21 | Anthony | venus | barb | venus | 98151 | | 2001-05-15 08:50:57 | TIM | venus | phil | venus | 978 | +---------------------+---------+---------+---------+---------+-------+
3. آیا امکان پیاده سازی AND با استفاده ازعملگر NOT(!) وجود دارد؟
جواب : عملگر AND زمانی که ما از = استفاده می کنیم ، بکار می رود و عملگر OR زمانی که ما از != استفاده می کنیم، بکار می رود. یک مثال از = با عملگر AND در زیر آمده است.
کد:
mysql> SELECT * FROM mail WHERE user = SAM AND root = phil
و یک مثال از != با عملگر OR نیز در زیر آمده است.
کد:
mysql> SELECT * FROM mail WHERE user != SAM OR root != phil +---------------------+---------+---------+---------+---------+-------+ | date | user | host | root | local | size | +---------------------+---------+---------+---------+---------+-------+ | 2001-05-14 14:42:21 | Anthony | venus | barb | venus | 98151 | +---------------------+---------+---------+---------+---------+-------+
!= : معنی برابر نیست را می دهد.
! : عملگر NOT یا نفی را نشان می دهد.
AND و OR به عنوان عملگر های الحاقی در Mysql رفتار می کند.
4. نحوه ی استفاده از عبارت IFNULL() در Mysql چیست؟
جواب : یک query در mysql می تواند دقیقا با عبارت IFNULL() نوشته شود. عبارت IFNULL آرگومان اولش را تست کرده و در صورتی که Null نباشد آنرا برمی گرداند، درغیر اینصورت آرگومان دوم را برمی گرداند.
کد:
mysql> SELECT name, IFNULL(id,'Unknown') AS 'id' FROM taxpayer; +---------+---------+ | name | id | +---------+---------+ | bernina | 198-48 | | bertha | Unknown | | ben | Unknown | | bill | 475-83 | +---------+---------+
5. شما می خواهید تنها ردیف هایی از یک مجموعه نتیجه از شروع یا پایان آنرا ببینید. چطور باید این کار را انجام دهید؟
جواب : ما نیاز داریم که از LIMIT به همراه ORDER BY برای توصیف سناریو ی بالا استفاده کنیم.
نمایش 1 رکورد
کد:
mysql> SELECT * FROM name LIMIT 1; +----+------+------------+-------+----------------------+------+ | id | name | birth | color | foods | cats | +----+------+------------+-------+----------------------+------+ | 1 | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0 | +----+------+------------+-------+----------------------+------+
نمایش 5 رکورد
کد:
mysql> SELECT * FROM profile LIMIT 5; +----+------+------------+-------+-----------------------+------+ | id | name | birth | color | foods | cats | +----+------+------------+-------+-----------------------+------+ | 1 | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0 | | 2 | Mort | 1969-09-30 | white | burrito,curry,eggroll | 3 | | 3 | Brit | 1957-12-01 | red | burrito,curry,pizza | 1 | | 4 | Carl | 1973-11-02 | red | eggroll,pizza | 4 | | 5 | Sean | 1963-07-04 | blue | burrito,curry | 5 | +----+------+------------+-------+-----------------------+------+ mysql> SELECT * FROM profile ORDER BY birth LIMIT 1; +----+------+------------+-------+----------------+------+ | id | name | birth | color | foods | cats | +----+------+------------+-------+----------------+------+ | 9 | Dick | 1952-08-20 | green | lutefisk,fadge | 0 | +----+------+------------+-------+----------------+------+
6. Oracle در برابر Mysql، کدام یک و چرا؟
جواب :مزایا و معایب هر کدام چیست. به عنوان یک موضوع من Mysql را ترجیح می دهم.
دلایلی برای انتخاب Mysql در برابر oracle
Mysql ،FOSS است.
Mysql قابل حمل است.
Mysql هردو محیط GUI یا گرافیکی و خط فرمان را پشتیبانی می کند.
Mysql administration توسط Query browser پشتیبانی شده است.
7. چگونه شما می توانید در Mysql زمان جاری را مشاهده کنید؟
جواب : زمان جاری در Mysql به سادگی با اجرای عبارت زیر قابل مشاهده است.
کد:
mysql> SELECT CURRENT_DATE(); +----------------+ | CURRENT_DATE() | +----------------+ | 2014-06-17 | +----------------+
8. چگونه شما باید جداول را در قالب فایل XML در Mysql استخراج کنید؟
جواب : ما از گزینه –e برای استخراج جداول در mysql یا کل دیتابیس به فایل xml استفاده می کنیم. برای جداول بزرگ ما می توانیم این کار را به صورت دستی اجرا کنیم ولی در مورد جداول کوچک می توانیم از phpMyAdmin استفاده کنیم.
یک دستور محلی در Mysql که این کار را انجام می دهد.
کد:
mysql -u USER_NAME –xml -e 'SELECT * FROM table_name' > table_name.xml
9. MySQL_pconnect چیست؟ و تفاوت آن با Mysql_connect چیست؟
جواب : MySQL_pconnect() کانکشنی مداوم را در دیتابیس mysql باز می کند که به سادگی این معنی را می دهد که دیتابیس هر زمان که باز می شود صفحه هایی را لود می کند و از این رو ما نمی توانیم برای بستن یک کانکشن از MySQL_CLOSE() استفاده کنیم.
یک تفاوت کوچک بین Mysql_pconnect() و Mysql_connect() وجود دارد. برخلاف MySQL_pconnect،MySQL_connect هر زمان که دیتابیس لودمی شود صفحات را باز میکند، و هر بار با استفاده از عبارت Mysql_CLOSE()می تواند صفحات لود شده را ببندد.
10. شما نیاز دارید که تمام ایندکس های تعریف شده در جدول user از دیتابیس mysql را نشان دهید. شما چطور باید به این نتیجه برسید؟
جواب : دستور زیر تمام ایندکس های جدول user را نشان می دهد.
کد:
mysql> show index from user; +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | user | 0 | PRIMARY | 1 | Host | A | NULL | NULL | NULL | | BTREE | | | | user | 0 | PRIMARY | 2 | User | A | 4 | NULL | NULL | | BTREE | | | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 2 rows in set (0.00 sec)
11. جداول csv چه هستند؟
جواب : CSV مخفف Comma Seperated value می باشد. جدول csv داده را به صورت متن ساده و جدولی ذخیره می کند. آن معمولا یک رکورد را در هر خط ذخیره می کند.
هر رکورد با جداکننده خاصی (کاما، سمی کالن و ...) جدا می شود و هر رکورد همان دنباله ی فیلد است. جداول csv به طور گسترده برای ذخیره شماره تلفن ها استفاده می شود و می تواند برای ذخیره ی هر نوع داده ی متنی ساده ای استفاده می شود.