آشنائی با پایگاه داده MYSQL

به نام خدا و با سلام .
تبصره ::: این آموزش توسط دوست عزیزمان جناب متالیک تنظیم شده است .
1. انواع فیلدهای مختلف پر کاربرد و معروف یک جدول MySql عبارتند از:

PgSQL
1
2
3
4
5
6
7
8
9
10
char(length)
varchar(length)
int(length)
int(length) unsigned
text
decimal(length,dec)
enum(“option1”,“option2”, . . .)
date
time
Datetime

اولی برای نگهداری انواع کاراکتر به کار می رود. که دارای طول ثابتی به اندازه ی length می باشد. مثلا برای نگهداری ایالت مشتری که تعداد حروف آن ها دقیقا 2 است به کار می رود.
دومی برای نگهداری انواع کارکتر به کار می رود، تفاوت آن با اولی این است که طول آن ثابت نیست و می تواند متغیر باشد و طول آن می تواند از 0 تا 255 کاراکتر تغییر کند. حداکثر طول را در داخل پرانتز مشخص می کنیم. مثلا برای نگهداری آدرس مشتری به کار می رود که اولا دارای حرف و عدد می باشد ثانیا دارای طول مختلف می باشد.
سومی برای نگهداری اعداد صحیح به کار می رود و می تواند مقداری از -2147483648 تا +2147483648 داشته باشد. مقدار داخل پرانتز مقدار آن نیست بلکه نشانگر حداکثر تعداد کاراکترهای عدد می باشد. می توانید توابع ریاضی را برای این نوع فبلدها به کار برید. مثلا برای نگهداری تعداد اجناس خریداری شده ی مشتری به کار می رود.
چهارمی برای نگهداری اعداد مثبت صحیح و صفر تا عدد 4294967295 به کار می روند. مقدار داخل پرانتز تعداد کاراکترهای قابل نمایش را مشخص می کند و توابع ریاضی را هم می توان به کار برد. مثلا برای ذخیره ی ID مشتری به کار می رود.
پنجمی برای نگهداری انواع کاراکتر به طول 65536 به کار می رود. مثلا برای نگهداری نظرات مشتریان به کار می رود.
ششمی برای نگهداری اعداد اعشاری به کار می رود. مقدار length تعداد کاراکترهای نمایش عدد را مشخص می کند و مقدار dec مکان قراردادن علامت اعشار به کار می رود. فرض کنیم حداکثر قیمت فروش 999.99 دلار باشد برای تعریف این فیلد از عبارت decimal(6,2) استفاده می کنیم. مثلا برای نگهداری قیمت ها به کار می رود.
هفتمی برای نکهداری مقادیر پیش فرض مختلف برای انتخاب به کار می رود. مثلا انتخاب بین true یا false. حداکثر تعداد انتخاب ها می تواند 65535 باشد. مثلا برای نگهداری جنس مشتریان بین انتخاب دو مقدار پیش فرض male و female به کار می رود.
هشتمی برای نگهداری تاریخ به صورت yyyy-mm-dd به کار می رود. مثلا برای نگهداری تاریخ سفارش مشتری، تاریخ تولد مشتری، تاریخ عضویت مشتری و … به کار می رود.
نهمی برای نگهداری زمان به صورت hh:mm:ss به کار می رود. مثلا برای نگهداری ساعت ارسال مطلب به سایت به کار می رود.
دهمی برای نگهدرای تاریخ و زمان به صورت همزمان و به صورت yyyy-mm-dd hh:mm:ss به کار می رود. یعنی ترکیبی از حالات بین هشت و نه می باشد. مثلا برای نگهداری آخرین بازدید یک کاربر از سایت به کار می رود.
2. انواع فیلدهای مختلف کم کاربرد و غیر معروف یک جدول MySql عبارتند از:

PgSQL
1
2
3
4
5
6
7
8
9
10
11
12
tinyint(length)
smallint(length)
mediumint(length)
bigint(length)
tinytext
mediumtext
longtext
blob
tinyblob
mediumblob
longblob
year(length)

اولی برای نگهداری عدد صحیح بین -128 تا 127 به کار می رود. اگر با پارامتر unsigned به کار رود بین صفر و 255 است.
دومی برای نگهداری عدد صحیح بین -32768 تا +32768 به کار می رود. اگر با پارامتر unsigned به کار رود بین صفر و 65535 است.
سومی برای نگهداری عدد صحیح بین -8388608 تا +8388608 به کار می رود. اگر با پارامتر unsigned به کار رود بین صفر و 16777215 است.
چهارمی برای نگهداری عدد صحیح بین -9223372036854775808 تا +9223372036854775808 به کار می رود. اگر با پارامتر unsigned به کار رود بین صفر و 18446744073709551615 است.
پنجمی برای نگهداری 255 کاراکتر داده می باشد. ششمی برای نگهداری 1677215 کاراکتر می باشد. هفتمی برای نگهداری 4294967295 کاراکتر می باشد.
هشتمی مانند فیلد text می باشد اما با این تفاوت که case-sentensive است حتی در زمان سورت کردن و مقایسه کردن و تا 65535 کاراکتر را نگهداری می کند.
نهمی، دهمی، یازدهمی مانند بالا هشتمی می باشد فقط در مقدار طول متفاوت هستند.
دوازدهمی برای نگهداری سال به کار می رود و به صورت 4 رقمی و 2 رقمی که در length مشخص می شود قابل استفاده می باشد.
3. چگونه یک فیلد مناسب برای کار خود انتخاب کنیم؟
مهمترین نکته برای طراحی و ساخت یک جدول انتخاب نوع فیلد می باشد. برای این کار باید سوالات مخصوصی طرح کنیم و جواب را پیدا می کنیم.
روش کار:
سوال اول: آیا فیلد مربوطه شامل عدد و حرف به صورت هم زمان می باشد؟
بله. پس باید یکی از گزینه های زیر را انتخاب کنیم:

PgSQL
1
char, varchar, text, tinytext, mediumtext, longtext, blob, tinyblob, mediumblob, longblob

سوال دوم: حداکثر تعداد کاراکترهای مورد نیاز داده های ورودی ما چقدر است؟ و آیا طول هر یک از ورودی های ما متفاوت است؟ برای ورودی های
1. کمتر از 255 کاراکتر و طول ثابت از char استفاده کنید.
2. بین 1-255 کاراکتر و طول مختلف، هنگامی که می خواهید فاصله های اضافی انتهایی را حذف کنید و یا یک مقدار پیش فرض داشته باشید از varchar ، هنگامی که فاصله های انتهایی و اضافی اهمیتی ندارند و یا مقدار پیش فرض ندارید و یا به case sentensive بودن آن توجهی ندارید از tinytext، مانند قبل ولی با این تفاوت که case sentensive بودن داده ها مهم است از blobtext استفاده کنید.
3. بین 256 تا 65536 کاراکتر از text برای حالت عادی و از blob برای حالت case sentensive استفاده کنید.
بین 65537 تا 16277215 کاراکتر از mediumtext برای حالت عادی و از mediumblob برای حالت case sentensive استفاده کنید.
4. از 16277215 تا 4294967295 کاراکتر از longtext برای حالت عادی و از longblob برای حالت case sentensive استفاده کنید.
5. اگر مقادیر شما محدود و کم هستند و برای حات انتخاب از enum استفاده کنید.
اگر جواب سوال اول خیر بود یعنی فقط عدد بود و یا تابع عددی بود مانند زیر عمل می کنیم:
1. برای نگهداری عدد صحیح بین -127 تا 127 از tinyint استفاده کنید.
2. برای نگهداری عدد صحیح بین -32768 تا 32767 از smallint استفاده کنید.
3. برای نگهداری عدد صحیح بین -8388608 تا +8388607 از mediumint استفاده کنید.
4. برای نگهداری عدد صحیح بین -21474836487 تا +2147483648 از int استفاده کنید.
5. برای نگهداری عدد صحیح بین -9223372036854775808 تا 9223372036854775807 از bigint استفاده کنید.
6. برای نگهداری عدد صحیح بین 0 تا 255 از unsigned tinyint استفاده کنید.
7. برای نگهداری عدد صحیح بین 0 تا 65535 از unsigned smallint استفاده کنید.
8. برای نگهداری عدد صحیح بین 0 تا 16777215از unsigned mediumint استفاده کنید.
9. برای نگهداری عدد صحیح بین 0 تا 4294967295 از unsigned int استفاده کنید.
10. برای نگهداری عدد صحیح بین 0 تا 18446744073709551615 از unsigned bigint استفاده کنید.
4. پارامترهای تکمیلی:
بعد از تعیین نوع فیلدها می توان از پارامترهای زیر استفاده کرد:
1. null: اگر بخواهیم مقدار یک فیلد خالی باشد و اجازه ی ذخیره سازی مقدار خالی را بدهیم از null استفاده می کنیم.
2. not null: اگر بخواهیم فیلدی خالی نباشد و حتما دارای مقدار باشد از این پارامتر استفاده می کنیم.
3. auto_increment: زمانی که بخواهیم اعداد را به طور اتوماتیک ترتیب ذخیره کنیم. مثلا ردیف اول جدول دارای id یک باشد آنگاه به طور اتوماتیک ردیف دوم جدول دارای id 2 می شود و الی آخر.
4. PRIMARY KEY: برای مشخص کردن کلید اصلی جدول استفاده می شود.
5. TYPE: برای تعیین نوع جدول داده به کار می رود که باید یکی از مقادیر زیر را داشته باشد.
6. default: برای مشخص کردن پیش فرض یک فیلد استفاده می شود.
5. انواع جدول های MySql:
MyISAM .1 : پیش فرض می باشد. و همه ی انواع مختلف فیلدها را پشتیبانی می کند.
2. ISAM: مانند اولی می باشد با این تفاوت که فیلدهای blob و text فهرست گذاری نمی شوند.
3. HEAP و InnoDB و BDB از انواع دیگر آن می باشد.

درباره amin amanpour