نوع داده ها در MySql database
خیلی از برنامه نویسان عزیز از نوع داده های بانک اطلاعاتی یا database زیاد اطلاعاتی ندارند. برای همین بعدا که وارد فضای کاری میشن به مشکل بر می خورن.
نکته هایی هم بگم:
unsigned : یعنی مقادیر بدون علامت رو فقط دریافت میکنه(عدد های منفی رو اگه بخواهید ذخیره کنید مثبت می شوند).
zerofill : اگر مقداری که به فیلد دادید از تعداد ارقام مشخص شده کمتر باشه سمت چپ ارقامی که خالی هست رو عدد 0 میگذاره.
خدمت شما بگم در mysql عزیز که خیلی طرفداراش زیاد هستن 3 نوع داده می تونید وارد کنید:
- داده متنی
- داده عددی
- داده تاریخ و زمان
نوع داده متنی:
توضیحات |
نوع داده |
رشته ای با طول ثابت (می تواند شامل حروف، اعداد و کاراکترهای خاصی باشد) |
CHAR(size) |
رشته ای با طول متغیر می باشد (می تواند شامل حروف، اعداد و کاراکترهای خاصی باشد) حداکثر طول رشته در پرانتز مشخص می شود و حداکثر 255 کاراکتر است توجه: اگر رشته ای با طول بیش از 255 کاراکتر را در آن قرار دهید، به نوع TEXT تبدیل خواهد شد |
VARCHAR(size) |
رشته ای با طول حداکثر 255 کاراکتر |
TINYTEXT |
رشته ای با طول حداکثر 65,535 کاراکتر |
TEXT |
داده باینری با طول حداکثر 65,535 بایت (Binary Large OBject) |
BLOB |
رشته ای با طول حداکثر 16,777,215 کاراکتر |
MEDIUMTEXT |
داده باینری با طول حداکثر 16,777,215 بایت (Binary Large OBject) |
MEDIUMBLOB |
رشته ای با طول حداکثر 4,294,967,295 کاراکتر |
LONGTEXT |
داده باینری با طول حداکثر 4,294,967,295 بایت (Binary Large OBject) |
LONGBLOB |
فقط یکی از مقادیری که در پرانتز لیست شده است، اجازه ورود دارد. می توانید حداکثر 65535 کاراکتر در ENUM لیست کنید اگر مقداری که در لیست وجود ندارد، درج شود، یک blank یا فضای خالی بجای آن در نظر گرفته می شود |
ENUM(x,y,z,etc.) |
مانند ENUM است با این تفاوت که، حداکثر 64 آیتم می توانید لیست کنید و همچنین بیشتر از یک انتخاب دارید |
SET |
نوع داده عددی:
فضا |
توضیحات |
نوع داده |
1 byte |
محدوده اعداد مجاز به صورت علامت دار: 128- تا 127 |
TINYINT(size) |
2 byte |
محدوده اعداد مجاز به صورت علامت دار: 32768- تا 32767 |
SMALLINT(size) |
3 byte |
محدوده اعداد مجاز به صورت علامت دار: 8388608- تا 8388607 |
MEDIUMINT(size) |
4 byte |
محدوده اعداد مجاز به صورت علامت دار: 2147483648- تا 2147483647 |
INT(size) |
8 byte |
محدوده اعداد مجاز به صورت علامت دار: 9223372036854775808- تا 9223372036854775807 |
BIGINT(size) |
4 یا 8 byte |
از این دو نوع داده برای ذخیره اعداد اعشاری با ممیز شناور استفاده می شود |
FLOAT(size,d) |
8 byte |
از این دو نوع داده برای ذخیره اعداد اعشاری با ممیز شناور استفاده می شود پارامتر size حداکثر تعداد ارقام و پارمتر d حداکثر تعداد ارقام سمت راست ممیز اعشار را مشخص می کند |
DOUBLE(size,d) |
|
از این نوع داده برای نگهداری اعداد اعشاری با ممیز ثابت استفاده می شود. این نوع داده برای هر ۹ رقم ، ۴ بایت فضا اشغال می کند |
DECIMAL(size,d) |
نوع داده تاریخ / زمان:
فضا |
توضیحات |
نوع داده |
3 byte |
این نوع داده برای نگهداری تاریخ (بدون ساعت)، با غالب 'YYYY-MM-DD' استفاده می شود |
()DATE |
8 byte |
این نوع داده برای نگهداری زمان (هم تاریخ و هم ساعت بصورت تفکیک شده و بدون توجه به منطقه زمانی)، با غالب 'YYYY-MM-DD HH:MM:SS' استفاده می شود |
()DATETIME |
4 byte |
هر زمان سطری ایجاد یا تغییر داده می شود، یک عدد یکتا بصورت اتوکاتیک در این فیلد ذخیره می شود. داده timestamp وابسته به ساعت داخلی سیستم می باشد و با زمان واقعی مطابقت ندارد. هر جدولی ممکن است یک timestamp متفاوت داشته باشد. به عبارت دیگر در این فیلد ۸ بایتی، تایم لحظهای اجرای دستور نگهداری میشود و کاربرد آن کنترل بروزرسانی همزمان (Concurrency) اطلاعات توسط چند کاربر است. البته در تعداد رکوردهای پایین به کار نمیآید و بیشتر زمانی مورد نیاز است که تعداد رکوردها خیلی زیاد باشد مثلاً ۱۰۰ میلیون رکورد! توجه: محدوده زمانی بصورت '00:00:00 01-01-1000' UTC تا '23:59:59 31-12-9999' UTC می باشد. یعنی هنگام ذخیره سازی زمان ، آن را از زمان محلی (Time Zone) سیستم به زمان UTC (گیرینویچ) تبدیل می کند و هنگام بازیابی ، آنرا از UTC به زمان محلی سیستم تبدیل می کند. |
()TIMESTAMP |
3 byte |
این نوع داده برای نگهداری زمان (فقط ساعت ، بدون تاریخ)، با غالب 'HH:MM:SS' یا 'HHH:MM:SS' استفاده می شود |
()TIME |
1 byte |
ذخیره سال به فرمت: دو رقمی یا چهار رقمی |
()YEAR |