اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

11 پرسش و پاسخ پیشرفته پایگاه داده MySQL برای کاربران لینوکس

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    11 پرسش و پاسخ پیشرفته پایگاه داده MySQL برای کاربران لینوکس

    ما قبلا دو مقاله در مورد Mysql منتشر کرده ایم که به خوبی توسط انجمن linux-zone مورد استقبال قرار گرفته است. این سومین مقاله ی Mysql می باشد.

    دستورات اولیه 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
    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 را نشان می دهد.
    کد:
    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 به طور گسترده برای ذخیره شماره تلفن ها استفاده می شود و می تواند برای ذخیره ی هر نوع داده ی متنی ساده ای استفاده می شود.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-09-2021, 02:12 PM.
    اینستاگرام انجمن لینوکس ایران : https://www.instagram.com/iranlinuxforum

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X