آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش فيلدهای null در SQL SERVER

دوره های مرتبط با این مقاله

آموزش فيلدهای null در SQL SERVER

هنگام وارد كردن اطلاعات كاربران database با فيلدهايي null از اطلاعات مواجه خواهند شد. گاهي اوقات اطلاعات يك فيلد به دلايلي در دسترس نيست. به طور مثال فيلد MI يا فيلدهايي كه اطلاعات آنها تهيه نشده است , از اين دست هستند. اين وضعيت ميتواند براي هر فيلد اتفاق بيفتد. بنابراين يافتن راه حل الزامي به نظر ميرسد.
هرگاه يك فيلد خنثي از اطلاعات باشد آن را يك فيلد خالي (null) ميناميم


  1. null بودن يك فيلد به معناي صفر بودن آن نيست. عدد 0 خود يك مقدار محسوب ميشود
  2. null بودن يك فيلد به معناي خالي بودن آن نيست. فيلد خالي به اين معناست كه كاربر ميتواند اطلاعات آن را حذف كرده يا ود فيلد اطلاعات وارد شده را قبول نميكند, اما يك فيلد خالي ميتواند شامل مقاديري باشد.

يك فيلد خنثي فيلدي است كه راهي براي شناسايي مقدار آن وجود نداشته باشد. ( در واقعيت كامپيوتر فرآيندي دارد كه ميتواند مقدار يك فيلد را تايي كند) يا مقدار آن ناشناخته است. به سادگي متوجه خواهيد شد كه داشتن يك فيلد null در جدول نشانه ي خوبي نيست. به عنوان پيمانكار database اين مسوليت شماست كه كه قطعيت مقدار هر فيلد را بدانيد.
هنگامي به يك فيلد ارجاع داده ميشود كه كاربر بايد اطلاعات آن را وارد كرده و سراغ ركورد بعدي برود. به عبارت ديگر هنگام وارد كردن اطلاعات يك فيلد نميتواند خالي از داده بماند.
بحث را با database دانشگاه ادامه ميدهيم. براي اداره كردن پخش هاي مختلف دانشگاه يك تيم مديريت شامل ريس دانشگاه معاونان و ديگر كاركنان دارد
در اين شيوه ي جديد پايگاه داده ,university3, ما يك جدول براي كارمندان ايجاد ميكنيم. جدول در الگوي آكا دميك ذخيره خواهد شد.


تمرين : آشنايي با فيلدهاي خنثي

  1. وارد كامپيوتر شويد
  2. Microsoft sql server را اجرا كرده و connect شويد
  3. در object explorer بر رويnode database كليك راست كرده و روي new database كليك كنيد.
  4. اسم database را به university3 تغيير دهيد
  5. Ok كنيد
  6. در object explorer , university3 node و security node را گسترش دهيد
  7. بر روي schema كليك راست كرده و بر روي new schema كليك كنيد
  8. اسم را به Academics تغيير دهيد
  9. Ok كنيد
  10. زير university3 بر روي table كليك راست كرده و روي New Table كليك كنيد
  11. زمان نمايش جدول در پنجره ي مشخصات بر روي schema كليك كرده سپس روي combo box رفته و Academics را انتخاب كنيد.
  12. ستونهاي زير را براي جدول بسازيد.

وارد كردن ستونهاي null و غير null به صورت ويژوال

براي حل مشكل فيلدهاي null SQL دو راه حل پيشنهاد ميكند: اجازه دادن يا ندادن وجود داده هاي خنثي در فيلد
براي اطمينان حاصل كردن از ا قطعيت كاربر در مورد فيلدها و هنگام تشكيل جدول به صورت ويژوال :


  • در قسمت الاي جدول تيك قسمت allow nulls را برداريد. از طرف ديگر , اگر مقدار يك فيلد مهم نباشد , مثلا اگر نميخواهيد آن مقدار را رد عمليات هاي جبري دخالت دهيد تيك را رنداريد
  • در قسمت بالاي جدول روي ستون كليك كنيد. در قسمت پاييني جددول در قسمت allow nulls combo box گزينه ي yes را انتخاب كنيد

تمرين : تعيين كردن وضعيت يك ستون

  1. در قسمت بالا روي EmployeeNumber كليك كرده و تيك قسمت Allow Nulls check box را برداريد
  2. جدول را به صورت زير تشكيل دهيد.
 
 

مشخص كردن وضعيت يك ستون با استفاده از برنامه نويسي

اگر از SQL براي تشكيل يك جدول استفاده ميكنيد, براي مشخص كردن اجازه راي مقادير حنثي كلمه ي NULL تايپ كنيد.(حروف يزرگ و كوچك تفاوتي ندارند) براي مشخص كردن اينكه نياز يك ستون به مقادير خود عبارت NOT NULL را تايپ كنيد. چنانچه هر يك از اين دو كلمه را تايپ نكنيد خود ستون به صورت پيش فرض NULL را انتخاب ميكند. مثال : اگر جدول از قبل تشكيل شده و شامل مقاديري باشد شما نميتوانيد تنظيمات اجازه را در ستون هاي خالي از مقدار فعال كنيد.
بعد از مشخص كردن نوع يك ستون , اگر كاربر سعي در تشكيل يك ركورد داشته باشد ولي نخواهد كه براي ركورد مقاديري ايجاد كند يك پيام خطا نماياتن خواهد شد.


وارد كردن اطلاعات ستون null

چنانچه مشخص كنيد كه يك ستون اجازه استفاده از null را زمان وارد كردن اطلاعات دارد , در صورت نداشتن مقادير ميتوانيد مكان آن را خالي بگذاريد :
هنگام وارد كردن اطلاعات , چنانچه ستون اجازه استفاده از null داشته باشد و شما براي ستون مقداري نداشته باشيد بهتر است كه ليستي از ستونها ( مثل مثال بالا) تهيه كنيد. براي ستون هايي كه در ليست گنجانده نميشوند , موتور DATABASE به صورت خودكار مقدار آنها را به NULL تغيير خواهد داد. روش ديگر اين كه Transact –SQL به شما اجازه ي نگهداري ليست ستونها يا ليست ستونهاي شامل null را ميدهد.بنابراين در مكان نگهداري ستون مقدار آن را NULL مشخص كنيد.


مقدار پيش فرض يك ستون

گاهي اوقات بعضي از ستونها ممكن است مقادير را نگهداري كنند اگر چه تعدادي از كمي از انها متفاوتند.
به طور مثال اگر يك مدرسه از database براي ثبت نام دانش آموزانش استفاده كند , احتمالا بيشتر آنها از يك استان خواهند بود. در اين مواقع شما ميتوانيد به كاربر اين امكان را بدهيد كه از يك مقدار براي ستون استفاده كند. بنابراين كاربر براي همه ي ستون از يك مقداري استفاده ميكند مگر موارد كمي كه ممكن است مقدار فرق داشته باشد. براي اين كار شما مقدار پيش فرض يك ستون را ايجاد ميكنيد


ايجاد مقدار پيش فرض به صورت ويژوال

شما ميتوانيد مقدار پيش فرض يك ستون را هنگام تشكيل جدول ايجاد كنيد. براي اين منظور در قسمت بالاي جدول كليك كرده و سپس روي column كليك كنيد. در قسمت پايين روي default value يا binding كليك كرده و مقدار دلئاه خود را تايپ كنيد.
موقع مشخص كردن مقدار پيش فرض ابتدا بايد از قوانيني پيروي كنيد كه به datatype ستون بستگي دارند


  • براي عبارات متني ( char , varchar , varchar (max) ) و مشتقات آنها مقدار را در داخل ( ' ) تايپ كنيد
  • براي عبارات عددي مقدار را به صورت عدد وارد كرده ولي از قوانين datatype پيروي كنيد

قوانين datatype را تما رعايت كنيد. براي مثال اگر مقداري بيشتر از 255 براي datatype
Tinyint تايپ كنيد با خطا مواجه خواهيد شد.
Bit : براي عبارات غلط عدد 0 و براي عبارات درست ر عدد دلخواه


تمرين : اختصاص يك مقدار پيش فرض به ستون

  1. در قسمت بالا روي password كليك كنيد
  2. در قسمت پاين روي defult value يا binding كليك كنيد.
  3. N'Password1' تايپ كنيد
  4. جدول را ذخيره كنيد.

ايجاد يك مقدار پيش فرض با استفاده از برنامه نويسي


براي مشخص كردن يك مقدار پيش فرض در SQL ,هنگام تشكيل يك ستون بعد از تعيين كردن اطلاعات آن كلمه ي DEFAULT را تايپ كرده و بعد از آن يك فاصله قرار داده و مقدار دلخواه را تايپ كنيد.


مثال:

زمان وارد كردن داد ها در جدول , لزومي ندارد كه كاربر مقادير ستون هاي شامل پيشفرض را تهيه كند. اگر كاربر مقادبر را در دسترس نداشته باشد , زمان ذخيره ركورد مقادير پيش فرض استفاده خواهد شد.
اگر كاربر در ستون شامل مقدار پيش فرض عبارتي را وارد كرده و سپس آن را حذف نمايد , فيلد ديگر مقدار پيش فرض را نشان نداده و خالي خواهد ماند


اجبار استفاده از عبارت پيش فرض در وادر كردن داده ها

موقع وارد كردن اطلاعات با استفاده از برنامه نويسي , چنانچه ستون شامل مقدار پيش فرض را ليست نكنيد , مقدار پيش فرض به ستون اختصاص داده خواهد شد. ا زطرفي اگر ستون را با استفاده از عبارت INSERT به ليست اضافه كنيد , بياد مقداري براي آن فراهم كنيد يا آن را خالي بگذاريد. خوشبختانه Transact-SQL اين كار را ممكن کرده است. براي انجام اين كار در مكان مقدار ستون از كلمه ي DEFUALT استفاده کنید


مثال:

در اين مثال ركورد دوم مقداري پيش فرض را دريافت كرده (12.5). راه ديگر اين است كه زمان تشكيل جدول از كلمه ي DEFUALT براي هر ستون شامل عبارت پيش فرض استفاده كنيد.


يگانگي ركوردها

يكي از مشكلاتي كه درباره ي ركوردها وجود دارد , يگانگي آنهاست. در database , معمولا ميخواهيد كه كه از يگانه بودن ركورد ها اطمينان حاصل كنيد. Microsoft SQL Server اين مشكل را برطرف كرده است. اين كار شامل شناسه ي ستون, كليد اصلي و فهرست هاست. اين مشكل در قسمتهاي بعدي بررسي خواهد شد. يك راه براي اين كار استفاده از قانون يگانگي در ستون هاست.


ايجاد قانون يگانگي به صورت ويژوال

براي انجام اين كار در Table window روي ستوني دلخواه كليك راست كرده و روي Indexes/Keys كليك كنيد.
در Indexes/Keys dialog box بر روي Add كليك كنيد. در سمت راست روي Is Unique گزينه ي yes را انتخاب كنيد. پنجره را ببنديد.


تمرين : تعيين كردن يگانگي براي يك ستون

  1. در قسمت بالاي جدول روي EmployeeNumber كليك راست كرده و روي Indexes/Keys.. كليك كنيد
  2. در Indexes/Keys dialog box روي Add كليك كنيد.
  3. در قسمت راست بر روي Is Unique دوبار كليك كرده تا مقدار آن را به yes يا no تغيير دهيد
  4. بر روي close كليك كنيد
  5. جدول را ذخيره كنيد

ايجاد قانون يگانگي با استفاده از برنامه نويسي

براي كمك به كاربر براي تشكييل ستونهايي كه مقادير آنها قابل تشخيص است , Transact-SQL عبارت UNIQUE تعبيه كرده است. براي استفاده از آن در ستون بعد از datatype كلمه ي UNIQUE را تايپ كنيد.


مثال:

وقتي يك ستون به صورت يكتا مشخص شده است , هنگام وارد كردن اطلاعات , كاربر بايد براي هر ركورد تازه تشكيل شده يك مقدار يكتا فراهم كند. در صورت وجود مقدار تكراري برنامه پيام خطا خواهد داد. :


, xml:namespace prefix = "o" />

چون شماره دانش آموز تكراري است زماني كه ركورد چهارم وارد ميشود موتور darabase پيام خطا خواهد داد.


ستون هاي محاسبه شده

راه هاي مختلفي براي كمك به كاربر براي وارد كردن داده ها وجود دارد.به عنوان مثال , شما ميتوانيد يك عبارت را تعريف و آن را براي ستون به كار ببريد. در اين صورت مقادير ستون از مقادير ديگر نشات ميگيرند. به اين ستون ها ستون هاي محاسبه شده ميگويند ميتوانيد يك عبارت را براي ستون هاي محاسبه شده ايجاد كنيد. اين كار در Table window يا با استفاده از SQL امكان پذير است.


ايجاد ستون هاي محاسبه سده با استفاده از برنامه نويسي

براي انجام اين كار در قسمت بالاي جدول اسم ستون را مشخص كنيد. در قسمت پايين Computed Column Specification field را گسترش دهيد و عبارت دلخواه خود را وارد كنيد.
عبارت ميتواند شامل موارد زير باشد:


  • مقاديري ارتباطي با جدول و يا database نداشته باشند. مثل اعداد ثابت يا رشته ها
  • يك يا چند ستون از يك جدول و بدون مقدار
  • يك ستون از يك جدل و داراي يك مقدار ثابت

تمرين : ايجاد يك عبارت در يك ستون

1. در قسمت بالاي Table window بر روي EmailAddress كليك راست كرده و روي Insert Column كليك كنيد
2. اسم EmployeeName را تايپ كرده و دكمه ي Tab را فشار دهيد
3. در قسمت پاييني روي دكمه ي + قسمت Computed Column Specification كليك كنيد
4. روي (Formula) و عبارت LastName + N', ' + FirstName را تايپ كنيد
5. جدول را ببنديد
6. زمان درخواست ذخيره گزينه ي yes را انتخاب كنيد.
7. در Object Explorer زير University3 , روي Tables كليك راست كرده و بر روي Refresh كليك كنيد.
روي Academics.Employees كليك راست كرده و روي Edit Top 200 rows كليك كنيد
8. ركورد زير را تشكيل دهيد


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

9. جدول را ببنديد
10. در Object Explorer روي Academics.Employees كليك راست كرده و روي Edit Top 200 rows كليك كنيد تا ركورد ها را مشاهده كنيد
11. جدول را بببنديد


ايجاد يك عبارت با استفاده از SQL

شما ميتوانيد با استفاده از كد SQL يك عبارت ايجاد كنيد. براي انجام اين كار در محل ستون نام آن را وارد كنيد و بعد از آن AS قرار داده و سپس عبارت دلخواه خود را قرار دهيد


استفاده از عبارت در زمان وارد كردن اطلاعات

هنگام وارد كردن اطلاعات , بايد كه مقادير ستون شامل عبارت را تهيه كنيد. تفسرگر SQL به صورت خودكار ايك كار را انجام ميدهد.


ستونهاي ثابت

زمامي كه يك ستون شامل عيارت تشكيل ميدهيد , ستون حاوي عبارتهي نيست , بلكه فقط ميتواند مقادير را نمايش دهد. به اين ستون, ستون مجازي گفته ميشود.
اسم كامل فقط مقادير شامل اسم اول و فاميلي را نمايش ميدهد. اين به اين معناست كه بر خلاف ستون اسم اول و ستون فاميلي كه مقادير واقعي دارند , هيچ عبارت واقعي در ستون اسم كامل وجود ندارد. Transact-SQL به شما اين اجازه را مي دهد تا مقاير يك عبارت را در جدول ذخيره كنيد. ذخيره سازي يك مقدار در يك جدول را ثابت سازي يك مقدار مينامند.
براي درخواست ذخيره سازي يك عبارت از موتور database , اگر به صورت ويژوال ستونها را تشكيل ميدهيد, در قسمت پايين زير (Formula) گزينه ي Is Persisted را به yes غيير دهيد.
اگر با استفاده از كد يك ستون را ايجاد ميكنيد , اسم PERSISTED را در آخر ستون به آن اضافه كنيد.
زماني كه ميخواهيد يك ركورد تازه تشكيل دهيد , نتيجه ي عبارت در حافظه ذخيره خواهد شد. اگر يك ركورد يا يك مقدار كه در عبارت به كار رفته است را تغيير دهيد , موتور database به صورت خودكار مقدار ذخيره شده را update خواهد كرد.


ديگر امكانات ركورد

Row guid

اين ويژگي به شما اين امكان را ميدهد كه يك ستون داراي ويژگي IDENTITY را , اگر به YES تغيير و از آن به صورت ROWGUID استفاده كنيد


مقايسه

زبان هاي مختلف ار فرآيندهاي مختلفي در كاراكنرهاي الفبايي خود استفاده ميكنند كه اين كار بهضي از الگوريتم ها را تحت تاثير قرار خواهد داد. ميتوانيد ار database بخواهيد كه يك فرآيند زبان را براي فيلد به كار ببرد. اين كار با collation امكان پذير است. در غير اين صورت جدول از پيشفر ضخود پيروي ميكند.
براي پي بردن به زبان مورد استفاده سرور, در query esitor يا powershell عبارت زير را تايپ كنيد.


SELECT @@LANGUAGE;
G

تمرين : پايان درس

  1. Microsoft SQL Server را ببنديد
  2. هنگام درخواست ذخيره گزينه ي no را انتخاب كنيد
  • 10382
  •    4
  • تاریخ ارسال :   1394/07/27

دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .