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

متغیرها درSQL Server

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

مبانی متغیرها در SQL Server

می دانيم كه بعضی از مقادير مثل 242 يا 'James Knight' مقاديری ثابت هستند زیرا که مقدار آن ها از پیش مشخص بوده و همچنین آن ها را در دستورات خود تغییر نمی دهیم. این دست از مقادیر در اصطلاح constant خوانده می شوند. چنانچه این نوع مقدار را به طور مرتب استفاده می كنيد، در آن صورت می توانيد مقداری از فضای خالی حافظه را به آن تخصیص دهيد. اين کار به شما اجازه می دهد كه مقدار را در حافظه ذخيره كرده و هر بار كه به آن نياز دارید تغييرش دهيد.
برای بهره گیری از حافظه جهت ذخیره یا در صورت نیاز حذف مقادیر، مفسر SQL به اسم مقدار و نیز مقدار حافظه ی موردنیاز برای نگه داری و ذخیره ی آن نیاز دارد.


آموزش کاربردی: معرفی متغيرها

1. رایانه را راه اندازی کرده و وارد سیستم شوید.
2. microsoft sql server را اجرا کرده و در کادر محاوره ای اتصال به سرویس دهنده بر روی دکمه ی connect كليک كنيد.
3. در standard toolbar، بر روی دکمه ی آموزش SQL new queryكليک كنيد.


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

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


DECLARE @VariableName DataType 

كلمه ی DECLARE بهinterpreter اطلاع می دهد كه شما متغیر را اعلان کرده اید. در Transact-SQL اسم متغير با علامت@ آغاز می شود. اسم متغير به شما اجازه می دهد كه حافظه مورد نياز برای ذخيره آن را مشخص و تعریف كنيد. Transact-SQL در خصوص انتخاب اسامی برای متغیر انعطاف پذیری زيادی دارد. به عنوان مثال، اسم یک متغیر می تواند فقط از اعداد تشكيل شده باشد.


مثال:
DECLARE @264‎‏ ‏

توصیه می شود قوانين زیر را در زمان انتخاب اسم برای متغیر، رعایت نمایید:


  1. اسم متغیر می تواند با زیرخط "_" يا حرف شروع شود، مانند : @_n, @act, @Second.
  2. بعد از حرف اول می توان يک عدد يا حرف يا _ قرار داد. مثال : @_n24 or @act_52_t .
  3. قرار دادن space یا خط فاصله مجاز نمی باشد.
  4. اسم نمی تواند شامل كاراكترهای ویژه نظیر !، @، #، $، %، ^، &، * باشد.
  5. در صورتی که اسم مورد نظر از چندین واژه تشکیل شده، لازم است حرف اول تمام کلمات، حرف بزرگ باشد: @DateHired،@_RealSport، .@DriversLicenseNumber
  6. اسم نبايد reserved word یا یک اسم و واژه ی انتخاب شده برای دستورات و کلیدواژه های خود سیستم باشد.

به هنگام اعلان متغير، بعد از مشخص كردن اسم بايد نوع داده ای را نیز مشخص كنيد.
می توان چندین متغير را به طور همزمان اعلان نمود. برای اين كار بایستی آن ها را به وسيله ی ويرگول از هم جدا كنيد:


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

بر خلاف زبان های ديگر، اگر متغيرهای مختلف با نوع داده ای مشترک و یکسان تعریف كنيد، بعد از هر متغير بايد نوع داده ای آن را نیز مشخص کنید.


مقدار دهی اوليه متغير (initializing variable)

پس از اعلان متغير، مفسر فضای خالی را برای ذخيره به آن تخصیص می دهد، اما لازم به ذکر است که اين به معنای پركردن آنی فضا با مقدار نيست. به عبارتی دیگر متغير در ابتدا تهی يا null می باشد. برای تغییر اين وضعيت كافی است به آن يک مقدار نسبت دهید. اين فرایند را مقدار دهی اوليه یا به انگلیسی initialization گويند.
برای این كار، در جای لازم، واژه ی کلیدی SELECTيا SET را وارد كرده و سپس اسم متغير و بعد عملگر = و سرانجام مقدار را درج كنيد:


SELECT @VariableName = DesiredValue ‎

یا
SET @VariableName = DesiredValue ‎‎

هنگامی كه مقداردهی متغير کامل به انجام رسید، می توانيد آن را در دسترس قرار داده يا نمايش دهيد. برای انجام این کار، همانند دستور بالا اسم متغير را سمت راست واژه ی کلیدیPRINT يا SELECTدرج كنيد.


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

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


متغيرهای بولی (true/false یا 0/1)

متغير بولی به وسيله نوع داده ایBIT يا bit تعريف می شوند.


مثال:
 DECLARE @IsOrganDonor bit; ‎ 

پس از اعلان متغير بولی، می توانيد آن را با 0 يا هر عدد ديگری مقدار دهی و پر كنيد. 0 برای مقادير غلط یا false و باقی اعداد برای عبارات درست یا true بكار می روند. نمونه:


آموزش SQL

آموزش کاربردی: استفاده از متغيرهای بولی

1. در query editor مجموعه دستورات زير را وارد كنيد:


DECLARE @IsMarried bit
SET @IsMarried = 1
SELECT @IsMarried AS [Is Married?];
GO

2. برای اجرای مجموعه دستورات، دكمه ی f5 را فشار دهيد.


نوع داده ای عدد صحیح یا int

Transact-SQL از انواع مختلف اعداد پشتيبانی می كند. اگر متغیر مورد نظر دربردارنده ی مقدار عددی طبيعی بين برد -2,147,483,648 تا 2,147,483,647 باشد می توانيد از نوع داده ای int برای تعريف آن استفاده نمایید.


DECLARE @Category int;
SET @Category = 1450;
PRINT @Category;
GO

خروجی 1450 را تولید می کند:
آموزش SQL
اگر متغير عددی مثبت (بسیار کوچک) و بين بازه ی 0 تا 255 است از نوع داده ایtinyint استفاده كنيد.
آموزش SQL

قوانين مورد استفاده برای smallint همانند int است با این تفاوت که smallint برای ذخيره سازی اعداد كوچكتر بين برد -32,768 تا 32,767 قرار می گیرند، بكار می رود.


DECLARE @NumberOfPages SMALLINT;
SET @NumberOfPages = 16;
SELECT @NumberOfPages AS [Number of Pages];
GO
Number of Pages
---------------
             16
(1 rows affected)

نوع داده ایbigint برای متغيرهای بزرگ يا بسیار بزرگ بين محدوده ی -9,223,372,036,854,775,808 تا 9,223,372,036,854,775,807 استفاده می شود.


DECLARE @CountryPopulation BigInt;
 SET @CountryPopulation = 16500000;
 SELECT @CountryPopulation AS 'Country Population';
 GO
Country Population
--------------------
            16500000
(1 rows affected)

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

1. کد را به صورت زير ویرایش نمایید:
DECLARE @IsMarried bit, @EmplStatus int;
SET @IsMarried = 1;
SET @EmplStatus = 2;
SELECT @IsMarried AS [Is Married?],
       @EmplStatus AS [Employment Status];
GO

2. کد را اجرا كنيد: آموزش SQL

اعداد ده دهی (در مبنای 10) یا decimal

Transact-SQL از انواع مقادیر عددی decimal نیز پشتيبانی می كند. به عنوان نمونه، می توانيد از نوع داده ای numeric يا decimal برای متغير هايی كه حاوی همه نوع مقدار عددی هستند (اعداد طبيعی يا ده دهی) استفاده كنيد.

مثال:
DECLARE @Distance DECIMAL;
SET @Distance = 648.16;
PRINT @Distance;
GO
648

به تعداد ارقام به كار رفته برای (نمایش) يک عدد دقت یا precision می گويند. همان طور كه قبلا مشاهده شد، برای مشخص كردن دقت اعداد از نوع decimal يا numeric يک کاراکتر پرانتز به نوع داده ای اضافه کرده و در داخل آن يک عدد بين 1 تا 38 درج نمایید.
اين عدد تعداد ارقام اعشار مجاز در سمت راست نقطه ی مميز اعشار را مشخص می كند.


آموزش SQL

آموزش کاربردی

1. دستور را به صورت زير ویرایش نمایید.


DECLARE @IsMarried bit,
        @EmplStatus int,
        @WeeklyHours Decimal(6,2);
SET @IsMarried = 1;
SET @EmplStatus = 2;
SET @WeeklyHours = 36.50;
SELECT @IsMarried AS [Is Married?],
       @EmplStatus AS [Employment Status],
       @WeeklyHours AS Hours;
GO

2. دستور را اجرا كنيد.


آموزش SQL

اعداد حقیقی (real numbers)

Transact-SQL با ارائه انواع داده ای float و real از اعداد ممیز شناور (floating-point) پشتيبانی می كند. مثال زیر یک متغیر عددی از نوع اعشاری float تعریف کرده و آن را مقداردهی و سپس در عملیات مورد استفاده قرار می دهد:


 DECLARE @Radius FLOAT;
 SET @Radius = 48.16;
 SELECT @Radius AS Radius;
 GO
Radius
------------------------
      48.159999999999997
(1 rows affected)

مقادیر ارزی

اگر از متغيرهايی استفاده می كنيد كه دارای مقادیر ارزی هستند، در آن صورت می توانيد از از نوع داده ای moneyبرای نمایش آن ها بهره بگیرید.


DECLARE @YearlyIncome Money;
SET @YearlyIncome = 48500.15;
SELECT @YearlyIncome AS [Yearly Income];
GO
Yearly Income
---------------------
           48500.1500
(1 rows affected)

به یاد داشته باشید كه می توانيد برای مقاديری که بين بازه ی عددی -214,748.3648 تا 214,748.3647 قرار می گیرند از نوع داده ای smallmoney استفاده كنيد. تعداد عدد و دقت اعشاری money و smallmoney به صورت پیش فرض بر روی 4 تنظیم شده است.


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

1. دستورات را به ترتیب زير ویرایش کنید.
DECLARE @EmplStatus int,
        @IsMarried bit,
        @WeeklyHours Decimal(6,2),
        @HourlySalary SmallMoney,
        @WeeklySalary SmallMoney;
SET @IsMarried = 1;
SET @EmplStatus = 2;
SET @WeeklyHours = 36.50;
SET @HourlySalary = 15.72;
SET @WeeklySalary = @WeeklyHours * @HourlySalary;
SELECT @EmplStatus AS [Empl Status],
       @IsMarried AS [Married?],
       @WeeklyHours AS Hours,
       @HourlySalary AS Hourly,
       @WeeklySalary AS Weekly;
GO

2. عبارت را اجرا كنيد.
آموزش SQL

نوع داده ای char

برای نمايش متغيرهايی كه از كاراكتر يا هر علامت دیگری استفاده می كنند، می توانيد از نوع داده ای char استفاده كنيد. برای مقداردهی آن، بایستی مقدارش را داخل تک کوتیشن محصور نمایید.


مثال:
 DECLARE @Gender char;
 SET @GENDER = 'M';
 SELECT @Gender AS Gender;
 GO
Gender
------
M
(1 rows affected)

اگر مقدار متغير شامل كاراكترهای بين المللی يا غير لاتين باشد (unicode)، در آن صورت می بایست از نوع داده ایnchar استفاده كنيد. هنگام مقداردهی اولیه متغير، لازم است پیش از آن (N) قرار دهيد. نمونه:


DECLARE @Gender nchar;
SET @GENDER = N'M';
SELECT @Gender AS Gender;
GO
Gender
------
M
(1 rows affected)

متغیرهای متنی یا نوع داده ای string

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


DECLARE @FirstName varchar;

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


DECLARE @Gender char(1);
DECLARE @FirstName varchar(20);

همچنين برای مقداردهی اولیه يک متغير آن را در ( ' ) قرار دهيد


مثال:
DECLARE @Gender char(1);
DECLARE @FirstName varchar(20);
SET @Gender = 'Male';
SET @FirstName = 'Yolanda';

آموزش SQL

در صورت استفاده از(SQLCMD.EXE) Command Prompt یا پنجره ی فرمان، باید مقدار را داخل ( " ) محصور کنید.
اگر از Query Editor استفاده می كنيد، از قرار دادن مقدار داخل کاراکتر (") خودداری کنید. در غير اين صورت پيام خطا دريافت خواهيد كرد.


آموزش SQL

اگر متغير دربردارنده ی كاراكترهای بین المللی يا نمادهایunicode بود در آن صورت باید برای اعلان آن از نوع داده ای nvarchar استفاده نمایید. کافی است در زمان مقدار دهی اولیه پیش از مقدار آن N را درج نمایید.


DECLARE @Gender char;
DECLARE @Code nchar;
DECLARE @FirstName varchar;
DECLARE @LastName nvarchar;
SET @Gender = N'Male';
SET @Code = N'7HHF-294';
SET @FirstName = 'Yolanda';
SET @LastName = N'Williamson';;

می توانید متغیرهایی که با نوع داده ای char، nchar، varchar یا nvarchar اعلان شده را با کاراکتر N آغاز کنید، در صورت انجام این کار با هیچ خطایی مواجه نخواهید شد.
در صورتی که بيش از يک کاراکتر داخل ( ' ) قرار می دهید، تنها كاراكتری كه در جای اول از سمت چپ قرار گرفته در متغير ذخيره خواهد شد.


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

1. دستورات را به ترتیب زير ویرایش نمایید.
DECLARE @FirstName    nvarchar(20),
        @LastName     nvarchar(20),
        @FullName     nvarchar(40),
        @EmplStatus   int,
        @IsMarried    bit,
        @WeeklyHours  Decimal(6,2),
        @HourlySalary SmallMoney,
        @WeeklySalary SmallMoney;
SET @FirstName    = N'Samuel';
SET @LastName     = N'Weinberg';
SET @FullName     = @LastName + N', ' + @FirstName;
SET @IsMarried    = 1;
SET @EmplStatus   = 2;
SET @WeeklyHours  = 36.50;
SET @HourlySalary = 15.72;
SET @WeeklySalary = @WeeklyHours * @HourlySalary;
SELECT @FullName As [Full Name],
       @EmplStatus AS [Empl Status],
       @IsMarried AS [Married?],
       @WeeklyHours AS Hours,
       @HourlySalary AS Hourly,
       @WeeklySalary AS Weekly;
GO

2. مجموعه دستور را اجرا كنيد.
آموزش SQL
3. اسم فایل راVariables انتخاب کرده و آن را درmydocument ذخيره كنيد.

متغیرهای متنی (Text)

چنانچه مقداری که در متغیر ذخیره می شود، متن یا نوشته ی بسیار طولانی می باشد، در آن صورت توصیه می شود نوع داده ای varchar(max) را به كار ببريد.


declare @TermPaper nvarchar(max);

اگر متغیر متنی حاوی كاراكترهای بین المللی و غیر لاتین می باشد، در آن صورت توصیه می شود نوع داده ایnvarchar(max) را مورد استفاده قرار دهید.
برای مقدار دهی متغير از قوانينی كه تا کنون تشریح شد استفاده نمایید.


نوع داده ای sql_variant

این نوع داده ای همان طور که در یکی از مباحث پیشین ذکر شد، برای ذخیره سازی انواع داده ای مختلف که SQL Server از آن ها پشتیبانی می کند مورد استفاده قرار می گیرد. این نوع داده در ستون ها، پارامترها ،متغیر ها و مقادیر بازگشتی توابع کاربر (user-defined) استفاده می شود. sql_variant در حقیقت به اشیا بانک اطلاعاتی این امکان را می دهد که از نوع داده ای های دیگر پشتیبانی کنند. یک ستون که نوع داده ای آن sql_variant اعلان شده باشد، می تواند دربردارنده ی سطرهایی با انواع داده ی متفاوت باشد به عنوان مثال برای ستونی که نوع داده ی sql_variant برای آن تعریف شده می تواند مقادیر int یا binary و یا char را شامل شود.
بنابراین T-SQLبرای متغيرهايی كه قادر به ذخیره و نگه داری هر نوع مقداری هستند، نوع داده ای sql_variant را فراهم می کند. در زمان مقدار دهی اولیه ی متغير بايستی از قوانين sql variant پيروی كنيد.


مثال:
DECLARE @FullName SQL_VARIANT,
	@DateHired Sql_Variant,
        @IsMarried SQL_variant,
        @YearlyIncome sql_variant;
SET @FullName = N'Paul Yamo';
SET @DateHired = N'20110407';
SET @IsMarried = 1;
SET @YearlyIncome = 48500.15;
SELECT @FullName AS [Full Name];
SELECT @DateHired AS [Date Hired];
SELECT @IsMarried AS [Is Married?];
SELECT @YearlyIncome AS [Yearly Income];
GO

نوع داده ای geometry

به منظور پشتیبانی و ذخیره ی مقادیر مختصات هندسی، زبان T-SQLنوع داده ایgeometry را در اختیار کاربر قرار می دهد.


DECLARE @Location geometry;

Geometry درواقع یک کلاس است که دارای خواص (property) و رفتار یا متدهایی (method) می باشد. پس از تعریف یا اعلان متغيرgeometry ، بایستی آن را مقداردهی نمایید. اين كار به وسيله ی متد یا تابع STGeomFromText انجام پذير می باشد كه دستور آن به شرح زير است:


static geometry STGeomFromText('geography_tagged_text', SRID)

اين متد در حقیقت یک متد static است، بدین معنی که برای دسترسی به آن شما می بایست از geometry::STGeomFromText استفاده می كنيد.


DECLARE @Location geometry;
SET @Location = geometry::STGeomFromText(. . .)

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


DECLARE @Location geometry;
SET @Location = geometry::STGeomFromText('point(6 4)', . . .

همچنين می توانيد بجای يک نقطه مختصات يک خط را وارد نماييد. برای اين منظور لازم است از عبارت کلیدی linestring(,) استفاده كنيد. كافی است x و y را تایپ کرده و به وسیله ی تفکیک گر ویرگول پارامترها را از هم جدا کنید.

                            
DECLARE @Location geometry;
SET @Location = geometry::STGeomFromText('linestring(1 4, 5 2)', . . .);

اگر می خواهید از مقادیر مرکب استفاده کنید، در آن صورت می بایست polygon را به عنوان آرگومان به متد geometry::STGeomFromText ارسال کنید. ابتدا polygon(()) را تايپ كرده، مختصات هر نقطه (رئوس) را داخل پرانتز تايپ كنيد، سپس به وسيله ی ويرگول آن ها از هم جدا نمایید. مقادیر آخرین و اولین رئوس بایستی یکی باشد:


DECLARE @Location geometry;
SET @Location = geometry::STGeomFromText('polygon((1 2, 2 5, 5 5, 4 2, 1 2))', . . );

دومين آرگومان ارسالی به متد geometry::STGeomFromText عدد صحیح ثابت می باشد کهspatial reference ID (SRID) نامیده می شود. بعد از اعلان و مقدار دهی اولیه ی متغیر، می توانيد از عبارت select برای نمايش مقدار استفاده نمایید.


DECLARE @Location geometry;
SET @Location = geometry::STGeomFromText('point(6 4)', 0);
SELECT @Location;

آموزش SQL

نمايش موقعیت جفرافیایی

Transact-SQL قادر به ذخیره و نمایش موقعیت های جغرافیایی می باشد.


نوع داده ای تعریف شده توسط کاربر (User-Defined Type)

زبان T-SQL به شما این امکان را می دهد که خود یک نوع را بر اساس نوع داده ای پیش فرض این زبان ایجاد نمایید. به اين نوع داده ای در اصطلاح user-defined data type (UDT) می گويند. در مباحث پیشین چگونگی ايجاد آنها را را توضیح دادیم.


CREATE TYPE NaturalNumber FROM int;
GO
CREATE TYPE ShortString FROM nvarchar(20);
GO
CREATE TYPE ItemCode FROM nchar(10);
GO
CREATE TYPE LongString FROM nvarchar(80);
GO
CREATE TYPE Salary FROM decimal(8, 2);
GO
CREATE TYPE Boolean FROM bit;
GO

پس از ایجاد یک UDT، می توانيد يک متغير برای آن تعریف نمایید. سپس مقدار مناسب را به آن متغیر تخصیص می دهید


مثال:
DECLARE @EmployeeID NaturalNumber,
	@EmployeeNumber ItemCode,
        @FirstName ShortString,
        @LastName ShortString,
        @Address LongString,
        @HourlySalary Salary,
        @IsMarried Boolean;
SET     @EmployeeID = 1;
SET	@EmployeeNumber = N'28-380';
SET     @FirstName = N'Gertrude';
SET     @LastName = N'Monay';
SET     @Address = N'1044 Alicot Drive';
SET     @HourlySalary = 26.75;
SET     @IsMarried = 1;
SELECT  @EmployeeID AS [Empl ID],  @EmployeeNumber AS [Empl #],
        @FirstName AS [First Name], @LastName AS [Last Name],
        @Address, @HourlySalary AS [Hourly Salary],
        @IsMarried AS [Is Married ?];
GO

این امکان وجود دارد که انواع داده ای پیش فرض زبانTransact-SQL را با انواع داده ای اختصاصی و تعریف شده توسط خود در كد ترکیب نمایید.


عملیات مرکب

عمليات مركب عبارت است از انجام دو عملیات یکسان بر روی یک متغیر (مثلا جمع یک عدد با خودش). به طور مثال، فرض كنيد كه يک متغير داريد و می خواهيد بر روی آن عملياتی انجام داده و مقدار متغير را با خودش جمع كنيد. عمليات مركب از عملگری استفاده می كند كه در واقع ترکیبی از دو عملگر می باشد. متغير می تواند از هر نوعی باشد منوط به اینکه امکان اجرای عمليات مورد نظر بر روی آن وجود داشته باشد.


مثال: جمع مرکب

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


                            
DECLARE @Variable int;
SET @Variable = 248;
SELECT @Variable;
SET @Variable += @Variable;
SELECT @Variable;

بعد از انجام اين عمليات، متغير مقدار جديدی خواهد داشت. تصویر زير را در نظر بگيريد:


آموزش SQL

متغير به كار رفته در عمليات مركب می تواند از هر نوعی باشد به شرطی که آن نوع داده ای از عمليات مد نظر پشتيبانی كند. رشته ها از عمليات جمع پشتيبانی می كنند، بنابراین متغير می تواند از نوع char یا مشتقات آن باشد. همچنين می توان يک متغیر را به متغير دیگر اضافه كرد. برای اين كار ابتدا متغير و سپس متغیر دیگری كه می خواهيد به آن اضافه كنيد را تايپ كرده و عملگر را بين آن ها درج نمایید.


DECLARE @Name nvarchar(50);
DECLARE @LastName nvarchar(20);
SET @Name = N'Paul';
SET @LastName = N' Yamaguchi';
SELECT @Name;
SELECT @LastName;
SET @Name += @LastName;
SELECT @Name;

زمانی كه عمليات انجام شد، متغير سمت چپ دارای مقداری جديد خواهد بود:

آموزش SQL

يكی ديگر از كاربردهای عمل جمع مركب افزودن مقدار ثابت به متغير مورد نظر است. برای اين كار عملگر =+ را درج نموده، سپس مقدار ثابت را در سمت راست آن وارد نمایید.


DECLARE @FirstName nvarchar(50);
SET @FirstName = N'Paul';
SELECT @FirstName;
SET @FirstName += N' Motto';
SELECT @FirstName;

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


آموزش SQL

همچنين می توانيد اين عمليات را چندين بار تكرار كنيد. مثال بیشتر:


DECLARE @Name nvarchar(50);
DECLARE @MiddleName nvarchar(20);
DECLARE @LastName nvarchar(20);
SET @Name = N'Paul';
SET @MiddleName = N' Bertrand';
SET @LastName = N' Yamaguchi';
SET @Name += @MiddleName;
SELECT @Name;
SET @Name += @LastName;
SELECT @Name;

آموزش SQL

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


ديگر عمليات باینری یا دودویی

عملیات مرکب را می توان برای تمامی دیگر عملیات محاسباتی نیز اعمال و پیاده سازی کرد . همان طور كه در بالا مشاهده شد، عمليات جمع مركب برای رشته ها نيز امكان پذير است (در خصوص رشته ها منظور متصل کردن دو متن و نوشته به یکدیگر است). این نوع عملیات همچنين برای دستكاری بيت ها قابل استفاده است. به ياد داشته باشيد كه تمام نوع داده ها قابليت پشتیبانی از کلیه ی عمليات مركب را ندارند. در کل:
تمامی عملگرهای باینری محاسباتی از جمع، تفريق، ضرب، تقسيم و باقيمانده پشتيبانی می كنند. این عملگرها به ترتيب توسط نمادهای +=, -=, *=, /= و &= نمایش داده می شوند.
عمليات تنظيم بيت برای موارد زير قابل استفاده است:


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

DECLARE @Number int;
SET @Number = 215;
SET @Number &= 15;
SELECT @Number;

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


DECLARE @Number int;
SET @Number = 215;
SET @Number |= 15;
SELECT @Number;

3. بکار بردن عملگرxor يا ^=

DECLARE @Number int;
SET @Number = 215;
SET @Number ^= 15;
SELECT @Number;

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

  • 3857
  •    1146
  • تاریخ ارسال :   1394/11/09

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

ارسال

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

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