📞 02166056460

انواع داده و متغیر در SQL

8 / 10
از 25 کاربر
بازگشت به لیست مقالات » | چهارشنبه 28 مرداد 1405 در ساعت 10 و 26 دقیقه | نظرات کاربران ( 14 )

انواع داده و متغیر در SQL

در این قسمت از آموزش sql ، انواع داده در اسکیوال را شرح میدهیم.

انواع داده رشته ای  در اسکیوال : Character strings 

این نوع فیلد برای نگهداری عبارات و یا حروف ASCII می‌باشد. در این نوع فیلد‌ها، برای نگهداری هر حرف، یک بایت اشغال می‌شود و لذا نیاز به Collation برای تعیین زبان اطلاعات می‌باشد.

نوع داده شرح
char(n) اطلاعات متنی با طول ثابت از ۱ تا حداکثر ۸۰۰۰ حرف را در خود ذخیره می‌کنند.
varchar(n) اطلاعات متنی با طول متغیر از ۱ تا حداکثر ۸۰۰۰ حرف را در خود ذخیره می‌کنند. فرق بین Char و VarChar در این است که در Char، طول رشته ثابت است. یعنی اگر یک فیلد را از نوع Char(20) معرفی کرده و در آن کلمه Orion را قرار دهیم، عین ۲۰ حرف استفاده خواهد شد. یعنی ۵ کاراکتر اول را کلمه مربوطه اشغال کرده و ۱۵ کاراکتر باقی‌مانده، Blank خواهند بود. اما در VarChar اینگونه نیست..
varchar(max) اطلاعات از ۱ تا ۲ مگا حرف ذخیره می‌شود و مکانیزم آن هم بصورت پوینتری می‌باشد.
text اطلاعات از ۱ تا ۲ مگا حرف ذخیره می‌شود. این نوع داده همانند Image و VarBinary(MAX) در خود رکورد ذخیره نمی‌شوند. بلکه توسط یک پوینتر به جای دیگری اشاره می‌کنند. این نوع داده در SQL 10 حذف شده و بجای آن‌ها از VarChar(MAX) استفاده می‌شود..

انواع داده یونیکد  در اسکیوال : Unicode types

این نوع فیلد‌ها برای نگهداری متون Unicode بوده و برای نگهداری هر حرف، از دو بایت استفاده می‌شود. پس مسلماً نسبت به نوع داده‌های کاراکتری، حافظه بیشتری را به خود اختصاص می‌دهد و در ضمن کمی هم کندتر است. این نوع فیلد‌ها، احتیاج به Collation ندارند.

نوع داده شرح
nchar(n) در این نوع داده، اطلاعات از ۱ تا حداکثر ۴۰۰۰ حرف با طول ثابت ذخیره می‌شود.
nvarchar(n) در این نوع داده، اطلاعات از ۱ تا حداکثر ۴۰۰۰ بایت با طول متغیر ذخیره می‌شود.
nvarchar(max) در این نوع داده از ۱ تا ۱ مگا حرف ذخیره می‌شود. مکانیزم آن هم بصورت Pointer می‌باشد.
ntext در این نوع داده، از ۱ تا ۱ مگا حرف ذخیره می‌شود. مکانیزم آن هم بصورت Pointer .

انواع داده باینری  در اسکیوال : Binary types

این نوع فیلد‌ها برای نگهداری اطلاعات بصورت بایناری مانند تصاویر مناسب هستند

نوع داده شرح
bit یک فیلد دو بیتی است و می‌تواند ۰ و ۱ و Null را ذخیره کند.کاربرد آن در زمان‌هایی است که دو حالت وجود داشته باشد. مانند جنسیت زن و مرد.
binary(n) این نوع فیلد‌ها، از ۱ تا ۸۰۰۰ بایت را در خود جای می‌دهند.
varbinary(n) این نوع فیلد‌ها هم از ۱ تا ۸۰۰۰ بایت را در خود جای می‌دهند. (متغیر).
varbinary(max) این نوع Datatype در SQL 2005 معرفی شده و تقریباً همانند داده‌های Image هستند.
image این نوع فیلد‌ها از ۱ تا حداکثر ۲ گیگابایت را می‌توانند ذخیره کنند. فرق این نوع داده‌ها با دو نوع قبلی این است که در دو نوع قبلی، اطلاعات در خود رکورد ثبت می‌شوند ولی در این نوع داده‌ها، اطلاعات در یک Page ذخیره می‌شود و به جایش در رکورد، یک پوینتر ۱۶ بایتی ذخیره می‌شود. این نوع فیلد‌ها در SQL 10 حذف شده و به جایش باید از VarBinary استفاده کرد.

انواع داده عددی  در اس کیو ال : Number types

این نوع فیلد برای نگهداری اعداد صحیح و بدون اعشار استفاده می‌گردد و دارای ۴ نوع به شرح زیر است. در ضمن این نوع فیلد‌ها رتبه یک سرعت در نوع فیلد‌های عددی را دارد.

نوع داده شرح
tinyint یک بایت را اشغال می‌کند و می‌تواند از ۰ تا ۲۵۵ را در خود ذخیره کند.
smallint یک عدد دو بایتی است و می‌تواند از ۳۲۷۶۷ منفی تا ۳۲۷۶۷ مثبت را در خود ذخیره کند.
int یک عدد چهار بایتی است که می‌تواند اعداد بین مثبت و منفی ۲ میلیارد را در خود ذخیره کند.
bigint یک عدد ۸ بایتی است که می‌تواند اعداد بین مثبت و منفی ۴ میلیارد را در خود ذخیره کند.
decimal(p,s) این نوع فیلد برای نگهداری اعداد اعشاری با تعداد اعشار مشخص استفاده می‌گردد. این نوع فیلد‌ها بسیار کند بوده و استفاده از آنها توصیه نمی‌گردد. که در آن Precision به معنای تعداد کل رقم‌های عدد و Scale تعداد ارقام اعشار را مشخص می‌کند. مثلاً اگر فیلدری بصورت Deciaml(6,2) تعریف شود، حداکثر آن برابر ۹۹۹۹٫۹۹ می‌باشد..
numeric(p,s) .
smallmoney یک عدد ۴ بایتی است که می‌تواند ۶ رقم صحیح و ۴ رقم اعشار را در خود ذخیره کند..
money یک عدد ۸ بایتی است که می‌تواند ۱۵ رقم صحیح و ۴ رقم اعشار را در خود ذخیره کند..
float(n) یک عدد ۸ بایتی که اعداد بصورت توانی از ۱۰ نگهداری می‌شوند. .
real یک عدد ۴ بایتی است که اعداد بصورت توانی از ۱۰ نگهداری می‌شوند..

انواع داده تاریخ  در اس کیوال  :Date types

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

نوع داده شرح
datetime این نوع فیلد، ۸ بایتی است و از سال ۱۷۰۰ تا ۹۹۹۹ را با دقت هزارم ثانیه ذخیره می‌کند..
datetime2 .
smalldatetime این نوع فیلد، ۴ بایتی است و از سال ۱۹۰۰ تا ۲۰۷۹ را با دقت هزارم ثانیه ذخیره می‌کند..
date این نوع فیلد‌ها برای نگهداری تاریخ میلادی استفاده می‌شود.
time این نوع فیلد‌ها برای نگهداری ساعت استفاده می‌شود.
datetimeoffset  
timestamp  

انواع دیگر داده ها  در sql: Other data types

 

نوع داده شرح
sql_variant این نوع فیلد برای نگهداری انواع داده استفاده می‌شود و نوع آن با توجه به اولین مقداری که در آن قرار می‌گیرد تعیین خواهد شد. چون نوع و حجم فیلد مشخص نیست، لذا تنها یک اشاره‌گر ۱۶ بایتی در آن قرار گرفته و داده اصلی در فایل جداگانه نگهداری می‌شود. استفاده از این نوع فیلد، توصیه نمی‌گردد..
uniqueidentifier .این فیلد ۱۶ بایتی، به ما کدی Unique یا تک می‌دهد که به اصطلاح GUID می‌گویند. یکی از کاربردهای آن در Replication است.
xml این فیلد بیشتر برای انتقال اطلاعات و دستورات تحت web استفاده می‌شود و شامل انواع MetaData های مختلف است.
cursor این فیلد مربوط به کنترل Cursor است .
table .
ارسال نظر و نظرات ثبت شده
:
54 2
باسپاس از مطلب خیلی خوبتون
س :
36 2
بسیار عالی
نام :
37 2
اقا دمتون گرم خیلی جامع و بی نظیر و بدرد بخور منبع جامع و عالی تشکر دستتون درد نکنه :)
saeed :
17 2
سلام، نوع داده مناسب برای قیمت ( ریال یا تومان ) کدوم بهتره ؟ ممنون میشم، جواب رو ایمیل کنید. با تشکر.
مدیریت : با سلام. decimal
حميد :
15 1
مطالبي كه تو سايت قرار داديد فوق العاده است و راحت ميشه اونها رو درك كرد، ممنون از شما
f :
20 1
باسلام من هیچ چیزی راجع به sglنمیدونم ایا میشه از این طریق یاد گرفت
شاهین :
25 1
سلام / برای ذخیره سازی کد اقتصادی از چه نوع متغییری استفاده کنیم بهتره ؟ یا سپاس
زانیار نادم :
12 0
مرسی واقعا عالی
مبینا :
28 0
سلام و مرسی از وبلاگ خوبتون منسه سوال داشتم از خدمتتون میخواستم بدونم علت گذاشتن دو داده decimal وnumeric به خاطرچی هست؟ اگه تفاوتی ندارن پس چرا دو تا نوع داده گذاشتن ممنون میشم هر چه سریع تر پاسخ بدید
y.alizadeh :
8 0
با تشکر از مطلب خوبتون. یک نکته: bigint می‌تواند اعداد بین مثبت و منفی ۴ میلیارد میلیارد (یعنی ۴ در ده به توان هجده) را در خود ذخیره کند.
هادی :
6 0
خیلی ممنونم.استفاده کردیم
:
1 0
دستتون درد نکنه با ایت مطالب خوبتون و جمع بندی شده
:
0 0
خیلی ممنون
آتش افروز :
1 0
سپاس از مطلب بسیار مفید و کاملتون البته محدوده bigint تا مثبت و منفی 9,223,372,036,854,775,807 هست که به مراتب بزرگتر از 4 میلیارد میباشد.

سایر مقالات

8 / 10
از 25 کاربر
انواع داده و متغیر در SQL

انواع داده و متغیر در SQL

انواع داده و متغیر در SQL در این قسمت از آموزش sql ، انواع داده در اسکیوال را شرح می ...
دستورات DML و DDL در اس کیو ال

دستورات DML و DDL در اس کیو ال

دستورات DML و DDL در اس کیو ال SQL به دو قسمت تقسیم میشود : زبان دستکاری داده ها DML (Data Manip ...
استفاده از SQL در طراحی سایت

استفاده از SQL در طراحی سایت

استفاده از SQL در طراحی سایت برای ایجاد یک وب سایت داینامیک که داده ها و اطلاعات را از یک پایگاه دا ...
با SQL چه کار هایی میتوان انجام داد ؟

با SQL چه کار هایی میتوان انجام داد ؟

با SQL چه کار هایی میتوان انجام داد ؟  SQL  این توانایی را  دارد که یک کوئری (Quer ...
تاریخچه اس کیو ال SQL

تاریخچه اس کیو ال SQL

  تاریخچه اس کیو ال (SQL) منشا اصلی سی‌کوال به مقالهٔ سال ۱۹۷۰ ادگار کاد تحت عنوان &laqu ...
SQL چیست ؟ (اس کیو ال چیست)

SQL چیست ؟ (اس کیو ال چیست)

  SQL چیست ؟ (اس کیو ال چیست) در مدل رابطه‌ای داده‌ها، زبان ساختارمند پرسش‌ها ...
⏳ در حال پردازش...
لطفا صبر کنید