انوع داده در SQL
انواع داده ها (Data type) و دامنه آن ها در Microsoft Access ,MySQL و SQL Server
انواع داده ها در Microsoft Access
نوع داده | توضیحات | فضا |
---|---|---|
Text |
متن یا ترکیب متن و اعداد، حداکثر 255 کاراکتر |
|
Memo |
متن های طولانی، حدکثر 65,536 کاراکتر توجه: فیلدهای از نوع Memo را نمی توان مرتب (sort) کرد، اما قابل جستجو هستند |
|
Byte |
اجازه می دهد هرعددی از 0 تا 255 را وارد کرد |
1 byte |
Integer |
اجازه می دهد هرعددی بین 32767 تا 32768- وارد شود |
2 bytes |
Long |
اجازه می دهد هرعددی بین 2,147,483,647 تا 2,147,483,648- وارد شود |
4 bytes |
Single |
اعداد اعشاری با دقت واحد |
4 bytes |
Double |
اعداد اعشاری با دقت مضاعف |
8 bytes |
Currency |
از این نوع داده ها برای نگهداری مقادیر پولی یا ارزی استفاده می شود. اکسس تمامی مقادیر پولی/ارزی را با ۱۵ رقم در سمت چپ و چهار رقم در سمت راست نقطه اعشار نگه می دارد, لذا می توانید اعداد با دقت بالا را در فیلدهای پولی نگه دارید |
8 bytes |
AutoNumber |
وقتی که فیلدی را را از نوع داده Auto number تعریف می کنید، با هر رکوردی که به جدول اضافه شود اکسس به طور خودکار عددی را در این فیلد نگه می دارد |
4 bytes |
Date/Time |
برای نگهداری داده های از نوع تاریخ و زمان استفاده می شود |
8 bytes |
Yes/No |
فیلدی که از نوع Yes/No تعریف می شود به ازای Yes عدد ۱- و به ازای No عدد ۰ را دارا می شود. با استفاده از بخش Filed Properties در پنجره مذکور می توانید بسته به دلیل استفاده از فیلد, یکی از سه حالت Yes/No, True/False (درست یا غلط) یا On/Off (روشن و خاموش) را به کار ببرید. |
1 bit |
Ole Object |
OLE مخفف Object Linking and Embedding (اتصال و نشاندن شی) است. |
up to 1GB |
Hyperlink |
شامل لینک هایی به دیگر فایل ها یا صفحات وب است |
|
Lookup Wizard |
هنگام تعریف این نوع داده، یک لیست از گزینه های انتخابی را مشخص می کنید و هنگام ورود اطلاعات یک لیست کشویی نمایش داده خواهد شد |
4 bytes |
انواع داده ها در MySQL
در MySQL سه نوع اصلی داده وجود دارد: نوع متنی، نوع عددی و نوع تارخ/زمان
داده های متنی
نوع داده | توضیحات |
---|---|
CHAR(size) |
رشته ای با طول ثابت (می تواند شامل حروف، اعداد و کاراکترهای خاص باشد) |
VARCHAR(size) |
رشته ای با طول متغیر (می تواند شامل حروف، اعداد و کاراکترهای خاص باشد) حداکثر طول رشته در پرانتز مشخص می شود و حداکثر 255 کاراکتر است توجه: اگر رشته ای با طول بیش از 255 کاراکتر را در آن قرار دهید، به نوع TEXT تبدیل خواهد شد |
TINYTEXT |
رشته ای با طول حداکثر 255 کاراکتر |
TEXT |
رشته ای با طول حداکثر 65,535 کاراکتر |
BLOB |
داده باینتری با طول حداکثر 65,535 بایت (Binary Large OBject) |
MEDIUMTEXT |
رشته ای با طول حداکثر 16,777,215 کاراکتر |
MEDIUMBLOB |
داده باینتری با طول حداکثر 16,777,215 بایت (Binary Large OBject) |
LONGTEXT |
رشته ای با طول حداکثر 4,294,967,295 کاراکتر |
LONGBLOB |
داده باینتری با طول حداکثر 4,294,967,295 بایت (Binary Large OBject) |
ENUM(x,y,z,etc.) |
فقط یکی از مقادیری که در پرانتز لیست شده است، اجازه ورود دارد. می توانید حداکثر 65535 کاراکتر در ENUM لیست کنید اگر مقداری که در لیست وجود ندارد، درج شود، یک blank یا فضای خالی بجای آن در نظر گرفته می شود |
SET |
مانند ENUM است با این تفاوت که، حداکثر 64 آیتم می توانید لیست کنید و همچنین بیشتر از یک انتخاب دارید |
داده های عددی
نوع داده | توضیحات | فضا |
---|---|---|
TINYINT(size) |
محدوده اعداد مجاز به صورت علامت دار: 128- تا 127 |
1 byte |
SMALLINT(size) |
محدوده اعداد مجاز به صورت علامت دار: 32768- تا 32767 |
2 byte |
MEDIUMINT(size) |
محدوده اعداد مجاز به صورت علامت دار: 8388608- تا 8388607 |
3 byte |
INT(size) |
محدوده اعداد مجاز به صورت علامت دار: 2147483648- تا 2147483647 |
4 byte |
BIGINT(size) |
محدوده اعداد مجاز به صورت علامت دار: 9223372036854775808- تا 9223372036854775807 |
8 byte |
FLOAT(size,d) |
از این دو نوع داده برای ذخیره اعداد اعشاری با ممیز شناور استفاده می شود |
4 یا 8 byte |
DOUBLE(size,d) |
از این دو نوع داده برای ذخیره اعداد اعشاری با ممیز شناور استفاده می شود پارامتر size حداکثر تعداد ارقام و پارمتر d حداکثر تعداد ارقام سمت راست ممیز اعشار را مشخص می کند |
8 byte |
DECIMAL(size,d) |
از این نوع داده برای نگهداری اعداد اعشاری با ممیز ثابت استفاده می شود. این نوع داده برای هر ۹ رقم ، ۴ بایت فضا اشغال می کند |
- اگر هنگام تعریف فیلد از کلمه کلیدی UNSIGNED استفاده کنیم میتوانیم مقادیر بدون علامت را درون فیلد بریزیم، ولی بطور پشفرض فیلد ها مقادیر علامت دار (SIGNED) را می پذیرند.
- میتوان تعداد ارقامی که به نوع دادهٔ Integer نسبت داده می شود را محدود نمود، به عنوان مثال: (INT(5 یعنی فیلدی از جنس INT که 5 رقم را در خود جای می دهد.
- وقتی از کلمه کلیدی ZEROFILL استفاده می کنیم، اگر مقدار نسبت داده شده به فیلد از تعداد ارقام مشخص شده کمتر باشد، با اضافه کردن 0 به سمت چپ عدد، آن مقدار را هم اندازه تعداد ارقام مشخص شده می کند.
داده های تاریخ/زمان
نوع داده | توضیحات | فضا |
---|---|---|
DATE() |
این نوع داده برای نگهداری تاریخ (بدون ساعت)، با غالب 'YYYY-MM-DD' استفاده می شود |
3 byte |
DATETIME() |
این نوع داده برای نگهداری زمان (هم تاریخ و هم ساعت بصورت تفکیک شده و بدون توجه به منطقه زمانی)، با غالب 'YYYY-MM-DD HH:MM:SS' استفاده می شود |
8 byte |
TIMESTAMP() |
هر زمان سطری ایجاد یا تغییر داده می شود، یک عدد یکتا بصورت اتوکاتیک در این فیلد ذخیره می شود. داده timestamp وابسته به ساعت داخلی سیستم می باشد و با زمان واقعی مطابقت ندارد. هر جدولی ممکن است یک timestamp متفاوت داشته باشد. به عبارت دیگر در این فیلد ۸ بایتی، تایم لحظهای اجرای دستور نگهداری میشود و کاربرد آن کنترل بروزرسانی همزمان (Concurrency) اطلاعات توسط چند کاربر است. البته در تعداد رکوردهای پایین به کار نمیآید و بیشتر زمانی مورد نیاز است که تعداد رکوردها خیلی زیاد باشد مثلاً ۱۰۰ میلیون رکورد! توجه: محدوده زمانی بصورت '00:00:00 01-01-1000' UTC تا '23:59:59 31-12-9999' UTC می باشد. یعنی هنگام ذخیره سازی زمان ، آن را از زمان محلی (Time Zone) سیستم به زمان UTC (گیرینویچ) تبدیل می کند و هنگام بازیابی ، آنرا از UTC به زمان محلی سیستم تبدیل می کند. |
4 byte |
TIME() |
این نوع داده برای نگهداری زمان (فقط ساعت ، بدون تاریخ)، با غالب 'HH:MM:SS' یا 'HHH:MM:SS' استفاده می شود |
3 byte |
YEAR() |
ذخیره سال به فرمت: دو رقمی یا چهار رقمی |
1 byte |
انواع داده ها در SQL Server
داده های متنی
نوع داده | توضیحات | فضا |
---|---|---|
char(n) |
رشته ای با طول ثابت، حداکثر 8000 کاراکتر n می تواند عددی بین 1 تا 8000 باشد توجه: اگر 5=n باشد و 2 کاراکتر وارد کنید، 3 کاراکتر باقی مانده با Space پر می شود مزیت این نوع داده در جستجوی سریع آن است |
n |
varchar(n) |
رشته ای با طول متغیر، حداکثر 8000 کاراکتر توجه: اگر 5=n باشد و 2 کاراکتر وارد کنید، فقط به اندازه 2 کاراکتر فضا اشغال می شود (3 کاراکتر باقی مانده در نظر گرفته نمی شود) مزیت این نوع داده در میزان فضای استفاده شده است |
|
varchar(max) |
رشته ای با طول متغیر، حداکثر 1,073,741,824 کاراکتر به جای n در مورد قبلی می توان از عبارت max استفاده کرد تا حداکثر فضای امکان پذیر در دسترس باشد |
|
text |
رشته کاراکتر با طول متغیر، حداکثر 2GB داده متنی |
داده های متنی Unicode
نوع داده | توضیحات | فضا |
---|---|---|
nchar(n) |
داده Unicode با طول ثابت، حداکثر 4,000 کاراکتر میزان مصرف این نوع داده دو بایت به ازای هر کاراکتر است. بخاطر این موضوع، n باید بین یک تا چهار هزار تعیین شود |
|
nvarchar(n) |
داده Unicode با طول متغیر، حداکثر 4,000 کاراکتر |
|
nvarchar(max) |
داده Unicode با طول متغیر، حداکثر 536,870,912 کاراکتر |
|
ntext |
داده Unicode با طول متغیر، حداکثر 2GB داده متنی |
داده های Binary
نوع داده | توضیحات | فضا |
---|---|---|
bit |
0، 1 یا NULL |
|
binary(n) |
داده باینری با طول ثابت حداکثر 8000 بایت |
|
varbinary(n) |
داده باینری با طول متغیر حداکثر 8000 بایت |
|
varbinary(max) |
داده باینری با طول متغیر حداکثر 2GB |
|
image |
داده باینری با طول متغیر حداکثر 2GB |
داده های عددی
نوع داده | توضیحات | فضا |
---|---|---|
tinyint |
اعداد صحیح بین 0 تا 255 |
1 byte |
smallint |
اعداد صحیح بین 32,767 تا 32,768- |
2 bytes |
int |
اعداد صحیح بین 2,147,483,647 تا 2,147,483,648 - |
4 bytes |
bigint |
اعداد صحیح بین 9,223,372,036,854,775,807 تا 9,223,372,036,854,775,808- که معادل از منفی 263 تا 263 منهای یک است |
8 bytes |
decimal(p,s) |
اعداد با مقیاس (scale) و دقت (precision) ثابت |
5-17 bytes |
numeric(p,s) |
اعداد با مقیاس (scale) و دقت (precision) ثابت |
5-17 bytes |
smallmoney |
داده های ارزی بین 214,748.3648- تا 214,748.3647 |
4 bytes |
money |
داده های ارزی بین 922,337,203,685,477.5808- تا 922,337,203,685,477.5807 |
8 bytes |
float(n) |
برای نگهداری اعداد غیر صحیح با تعداد ارقام اعشار متغیر و یا تخمـینـی استفاده میشود (from -1.79E + 308 to 1.79E + 308) |
4 یا 8 bytes |
real |
برای نگهداری اعداد غیر صحیح با تعداد ارقام اعشار متغیر و یا تخمـینـی استفاده میشود (from -3.40E + 38 to 3.40E + 38) |
4 bytes |
داده های تاریخ و زمان
این نوع فیلدها برای نگهداری تاریخ میلادی و ساعت استفاده میشود و برای تاریخ شمسی کاربردی ندارد.
نوع داده | توضیحات | فضا |
---|---|---|
datetime |
از تاریخ اول January سال 1753 تا سی ویکم December سال 9999 با دقت 3.33 میلی ثانیه |
8 bytes |
datetime2 |
از تاریخ اول January سال 0001 (01/01/0001) تا سی ویکم December سال 9999 (31/12/9999) با دقت 100 نانو ثانیه |
6-8 bytes |
smalldatetime |
از تاریخ اول January سال 1900 تا ششم June سال 2079 با دقت یک دقیقه |
4 bytes |
date |
فقط تاریخ را ذخیره می کند. از تاریخ اول January سال 0001 (01/01/0001) تا سی ویکم December سال 9999(31/12/9999) |
3 bytes |
time |
فقط زمان را ذخیره می کند با دقت 100 نانو ثانیه |
3-5 bytes |
datetimeoffset |
مشابه datetime2 می باشد به علاوه timeoffset را ذخیره می کند |
8-10 bytes |
timestamp |
هر زمان سطری ایجاد یا تغییر داده می شود، یک عدد یکتا ذخیره می شود. داده timestamp وابسته به ساعت داخلی سیستم می باشد و با زمان واقعی مطابقت ندارد. هر جدولی ممکن است یک timestamp متفاوت داشته باشد. به عبارت دیگر در این فیلد ۸ بایتی، تایم لحظهای اجرای دستور نگهداری میشود و کاربرد آن کنترل بروزرسانی همزمان (Concurrency) اطلاعات توسط چند کاربر است. البته در تعداد رکوردهای پایین به کار نمیآید و بیشتر زمانی مورد نیاز است که تعداد رکوردها خیلی زیاد باشد مثلاً ۱۰۰ میلیون رکورد! |
انواع داده ای دیگر
نوع داده | توضیحات |
---|---|
sql_variant |
این نوع فیلد، به جز داده های text, ntext, timestamp برای نگهداری انواع داده های دیگر استفاده میشود و نوع آن با توجه به اولین مقداری که در آن قرار میگیرد تعیین خواهد شد. (حداکثر 8000 بایت) چون نوع و حجم فیلد مشخص نیست، لذا تنها یک اشارهگر ۱۶ بایتی در آن قرار گرفته و داده اصلی در فایل جداگانه نگهداری میشود. استفاده از این نوع فیلد، توصیه نمیگردد. |
uniqueidentifier |
این فیلد ۱۶ بایتی، به ما کدی Unique یا یکتا میدهد که به اصطلاح GUID میگویند. یکی از کاربردهای آن در Replication است. |
xml |
داده هایی با فرمت XML را ذخیره می کند. (حداکثر 2GB) این فیلد بیشتر برای انتقال اطلاعات و دستورات تحت web استفاده میشود و شامل انواع MetaData های مختلف است. این فیلد در SQL 2005 معرفی گردید. |
cursor |
این فیلد مربوط به كنترل Cursor است و مرجع یک Cursor در آن ذخیره می شود |
table |
نتیجه یک کوری را برای عملیاتهای بعدی ذخیره می کند. |
برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه داده SQLServer کلیک کنید.
- نوشته شده توسط مهندس تمیزی
- بازدید: 43903