آموزش اصول متغيرها در sql server

tiago

New Member
ارسال ها
10
لایک ها
2
امتیاز
0
#1
از امروز می خوام دوره آموزشی sql server رو به همراه دستورات sql شروع کنم

ميدانيم كه بعضي از مقادير مثل 242 يا james kningt مقاديري ثابت هستند چون قبل و بعد از اجراي برنامه دست نخورده باقي ميمانند.
اگر از يك نوع مقدار به طور مرتب استفاده ميكنيد , ميتوانيد مقداري حافظه را به آن اختصاص دهيد. اين به شما اجازه ميدهد كه كه مقدار را در حافظه ذخيره كرده و هر بار كه به آن نياز داشتيد آن را تغيير دهيد.
براي اين كار, sql interpreter به دو قطعه اطلاعات نياز دارد. اسم , و مقدار فضاي مورد نياز براي ذخيرره ي مقدار

تمرين : معرفي متغيرها
1 . وارد كامپيوتر شويد
2. وارد microsoft sql server شده و بر روي connect كليك كنيد.
3. در standard toolbar , بر روي new query كليك كنيد


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

متغير , مقداري از حافظه است كه مقادير مورد استفاده ي برنامه را روي آن ذخيره ميكند. قبل از استفاده از متغير 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 براي مقادير غلط و باقي اعداد براي عبارات درست به كار ميروند. مثال :


تمرين : استفاده از متغيرهاي بولي

1. در query editor عبارت زير را تايپ كنيد :
2. براي اجرا دكمه ي f5 را فشار دهيد
اعداد صحيح
Transact-SQL از انواع مختلف اعداد پشتيباني ميكند. اگر متغر شامل عددي طبيعي بين -2,147,483,648 تا 2,147,483,647 باشد ميتوانيد از datatpe , int براي تعريف آن استفاده كنيد.

اگر متغير عددي مثبت و بين 0 تا 255 بود از datatype tinyint استفاده كنيد
قوانين مورد استفاده براي smallint همانند int است به جز اينكه smallint براي ذخيره سازي اعداد كوچكتر بين -32,768 و 32,767 به كار مي رود.
Datatype bigint براي متغيرهاي كوچك يا خيلي بزرگ بين -9,223,372,036,854,775,808 تا 9,223,372,036,854,775,807 استفاده ميشود

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

اعداد 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 ثابت شده است .



تمرين : استفاده از متغيرهاي مالي

1. عبارت را به صورت زير تغيير دهيد.
2. عبارت را اجرا كنيد.

Characters

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

رشته ها ) strings)


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

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

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

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


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

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

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

تمرين : استفاده از متغيرهاي رشته اي

1. عبارت را به صورت زير تغيير دهيد.
2. عبارت را اجرا كنيد.
3. file را به اسم variable در mydocument ذخيره كنيد.

متن
اگر متغير از يك متن بزرگ استفاده ميكند , datatype varchar(max) را به كار ببريد.:

اگر متن شامل كاراكترهاي unicode باشد datatype nvarchar(max) را به كار ببريد.
براي مقدار دهي متغير از قوانيني كه تا اينجا بحث كرديم استفاده كنيد.




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 يا ^=

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


تمرين : ويرايش درس
1. برنامه را ببنديد
2. در صورت درخواست ذخيره روي no كليك كنيد.

---- دو نوشته به هم متصل شده است ----


[h=1]بخش دوم آموزش sql server : دستور select در sql server[/h]



دستور SELECT برای انتخاب داده از یک پایگاه داده استفاده می شود .
نتیجه در جدول نتایج که result-set نامیده می شود ذخیره میگردد .

فرم دستور SELECT
select column_name,column_name
from table_name;


و
select * from table_name;



نحوه استفاده از SELECT در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers" انتخاب شده است:


مثال انتخاب ستون با استفاده از دستور SELECT
دستور SQL زیر ستون های "Customer Name" و "City" را از جدول "Customers" انتخاب می کند:
SELECT CustomerName , City FROM Customeers;



مثال *SELECT
دستور SQL زیر تمام ستون های جدول "Customers" را انتخاب می کند:
SELECT * FROM customers;



در بخش بعدی از سری مقالات آموزشی sql server با نحوه استفاده از دستور select distinct در sql server آشنا می شویم.


پیمایش درResult-set

اکثر سیستم های نرم افزاری پایگاه داده اجازه پیمایش در Result-set ها را به وسیله توابع برنامه نویسی همچون Move-To-First-Record, Get-Record-Content, Move-To-Next-Record و غیره را می دهند.
 
بالا