آشنایی با SQL – بخش دوم – انواع داده

SQL

یکی از نخستین مطالبی که در رابطه با هر زبان برنامه نویسی می بایست با آن آشنا شد، انواع داده آن زبان است. SQL دارای انواع داده گوناگونی است که در ادامه با برخی از مهمترین و پرکاربردترین آن ها آشنا می شویم.

برای ذخیره مقادیری مانند نام، فامیل، آدرس و … (که شامل حروف الفبا می باشند)، از رشته استفاده می شود و برای ذخیره مقادیری همچون نمره یک درس، تعداد کالا و مشابه آن از نوع داده عددی بهره می بریم. یک نکته ظریف در این بحث وجود دارد که در ادامه با مثال توضیح می دهیم.

عبارت ‘۱۲۳’ در زبان SQL رشته ای است شامل سه حرف (character)، اما ۱۲۳ یک عدد می باشد. تفاوت در چیست؟

۵  +   ۶  =  ۱۱

‘۵’  +  ‘۶’  =  ’۵۶’

‘۵’   +   ۶   =   ?   (بحث کنید)

تا اینجا مشخص شد که انواع داده ای را می توان به حداقل دو دسته مهمتر تقسیم کرد: انواع داده رشته ای  و انواع داده عددی. البته انواع داده دیگری نیز وجود دارد که آنها را تحت عنوان سایر! دسته بندی می کنیم.

انواع داده رشته ای (string data types)

عبارتند از  (از چپ به راست بخوانید!) :    char , nchar, varchar , nvarchar , text , ntext

(char (n یعنی رشته ای به طول دقیقا n

(varchar (n یعنی رشته ای به طول حداکثر n

تفاوت char با varchar  را حتما فهمیده اید!

نکات:

۱-  چنانچه در نوع (char (n داده ای با طول کمتر از n قرار دهید فضای باقیمانده با کاراکتر فضای خالی (space) پر  می شود تا طول رشته دقیقا همان n باقی بماند. اما در varchar این گونه نیست.

۲- هر کاراکتر در char و varchar یک بایت از فضای حافظه را اشغال می کند.

۳- گرچه نوع char به نسبت نوع varchar ممکن است گاهی مقداری فضای حافظه را هدر دهد اما به دلیل طول ثابت، دقیق و از پیش تعیین شده، چنانچه به جا و درست به کار رود می تواند سرعت ذخیره و بازیابی را افزایش دهد.

تمرین : درباره تفاوتchar  با nchar تحقیق کنید.

تمرین : درباره محدودیت های انواع رشته ای تحقیق کنید.

 انواع داده عددی

tinyint , smallint , int , bigint

decimal, numeric , float , real

سایر انواع داده

bit , datetime , image , …