• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
انواع داده در MySQL
#1
خب دوستان برای اینکه موضوعات .
با هم قاصی نشده . برای نوع های داده
تاپیک جدید باز کردم


نوع داده عددی

تعریف درست نوع های داده و طول آنها بسیار مهم است
و باید به آن دقت شود در حال حاضر MySQL
9 نوع عددی + یک نوع جدید (که در ورژن 5.0.3 است ) دارد

BIT : این نوع در ورژن 5.0.3 اضافه شده است

در حالت Default این نوع 1 بیت طول دارد .
و می تواند یک ورودی هم بگیرد که تا حداکثر 64 بیت جا دارد


TINYINT حداکثر طول 1 بایت
مثال حقیقی : از -128 تا 127
توجه : نوع های BOOL, BOOLEAN به صورت خود کار به این نوع تبدیل می شوند یعنی
کد:
TINYINT(1)

SMALLINT حداکثر طول 2 بایت
مثال حقیقی : از -32768 تا 32767

MEDIUMINT حداکثر طول 3 بایت
مثال حقیقی : از -8388608 تا 8388607

INTEGER , INT حداکثر طول 4 بایت
مثال حقیقی : از -2147483648 تا 2147483647

BIGINT حداکثر طول 8 بایت
مثال حقیقی : از -9223372036854775808 تا 9223372036854775807

DECIMAL(M,D) , NUMERIC(M,D) متغییر است (در ادامه توضیح داده شده است )
مثال حقیقی : این نوع 2 ورودی میگیرد که شامل طول عدد از برای مثال
کد:
DECIMAL(10,1);
به معنای 1 تا 10 است


و اعداد اعشاری

FLOAT حداکثر طول 4 بایت
مانند نوع INT با این تفاوت که می تواند اعشاری باشد

DOUBLE حداکثر طول 8 بایت
مانند نوع BIGINT با این تفاوت که می تواند اعشاری باشد


نوع های TINYINT , MEDIUMINT , INT , BIGINT می توانند یک ورودی بگیرند
که حداکثر طول مقدارشان را مشخص می کند برای مثال
کد:
CREATE TABLE tb1(
col1 TINYINT(1),
col2 INT(20)
);


نوع های DECIMAL , DOUBLE , FOLAT می توانند 2 ورودی بگیرند که شامل محدوده شروع و پایان عدد است
برای مثال
کد:
CREATE TABLE tb1(
co1l DOUBLE(10.5,5.4)
co12 FOLAT(11,4),
col3 DECIMAL(20,4)
);


برای انواع اعداد 2 سویچ مهم وجود دارد

UNSIGNED : به معنای اینکه نمی تواند عدد منفی باشد در صورتی که این مقدار را وارد نکنید به صورت
پیشفرض SIGNED می شود . پس بهتر است در صورتی که با اعداد منفی سر و کار ندارین این سویچ را فعال کنید

ZEROFILL : با فعال کردن این سویچ . به اندازه طول مجاز . قبل از عدد صفر گذاشته می شود

----------------------------------------------------------------

مشخص کردن طول بسیار مهم است برای مثال برای ستونی که مربوط به سن است باید
کد:
CREATE TABLE tb1(
age TINYINT(2) UNSIGNED
);
حداکثر طول 2 باشد . تا بیشتر از 99 نشود
و همینطور که میبینید .سویچ UNSIGNED فعال است
تا منفی وارد نشود


نوع داده رشته

تعریف نوع و طول رشته نیز مانند . اعداد مهم است
در حال حاضر MySQL
از 14 نوع داده رشته پشتیبانی می کند

CHAR تا حداکثر 255 کارکتر .
بهتر است داده های زیر 4 کارکتر را به این نوع اختصاص دهید . فرق این نوع با VARCHAR
این است که VARCHAR وابسته به مقدار اطلاعاتی که در خود دارد طول خود را عوض می کند
اما CHAR دارای طول ثابت است
به این نوع داده حتما باید طول بدهید . برای مثال
کد:
CHAR(3)
مقدار CHAR در حقیقت برابر است با CHARACTER. NATIONAL CHAR در استاندارد SQL


BINARY : مانند CHAR ولی به صورت دودوی (باینری)

VARCHAR طول متغییر و قابل تغییر تا حداکثر 65,535 بایت
به این نوع داده حتما باید طول بدهید . برای مثال
کد:
VARCHAR(243)
این نوع داده دارای یک قابلیت خاص است و آن این است که . جدا از تعریف طول
بسته به مقداری که اطلاعات در آن قرار دارد فضا اشغال می کند

VARBINARY : مانند VARCHAR ولی به صورت دودوی (باینری)

TINYTEXT از 1 تا حداکثر 2 به توان 8 بایت
که می شود 255 بایت

TEXT از 2 تا حداکثر 2 به توان 16 بایت
که می شود 65,535 بایت

MEDIUMTEXT از 3 تا حداکثر 2 به توان 24 بایت
که می شود 16,777,215 بایت

LONGTEXT از 4 تا حداکثر 2 به توان 32 بایت
که می شود 4,294,967,295 بایت یا 4 گیگابایت

TINYBLOB مانند TINYTEX ولی به صورت باینری

BLOB مانند TEXT ولی به صورت باینری

MEDIUMBLOB مانند MEDIUMTEXT ولی به صورت باینری

LONGBLOB مانند LONGTEXT ولی به صورت باینری

ENUM یک یا دو بایت . حداکثر 65,535 مقدار

SET یک , 2 , 3 ,4 یا 8 بایت , حداکثر 64 عضو


شما می توانید با اضافه کردن BINARY . به نوع های CHAR, VARCHAR, TEXT, ENUM, SET آنها را تبدیل به
باینری کنید . برای مثال
کد:
CREATE TABLE tb1(
col TEXT BINARY
col2 ENUM(1,2,3) BINARY
);
  پاسخ
#2
سلام

این مقالبه خیلی خوبیه فقط کامل نیست توضیحات خوب توش نیومده اگه میشه طوری تکمیلش کنید که یه کسی که تازه میخواد شروع کنه هم یاد بگیره

مثلاً در مورد اعداد میشه بگید کدوم یکی هر کدوم در چه شرایطی میشه به کا برد؟
tinyitn در چه موقع هایی بهترینه و intد چه مواردی؟ کدوم یک بهترند؟

یا در بین رشته ها این binry چی هست؟ به چه دردی میخوره و سوالات مختلف دیگر......
در مورد این بایت و بیت ها هم که گفتید طرز استفادشون چطور بفهمیم این اطلاعاتی که میخواد وارد بشه درچه حدی هست که بهترین وبهینه ترین گزینه را انتخاب کنیم
با تشکر ممل آمریکایی
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان