آموزش اصول متغيرها در SQL SERVER

سیده آمین ارمان

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/05/10
ارسالی ها
1,730
امتیاز واکنش
20,744
امتیاز
795
محل سکونت
البرز
ميدانيم كه بعضي از مقادير مثل 242 يا james kningt مقاديري ثابت هستند چون قبل و بعد از اجراي برنامه دست نخورده باقي ميمانند.
اگر از يك نوع مقدار به طور مرتب استفاده ميكنيد , ميتوانيد مقداري حافظه را به آن اختصاص دهيد. اين به شما اجازه ميدهد كه كه مقدار را در حافظه ذخيره كرده و هر بار كه به آن نياز داشتيد آن را تغيير دهيد.
براي اين كار, sql interpreter به دو قطعه اطلاعات نياز دارد. اسم , و مقدار فضاي مورد نياز براي ذخيرره ي مقدار




مشخص كردن متغير

متغير , مقداري از حافظه است كه مقادير مورد استفاده ي برنامه را روي آن ذخيره ميكند. قبل از استفاده از متغير interpreter بايد اطلاع داشته باشد. اين كار مشخص كردن متغير ناميده ميشود. براي اين منظور, از كلمه ي DECLARE با فرمول زير استفاده كنيد :

DECLARE @VariableName DataType


كلمه ي DECLARE به interpreter اطلاع ميدهد كه شما variable را اعلام كرده ايد. در Transact-SQL اسم متغير با علامت @ شروع ميشود. اسم متغير به شما اجازه ميدهد كه حافظه مورد نياز براي ذخيره آن را مشخص كنيد. Trnasact-SQL در مورد اسامي انعطاف زيادي دارد. براي مثال يك اسم ميتواند فقط از اعداد تشكيل شده باشد. مثال :
DECLARE @264‎‏ ‏

بهتر است قوانين زير را هنگام استفاده از اسامي رعايت كنيد :

يك سام ميتواند با _ يا حرف شروع شود مثل : @_n, @act, @second

بعد از حرف اول ميتوان يك عدد يا حرف يا _ قرار داد مثل : @_n24 or @act_52_t
قرار دادن space مجاز نيست
اسم نميتواند شامل كاراكترهاي خاص باشد مثل : !, @, #, $, %, ^, &, *
اگر اسم شامل چند كلمه باشد حرف اول هر اسم بايد حرف بزرگ باشد: @DateHired,@_RealSport, @driversLicenseNumber
اسم نبايد reserved word باشد.


هنگام اعلام كردن متغير , بعد از مشخص كردن اسم بايد datatype را هم مشخص كنيد.

مميتوان چند متغير را همزمان declare كرد. براي اين كار آنها را به وسيله ي ويرگول از هم جدا كنيد. از فرمول زير استفاده كنيد :

DECLARE @Variable1 DataType1, @Variable2 DataType2, @Variable_n DataType_n; ‎


بر خلاف زبانهاي ديگر , اگر متغيرهاي مختلف با datatype مشترك را declare ميكنيد , بعد از هر متغير بايد datatpe آن را بنويسيد.



مقدار دهي اوليه متغير (initializing)
بعد از declare كردن متغير , مفسر فضايي را براي ذخيره به آن اختصاص ميدهد ولي اين به معناي پركردن آني فضا نيست. اين به اين معناست كه كه متغير ابتدا خالي يا null است. براي عوض كردن اين وضعيت كافي است به آن يك مقدار بدهيد. اين كار را مقدار دهي اوليه گويند.
براي يان كار, در جاي لازم , كلمه ي SELECT يا SET را تايپ كرده و سپس اسم متغير و بعد عمل = و در نهايت مقدار را تايپ كنيد . از فرمول زير استفاده كنيد :
SELECT @VariableName = DesiredValue ‎
يا
SET @VariableName = DesiredValue ‎


زماني كه مقداردهي متغير انجام شد , ميتوانيد آن را در دسترش گذاشته يا نمايش دهيد. ميتوانيد اسم متغير را سمت راست PRINT يا SELECT تايپ كنيد.

اسفتاده از متغير
مقدمه
بعد از تعيين اسم براي متغير , بايد ميزان حافظه ي مورد احتياج آن را مشخص كنيد.چون Database ميتواند با انواع مختلفي از اطلاعات كار كند , SQL مجموعه اي از datatype ها را تعبيه كرده است. نوع مورد استفاده براي متغير دقيقا مانند نوع مورد استفاده براي ستونهاست. اين همچنين به اين معناست كه قوانين مورد استفاده براي datatype ها هم يكسان هستند كه آنها را براي يادآوري به اختصار بررسي خواهيم كرد.

متغيرهاي boolean
متغير بولي به وسيله ي datatype , BIT يا bit تعريف ميشوند. مثال :

DECLARE @IsOrganDonor bit; ‎

بعد از مشخص كردن متغير بولي , ميتوانيد آن را با 0 يا هر عدد ديگري مقدار دهي كنيد. 0 براي مقادير غلط و باقي اعداد براي عبارات درست به كار ميروند. مثال :


اعداد decimal
Transact-SQL از اعداد ده دهي پشتيباني ميكند. به طور مثال , ميتوانيد از datatype numeric يا decimal براي متغير هايي كه شامل همه ي اعداد هستند (اعداد طبيعي يا ده دهي) اسفاده كنيد.

به تعداد ارقام به كار رفته براي يك عدد دقت ميگويند. همانطور كه قبلا مشاهده شد , براي مشخص كردن دقت اعداد از نوع decimal يا numeric يك پرانتز به datatype اضافه كنيد و در داخل آن يك عدد بين 1 تا 38 بگذاريد.

اين عدد تعداد ارقام اعشار در سمت راست مميز را تعيين ميكند.
تمرين : استفاده از متغيرهاي ده دهي
1. جمله را به صورت زير تغيير دهيد
2. عبارت را اجرا كنيد

اعداد حقيقي
Transact-SQL به وسيله ي datatype float و real از اعداد اعشاري پشتيباني ميكند. مثال زير استفاده از datatype float را براي نشان دادن اعداد اعشاري را نشان ميدهد:
مقادير پولي
اگر از متغيرهايي استفاده ميكنيد كه شامل مقادير مالي هستند , ميتوانيد از از datatype money براي نشان دادن آنها استفاده كنيد.
به خاطر داشته باشيد كه ميتوانيد براي مقادير بين -214,748.3648 تا 214,748.3647 از datatype smallmoney استفاده كنيد. دقت و مقياس money و smallmoney از قبل روي عدد 4 ثابت شده است .



Characters

براي نمايش متغيرهايي كه از كاراكتر يا هر سمبل ديگري استفاده ميكنند, ميتوانيد از datatype char استفاده كنيد. براي مشخص كردن مقدار متغير آن را در (') قرار دهيد.
اگر متغير شامل كاراكترهاي بين المللي يا غير لاتين بود (unicode) از dataype nchar استفاده كنيد. هنگام تعيين مقدار متغير, بهتر است قبل از آن (N) قرار دهيد.

رشته ها ) strings)


يك رشته مجموعه اي از كاراكتر يا نماد هاي مختلف است. براي مشخص كردن متغيرهايي از اين دست datatype varchar را به كار ببريد.
بهتر است هميشه به ياد داشته باشيد كه طول رشته را بايد مشخص كنيد. براي اين منظور يك عدد را در پرانتز جلوي آن قرار دهيد :

همچنين براي تعيين مقدار يك متغير آن را در ( ' ) قرار دهيد.

اگر از Command Prompt استفاده ميكنيد مقدار بين ( " ) قرار دهيد.

اگر از Query Editor استفاده ميكنيد لازم نيست مقدار را در (") قرار دهيد. در غير اين صورت پيام خطا دريافت خواهيد كرد.


اگر متغير شامل كاراكترهاي international يا نمادهاي unicode بود از datatype nvarchar استفاده كنيد. موقع مقدار دهي قبل از آن N قرار دهيد.

ميتوانيد براي مقدار دهي char, nchar , varchar يا nvarchar از N استفاده كنيد و اين كار پيام خطايي به همراه نخواهد داشت.

چنانچه بيشتر از يك عبارت را در ( ' ) ميگنجانيد , فقط كاراكتري كه در جاي اول از سمت چپ قرار گرفته در متغير ذخيره خواهد شد.


SQL variants

Transact-SQL براي متغيرهايي كه ميتوانند همه نوع مقادير را نگه دارند , datatype sql_variant را تعبيه كرده است. هنگام مقدار دهي به متغير بايد از قوانين sql variant پيروي كنيد.

عبارات هندسي


براي پشتيباني از مختصات هندسي از datatype geometry استفاده كنيد.

Geometry شامل ويژگي و روش هايي است. براي مشخص كردن متغير geometry , ابتدا بايد به آن يك مقدار بدهيد. اين كار به وسيله ي روش STGeomFromText انجام پذير است كه دستور آن به شرح زير است :

اين روش ايستا ست. اين به اين معناست كه براي دسترسي به آن شما از geometry::STGeomFromText استفاده ميكنيد.
اين روش شامل دو بخش است. بخش اول نگهداري مقدار به صورت Well-Known Text (WKT) است. مقدار از فرمت تعريف شده ي OGC تبعيت ميكند. راه هاي مختلفي براي تعيين مقدار وجود دارد. همانطور كه قبلا مشاهده كرديد , يك مختصات هندسي شامل دو مقدار است. يكي مختصات افقي يا x و ديگري مختصات عمودي يا y . اين دو مقدار ميتوانند يك عدد صحيح يا اعشاري باشند.
چنانچه مختصات يك نقطه را داريد و ميخواهيد از آن به صورت geometry استفاده كنيد , كلمه ي point() را تايپ كرده و در پرانتز مختصات را تايپ كرده و به وسيله ي space از هم جدا كنيد.
همچنين ميتوانيد به جاي يك نقطه ميتوانيد مختصات يك خط را وارد نماييد. براي اين منظور ميتوانيد از linestring(,) استفاده كنيد. كافي است x و y را در دو طرف ويرگول تايپ كنيد.

اگر مايل به استفاده از مقادير مركب هستيد ميتوانيد از شناسه polygon استفاده كنيد. ابتدا polygon(()) را تايپ كنيد سپس مختصات هر نقطه را داخل پرانتز تايپ كنيد. و به وسيله ي ويرگول از هم جدا كنيد. آخرين نقطه كه براي بستن پرانتز از آن استفاده ميشود بايد با اولين نقطه برابر باشد. مثال :

دومين روش از geometry::STGeomFromText عدد ثابت يا spatial reference ID (SRID) است.بعد از نمايش و مقدار دهي , ميتوانيد از عبارت select براي نمايش مقدار استفاده كنيد.

نمايش محل جغرافيايي

Transact-SQL از محل هاي جغرافيايي پشتيباني ميكند.

عبارات از پيش تعيين شده
ميتوانيد يك نوع از datatype هاي موجود را از پيش تعيين كنيد. به اين كار user-defined data type (UDT) ميگويند. پيشتر چگونگي ايجاد آنها را بررسي كرديم.
بعد از تشكيل UDT , ميتوانيد يك متغير براي آن مشخص كنيد. سپس قبل از استفاده بايد ابتدا به آن مقدار بدهيد.

البته ميتوانيد Transact-SQL data types را با datatype هاي خودتان در كد ميكس كنيد.

عملياتهاي مركب



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


مثال : عمليات مركب

عمليات مركب از عمل كننده ي =+ استفاده ميكند. به وسيله ي آن ميتوان يك مقدار را به خودش اضافه كرد. براي اين كار ابتدا متغير و خودش را تايپ كرده و عملگر را بين آنها قرار دهيد. بعد از انجام اين عمليات , متغير مقدار جديدي خواهد داشت. شكل زير را در نظر بگيريد :


متغير به كار رفته در عمليات مركب ميتواند از هر نوعي باشد به شرط آن نوع از عمليات پشتيباني كند. به عنوان مثال رشته ها از عمليات جمع پشتيباني مي كنند. اين به اين معناست كه متغير ميتواند از نوع char و مشتقات آن باشد.
همچنين ميتوان يك مقدار را به متغير اضافه كرد. براي اين كار ابتدا متغير و مقداري كه ميخواهيد به آن اضافه كنيد را تايپ كرده و عملگر را بين آنها قرار دهيد.
زماني كه عمليات انجام شد, متغير سمت چپ داراي مقداري جديد خواهد بود. :
يكي ديگر از كاربردهاي عمليات مركب اضافه كردن يك مثدار ثابت به متغير است. براي اين كار عملگر =+ را قرار داده و مقدار ثابت را در سمت راست آن بگذاريد.


به ياد داشته باشيد كه بعد از انجام عمليات متغير داراي مقداري جدبد خواهد بود.

همچنين ميتوانيد اين عمليات را چندين بار تكرار كنيد

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

ديگر عملياتهاي دونايي


عمليات مركب براي در و اقع شامل 2 عمليات رياضي است. همانطور كه در بالا مشاهده شد, عمليات مركب براي رشته ها نيز امكان پذير است. همچنين براي دستكاري بيت ها قابل استفاده است. به ياد داشته باشيد كه همه ي datatype ها قابليت استفاده از عمليات مركب را ندارند.




جمع بندي :

همه ي اعداد دودويي از جمع , تفريق , ضرب , تقسيم و باقيمانده پشتيباني ميكنند. عملگرها به ترتيب +=, -=, *=, /= و &= هستند.
عمليات تنظيم بيت براي موارد زير قابل استفاده است :

o استفاده از عملگر &= براي مقايسه بيت سمت چپ و سمت راست عملگر و بررسي مساوي بودن آنها

o استفاده از عملگر or يا |= براي مقايسه بيت سمت چپ و سمت راست عملگر و بررسي نا مساوي بودن آنها

o استفاده از عملگر xor يا ^=

اين عملگر ها براي اعداد دهدهي و طبيعي نيز قابل استفاده هستند.
 

برخی موضوعات مشابه

بالا