با سلام خدمت شما دوستان عزیز ، حالتون که خوب هست؟ امیدوارم که شاد باشید و سلامت که با اموزشهای ما همراه بمانید.همانطورکه میدانید امروز براتون مطالبی درموردsql گذاشتم امیدوارم که براتون مفید واقع شده باشه ..میدانیم که بعضی از مقادیر مثل ۲۴۲ یا james kningt مقادیری ثابت هستند چون قبل و بعد از اجرای برنامه دست نخورده باقی میمانند.اگر از یک نوع مقدار به طور مرتب استفاده میکنید , میتوانید مقداری حافظه را به آن اختصاص دهید. این به شما اجازه میدهد که که مقدار را در حافظه ذخیره کرده و هر بار که به آن نیاز داشتید آن را تغییر دهید.

برای این کار, sql interpreter به دو قطعه اطلاعات نیاز دارد. اسم , و مقدار فضای مورد نیاز برای ذخیرره ی مقدار

تمرین : معرفی متغیرها

۱ . وارد کامپیوتر شوید

۲٫ وارد microsoft sql server شده و بر روی connect کلیک کنید.

۳٫ در 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; ‎

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

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

۱٫ در query editor عبارت زیر را تایپ کنید :

۲٫ برای اجرا دکمه ی f5 را فشار دهید

اعداد صحیح

Transact-SQL از انواع مختلف اعداد پشتیبانی میکند. اگر متغر شامل عددی طبیعی بین -۲,۱۴۷,۴۸۳,۶۴۸ تا ۲,۱۴۷,۴۸۳,۶۴۷ باشد میتوانید از datatpe , int برای تعریف آن استفاده کنید.

اگر متغیر عددی مثبت و بین ۰ تا ۲۵۵ بود از datatype tinyint استفاده کنید

قوانین مورد استفاده برای smallint همانند int است به جز اینکه smallint برای ذخیره سازی اعداد کوچکتر بین -۳۲,۷۶۸ و ۳۲,۷۶۷ به کار می رود.

Datatype bigint برای متغیرهای کوچک یا خیلی بزرگ بین -۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۸ تا ۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۷ استفاده میشود

تمرین : استفاده از اعداد صحیح به عنوان متغیر

۱٫ جمله را به صورت زیر تغییر دهید :

۲٫ عبارت را اجرا کنید

اعداد decimal

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

به تعداد ارقام به کار رفته برای یک عدد دقت میگویند. همانطور که قبلا مشاهده شد , برای مشخص کردن دقت اعداد از نوع decimal یا numeric یک پرانتز به datatype اضافه کنید و در داخل آن یک عدد بین ۱ تا ۳۸ بگذارید.

این عدد تعداد ارقام اعشار در سمت راست ممیز را تعیین میکند.

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

۱٫ جمله را به صورت زیر تغییر دهید

۲٫ عبارت را اجرا کنید

اعداد حقیقی

Transact-SQL به وسیله ی datatype float و real از اعداد اعشاری پشتیبانی میکند. مثال زیر استفاده از datatype float را برای نشان دادن اعداد اعشاری را نشان میدهد:

مقادیر پولی

اگر از متغیرهایی استفاده میکنید که شامل مقادیر مالی هستند , میتوانید از از datatype money برای نشان دادن آنها استفاده کنید.

به خاطر داشته باشید که میتوانید برای مقادیر بین -۲۱۴,۷۴۸٫۳۶۴۸ تا ۲۱۴,۷۴۸٫۳۶۴۷ از datatype smallmoney استفاده کنید. دقت و مقیاس money و smallmoney از قبل روی عدد ۴ ثابت شده است .

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

۱٫ عبارت را به صورت زیر تغییر دهید.

۲٫ عبارت را اجرا کنید.

Characters

برای نمایش متغیرهایی که از کاراکتر یا هر سمبل دیگری استفاده میکنند, میتوانید از datatype char استفاده کنید. برای مشخص کردن مقدار متغیر آن را در (‘) قرار دهید.

اگر متغیر شامل کاراکترهای بین المللی یا غیر لاتین بود (unicode) از dataype nchar استفاده کنید. هنگام تعیین مقدار متغیر, بهتر است قبل از آن (N) قرار دهید.

رشته ها ) strings)

یک رشته مجموعه ای از کاراکتر یا نماد های مختلف است. برای مشخص کردن متغیرهایی از این دست datatype varchar را به کار ببرید.

بهتر است همیشه به یاد داشته باشید که طول رشته را باید مشخص کنید. برای این منظور یک عدد را در پرانتز جلوی آن قرار دهید

همچنین برای تعیین مقدار یک متغیر آن را در ( ‘ ) قرار دهید.

اگر از Command Prompt استفاده میکنید مقدار بین ( ” ) قرار دهید.

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

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

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

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

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

۱٫ عبارت را به صورت زیر تغییر دهید.

۲٫ عبارت را اجرا کنید.

۳٫ 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 و مشتقات آن باشد.

همچنین میتوان یک مقدار را به متغیر اضافه کرد. برای این کار ابتدا متغیر و مقداری که میخواهید به آن اضافه کنید را تایپ کرده و عملگر را بین آنها قرار دهید.

زمانی که عملیات انجام شد, متغیر سمت چپ دارای مقداری جدید خواهد بود. :

یکی دیگر از کاربردهای عملیات مرکب اضافه کردن یک مثدار ثابت به متغیر است. برای این کار عملگر =+ را قرار داده و مقدار ثابت را در سمت راست آن بگذارید.

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

همچنین میتوانید این عملیات را چندین بار تکرار کنید

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

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

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

جمع بندی :

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

عملیات تنظیم بیت برای موارد زیر قابل استفاده است :

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

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

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

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

تمرین : ویرایش درس

۱٫ برنامه را ببندید

۲٫ در صورت درخواست ذخیره روی no کلیک کنید.