با انواع داده در MYSQL آشنا بشیم

با انواع داده در MYSQL آشنا بشیم

در MySQL، انواع داده‌ای مختلفی برای ذخیره‌سازی و مدیریت داده‌ها وجود دارد ، SET هم یک نوع داده ای در MYSQL هست که برای ذخیره‌سازی یک مجموعه از مقادیر از یک لیست از پیش تعریف شده استفاده می‌شه


MySQL یک سیستم مدیریت پایگاه داده رابطه‌ای (RDBMS) است که تحت مجوز‌های گوناگون از جمله GPL توسعه داده شده و با استفاده از زبان ساختاریافته‌ی SQL (Structured Query Language) برای مدیریت و دسترسی به داده‌ها استفاده میشه. MySQL یکی از محبوب‌ترین سیستم‌های مدیریت پایگاه داده‌ای هست و در بسیاری از برنامه‌های کاربردی وب، از جمله وردپرس، جوملا و...  استفاده میشه. 

این دیتابیس ابتدا توسط یک شرکت سوئدی به اسم MySQL AB توسعه داده شد که در ابتدا هدف اون ایجاد یک سیستم مدیریت پایگاه داده‌ای سریع، مطمئن و آسان برای استفاده بود. 

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

در MySQL، انواع داده‌ای مختلفی برای ذخیره‌سازی و مدیریت داده‌ها وجود دارد که به طور کلی به دسته‌های زیر تقسیم میشن: 


داده‌های عددی (Numeric Data Types)

TINYINT:  یک عدد صحیح کوچک (۱ بایت) با محدوده -۱۲۸ تا ۱۲۷ یا ۰ تا ۲۵۵ می‌باشد برای زمانی که نیاز به ذخیره‌سازی اعداد صحیح کوچک دارید مناسب می‌باشد. 
SMALLINT:  یک عدد صحیح کوچک (۲ بایت) با محدوده -۳۲۷۶۸ تا ۳۲۷۶۷ یا ۰ تا ۶۵۵۳۵ هست و برای اعداد صحیح کوچکتر از INT اما بزرگتر از TINYINT مناسب هست
MEDIUMINT:  یک عدد صحیح متوسط (۳ بایت) با محدوده -۸۳۸۸۶۰۸ تا ۸۳۸۸۶۰۷ یا ۰ تا ۱۶۷۷۷۲۱۵. 
INT:  یک عدد صحیح (۴ بایت) با محدوده -۲۱۴۷۴۸۳۶۴۸ تا ۲۱۴۷۴۸۳۶۴۷ یا ۰ تا ۴۲۹۴۹۶۷۲۹۵. که برای ذخیره‌سازی اعداد صحیح بزرگ معمولی استفاده میشه. 
BIGINT:  یک عدد صحیح بزرگ (۸ بایت) با محدوده -۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۸ تا ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۷ یا ۰ تا ۱۸۴۴۶۷۴۴۰۷۳۷۰۹۵۵۱۶۱۵، از این نوع برای ذخیره‌سازی اعداد صحیح بزرگ می‌تونید استفاده کنید
FLOAT:  یک عدد اعشاری با دقت کم، دارای دقت حدود ۷ رقم اعشاری. 
DOUBLE:  یک عدد اعشاری با دقت بالا، دارای دقت حدود ۱۵ رقم اعشاری. 
DECIMAL:  یک عدد اعشاری دقیق با تعداد مشخصی از ارقام اعشاری که توسط M (کل تعداد ارقام) و D (تعداد ارقام اعشاری) تعریف می‌شود. مثل مقادیر مالی می‌تونید از این نوع استفاده کنید


داده‌های متنی (String Data Types)

CHAR:  برای ذخیره‌سازی رشته‌های کاراکتری با طول ثابت استفاده میشه. حداکثر طولی که می‌توان برای یک ستون CHAR تعیین کرد ۲۵۵ کاراکتر هست. 
VARCHAR: از این نوع برای ذخیره‌سازی رشته‌های کاراکتری با طول متغیر استفاده میشه و حداکثر طولی که می‌توان برای یک ستون VARCHAR تعیین کرد ۶۵، ۵۳۵ کاراکتر است، که البته مقدار بسته به سایر ستون‌های جدول و مجموعه کاراکتری ممکن هست کمتر باشه. 
TINYTEXT:  یک متن کوتاه با حداکثر ۲۵۵ کاراکتر. 
TEXT:  یک متن با حداکثر ۶۵، ۵۳۵ کاراکتر. 
MEDIUMTEXT:  یک متن با حداکثر ۱۶، ۷۷۷، ۲۱۵ کاراکتر. 
LONGTEXT:  یک متن با حداکثر ۴، ۲۹۴، ۹۶۷، ۲۹۵ کاراکتر. 


در مورد داده‌های متنی یکسری نکات رو اشاره کنیم بهتره: 
مثلاً اینکه جستجو و مقایسه در ستون‌های CHAR ممکن هست کمی سریع‌تر از VARCHAR باشه چونکه تمام رشته‌ها طول یکسانی دارند. 
همچنین زمانی که طول داده‌ها متغیر هست و فضای ذخیره‌سازی  هم مهم هست، مانند نام‌ها یا آدرس‌ها که طول متغیری دارن بهتره از VARCHAR استفاده بشه. 
زمانی که نیاز به ذخیره‌سازی متون بسیار طولانی دارید، مانند محتوای مقالات، توضیحات طولانی یا داده‌های بزرگ متنی نوع رو TEXT یا LONGTEXT انتخاب کنید. 

داده‌های تاریخ و زمان

برای ذخیره‌سازی داده‌های مربوط به زمان هم MYSQL انواع خاصی رو توی خودش داره که در زیر بصورت خلاصه هر کدوم رو بررسی می‌کنیم: 

DATE:  برای ذخیره‌سازی تاریخ بدون زمان استفاده میشه. 
DATETIME:  برای ذخیره‌سازی تاریخ و زمان با همدیگه استفاده میشه. 
TIMESTAMP: از TIMESTAMP برای ذخیره‌سازی تاریخ و زمان بصورت TIMESTAMP استفاده میشه. این نوع داده‌ای برای ذخیره ایجاد و بروزرسانی داده‌های خیلی مفید هست. 
TIME:  برای ذخیره‌سازی زمان بدون تاریخ استفاده میشه
YEAR:  از YEAR هم برای ذخیره‌سازی تنها سال می‌تونید استفاده کنید. 


داده‌های دودویی
داده‌های دودویی (Binary Data Types) در MySQL برای ذخیره‌سازی داده‌هایی که به صورت دودویی (باینری) هستند، استفاده میشن. این نوع داده‌ها معمولاً برای ذخیره‌سازی فایل‌ها، تصاویر، ویدئو‌ها، و سایر داده‌هایی که به صورت مستقیم قابل نمایش و تفسیر نیستند، به کار میرن. 

داده‌های دودویی در MySQL به چند دسته تقسیم میشن: 

BINARY:  یک رشته باینری ثابت طول. حداکثر طول 255 بایت. 
VARBINARY:  یک رشته باینری متغیر طول.  حداکثر طول 65,535 بایت. 
TINYBLOB:  یک باینری کوچک با حداکثر 255 بایت. 
BLOB:  یک باینری با حداکثر 65,535 بایت. 
MEDIUMBLOB:  یک باینری با حداکثر 16,777,215 بایت. 
LONGBLOB:  یک باینری با حداکثر 4,294,967,295  بایت. 
برای داده‌های باینری  فرض کنید جدولی به نام files دارید که برای ذخیره‌سازی فایل‌ها به کار می‌رود. می‌توانید از انواع داده‌های دودویی به صورت زیر استفاده کنید:

CREATE TABLE files (
    id INT AUTO_INCREMENT PRIMARY KEY,
    file_name VARCHAR(255) NOT NULL,
    file_data LONGBLOB NOT NULL
);

ما یه فیلد بنام fild_data داریم که نوع اون رو LONGBLOB گذاشتیم و میشه فایل های بزرگ رو هم توی اون ذخیره کرد.

البته این رو هم باید در نظر بگیرید که ذخیره کردن فایل توی دیتابیس ممکنه بر عملکرد دیتابیس شما تاثیر بذاره و من پیشنهاد نمیکنم این مورد رو. 

 

یک نوع داده ای دیگه هم توی MYSQL داریم که می تونیم زمانی استفاده کنیم که یک لیست تعریف شده داریم و میخوایم مقادیر اون سلول همیشه مقادیر موجود در اون لیست باشن. به این نوع داده ای ENUM گفته میشه. شما مثلا میتونید جنسیت رو بصورت ENUM تعریف کنید یا سطح تحصیلات، رنگ پوست و...

لیست داده ای ENUM میتونه حداکثر 65535 مقدار مختلف داشته باشه.

 

SET هم یک نوع داده ای در MYSQL هست که برای ذخیره‌سازی یک مجموعه از مقادیر از یک لیست از پیش تعریف شده استفاده می‌شه. یک ستون از نوع SET میتونه یک یا چند مقدار رو همزمان ذخیره کنه. این نوع داده ای هم میتونه تا ۶۴ مقدار متفاوت رو داشته باشه.

تصور کنید میخواید علایق کاربران رو ذخیره کنید. که این علایق  میتونن شامل مقادیری مثل reading، sports، music و travel باشن. یه جدول بصورت زیر ایجاد میکنیم:

CREATE TABLE user_interests (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    interests SET('reading', 'sports', 'music', 'travel') NOT NULL
);

توی این مثال، ستون interests میتونه یک یا چند مورد از مقادیر reading، sports، music و travel را ذخیره کنه.

برای نمونه:

INSERT INTO user_interests (username, interests) VALUES ('john_doe', 'reading,music');

شما میتونید این مقادیر رو اپدیت هم کنید.

 

توی این مقاله سعی کردم شما رو با مهمترین نوع داده ای توی MYSQL آشنا کنم.

اگر شما هم پیشنهادی دارید یا نوع داده ای میشناسید که من توی مقاله نیاوردم از قسمت نظرات برای ما ارسال کنید. حتما خوشحال میشیم :)


دسته بندی ها:

آموزش mysql

ارسال نظر

برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *

ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *

اگر نظری برای این مطلب ارسال شد از طریق ایمیل مرا اطلاع بده!
لسیت نظرات
هنوز برای این مطلب نظری ارسال نشده است!