جداول و انواع داده ای در SQL Server

1395/10/15 فریبا جهاندیده 1701

با سلام خدمت دوستای عزیز و دوستدار  SQL SERVER وارد بحث جدیدی از مباحث این نرم افزار میشویم و  قبل از ورود به اسکریپ نویسی لازم دونستم با مفاهیم جدول و دیتا تایپ ها شمارا آشنا کنم

جداول در SQL Server

جدول به مجموعهای از سطرها و ستونها گفته میشود که هدف آن ذخیره سازی اطلاعات میباشد. هر جدول در sql اختصاص به ذخیره سازی یک موجودیت یا یک Entity دارد.زیرا دارای ویژگی است. هر ردیف از جدول یک نمونه یا Instance  از موجودیت و هر ستون یک خصوصیت یا property از آن موجودیت است. هر موجودیت باید در یک جدول ذخیره شود.

آشنایی با جداول و نحوه ی ایجاد آنها

معرفی انواع جداول:

1-جداول سیستمی:
این جداول حاوی اطلاعات سیستمی است و کاربر نمیتواند به صورت مستقیم اطلاعات جداول را تغییر دهد.از جمله جداول  سیستمی پر کاربرد میتوان به جداول Sysdatabases,Syscolumns,SysObject  اشاره کرد.در ابتدای نصب نرم افزار ساخته میشوند.
2-جداولی که توسط کاربر ایجاد میشود:
این دسته جداول توسط کاربر ایجاد و ذخیره میشود.
معرفی یک جدول:
به طور کلی جداول از لحاظ ساختاری به اجزای زیر تقسیم میشوند:

(Column) ستون:

بدنه ی اصلی جداول را تشکیل میدهند. هر ستون مشخص کننده یک خصوصیت از یک موجودیت که قرار است اطلاعات در آن جدول ذخیره شود.
 (Constraint) قیدها:
 قیدها به منظور تضمین صحت اطلاعات مورد پذیرش برای ستونها و جداول تعریف میشوند.

معرفی انواع ستون ها
جداول از دو نوع ستون زیر تشکیل میشوند:
   ستونهای عادی
این نوع ستونها حاوی داده (ِdata) به ازای هر ردیف میباشد که توسط کاربر یا سیستم وارد میگردد
ستونهای محاسباتی(Computed Column)
  این ستونها توسط کاربر وارد و یا ذخیره نمیشود.
مشخصات یه ستون به صورت زیر است:

 

آموزش ستون ها در SQL

همه جداول باید در یک schema  بنام Dbo    ذخیره شوند.یک شی امنیتی ست که میتوان روی آن مانوور داد.بطور مثال میتوانیم دسترسی یک اکانت را مشخص کرد.میتوانیم مشخص کنیم این اکانت به چه schema    هایی دسترسی پیدا کند.هر schema   خود شامل چندین جدول است
توسط schema   میتوان جداول را از هم متمایز کرد

آشنایی با دیتا تایپ ها در SQL Server

 

آشنایی با دیتا تایپ ها در SQL Server

 

آشنایی با دیتا تایپ ها در SQL Server

به ترتیب دیتا تایپ ها را بررسی میکنیم
•  Bigint قابلیت ذخیره سازی 8 بایت را داردو وقتی مقدار داده آن بیشتر از Int  است بکار میآید
•  Int اندازه آن 4 بایت است و مترادف Integer  است
•  Smallint قابلیت ذخیره دو بایت را دارد
•  Tinyint قابلیت ذخیره سازی تنها یک بایت
•  Decimal قابلیت ذخیره سازی داده های اعشاری
•  Numeric همانند Decimal  است
•  Money برای ذخیره سازی مقادیر پولی ست برای دخیره سازی واحد دلار بطور مثال 4 دلار و 45 سنت که واحد خرد است و برای ریال کارایی خاصی ندارد
•  SmallMoney قابلیت ذخیره سازی 4 بایت و برای هر ارزی بکار می آید
•  Bit مقادیر صحیح صفر یا یک میگیرد
•  Float :برای ذخیره سازی مقادیر اعشاری و 8 بایت است
•  Real :قابلیت ذخیره سازی 4 بایت و محدوده اعشاری را در بر میگیرد و دقت آن تا 38 رقم است
•  :DateTime فضای ذخیره سازی 8 بایت است و میتواند تاریخ ها و ساعات رو در خود جا بدهند
•  Date: برای ذخیره تاریخ بکار میرود فرمت آن به صورت YYYY-MM-DD است و 3 بایت حافظه میگیرد.
•  SmallDateTime: برای ذخیره تاریخ های 1900-01-01 تا2079-06-06و نیز ساعات 00:00:00 تا 23:59:59   با دقت یک دقیقه استفاده میشود
•  DateTimeoffSet : مقادیر01-01-0001 تا 31-12-9999 را برای تاریخ و 00:00:00  تا 23:59:59 را برای ساعت شامل میشود.
•  Time:  قابلیت 5 بایت حافظه را دارد. ستون های مختلف از نوع زمان را در خود ذخیره میکند
•  Char: دارای طول ثابت و n  بایت داده که میتواند از 1 تا 8000 باشد را نگهداری کند
•  Varchar: دارای طول متغیر بوده  و به اندازه تعداد کاراکترها فضا اشغال میکند اگر varchar(10) تعریف شود یعنی این داده 10 کاراکتر است و حداکثر هم 10 میباشد
•  Text: دارای طول متغیر بوده و از آن برای ذخیره سازی دادهایی با طول بیشتر از 8000کاراکتر استفاده میشود.
•  Nchar : برای ذخیره سازی به دو بایت احتیاج دارد و طول ثابتی دارد.اگر Nchar(20) تعریف کنید چنانچه 20 کاراکتر وارد نشود همیشه 20 کاراکتر را ذخیره میکند.
•  Nvarchar(): داده با طول متغیر وارد میشود داده وارد شده میتواند Null  یا صفر باشد
•  Ntext():دارای طول متغیر بوده و از آن برای ذخیره سازی دادهایی با طول بیشتر از 8000کاراکتر استفاده میشود.
•  Binary:این نوع داده از 1 تا 8000 بایت را در خود ذخیره میکند
•  Varbinary:دارای طول متغیر و مانند Binary  است
•  Image: تا حداکثر 2 گیگابایت را میتوان ذخیره کند و یک فرق اساسی با بقیه
انواع داده ها  دارد و آن اینکه بقیه داده ها در رکورد ثبت میشود اما در این نوع داده در یک Page  با یک Pointer  شانزده بایتی ذخیره میشود..


توجه:
بیاد داشته باشید در جدول دوم پیچیده ترین
نوع داده ای از نوع binary ,String  هستند و ساده ترین آن ها int, bigint  میباشند.
در نوع Decimal, numeric  هم باید تعداد ارقام صحیح و اعشاری مشخص شوند.
به نوع char string   هم باید طول داد.اگر از طول دیتا مطمعن نیستید بهتر است از varchar  استفاده کنید.
Unicode ها برای کاراکترهای خاص یا غیر استاندارد (از جمله زبان فارسی) استفاده میشود. با استفاده از اینها دیگرنیازی به Collation نیست. این کار به این طریق انجام میشود که در کنار هر کاراکتری که ذخیره میشود، Unicode آن نیز ذخیره میشود. با استفاده از اینها، کاربر اگر در کامپیوتر خود فونت فارسی نداشته باشد میتواند دیتا را بخواند.

Constraints یا همان قید


•  کلید اصلی(primary key) :به از هر ردیف باید یک مقدار یکتا داشته باشد.
•  کلید غیر تکراری: به از هر ردیف باید یک مقدار یکتا داشته باشد.
•  Check Constraint  قوانینی باید لحاظ گردد که تا اطلاعات بر اساس آن ذخیره گردد
•  کلید خارجی(Foreign Key)  برای ارتباط  اطلاعات بین جداول از آن استفاده میشود
•  Allow Null میتوانیم تصمیم بگیریم یه خصوصیت مقدار خالی یا پر بگیرد.

نکته: کلید اصلی و کلید غیر تکراری یکسان به نظر میرسند، اما با هم تفاوت مهمی دارند، کلید اصلی یک ستون غیر تکراری است  انجام میدهیم. اما کلید غیر تکراری برای SQL باید تعیین شود. در واقع لطفی است که ما در حق SQLکه مقادیر آن توسط جلوگیری از تکرار یک رکورد قرار داده میشود، برای مثال کد ملی. در واقع لطفی که ما در حق خودمان انجام میدهیم.

Primary Key یا کلید اصلی


ردیف یا رکوردهای یک جدول را از هم متمایز میکند.
نکات مهم در انتخاب این ستون
1.  بهتر است ترکیب چند ستون نباشد
2.  نوع داده آن ساده تر از ستون های دیگر باشد
3.  مقدار آن در طول زمان هرگز توسط شخص یا کاربری تغییر نکند
نکته مهم:
در تمامی جداول یک ستون بنام id  وجود دارد با خصوصیت Identity که بصورت اتوماتیک مقدار دهی میشود .
Check Constraint
جلوگیری از ثبت اطلاعات نادرست و نامعتبر
یک عبارت منطقی دارد که اگر درست باشد SQL SERVER  اجازه ثبت آن را میدهد اما اگر نباشد خطا میدهد.
دوستان محترم تا اینجا شما را با مفهوم جدول و انواع داده ای  آشنا کردم.در جلسه بعد دستورات SQL  را آموزش میدهم.

دانلود PDF قسمت پنجم آموزش SQL Server

کلمات کلیدی