0

آموزش گام به گام SQL Server

 
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

آموزش گام به گام SQL Server

با سلام خدمت تمامی دوستان

من قصد دارم که SQL Server رو در چندین پست به دوستان آموزش بدم. منبع من برای این آموزش کتاب "برنامه نویسی بانک های اطلاعاتی" نوشته عباس صفای کفاش است.

دوستان هم اگر سوالی در مورد مطالب داشتند توی همین بخش مطرح کنند.

امیدوارم توی این کار موفق باشم.

 

با تشکر

موفق باشید

یک شنبه 19 تیر 1390  8:57 PM
تشکرات از این پست
ASKaffash
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام

 

  خب من اولین آموزش رو شروع می کنم :

 

 

مفاهیم پایه

 

  - RDBMS : در واقع RDBMS یا سیستم مدیریت بانک های اطلاعاتی رابطه ای (Relational Data Base Management System) موتوری است که وظیفه دریافت و  ذخیره سازی و برقراری ارتباطات بین Object های درون پایگاه داده را بعهده دارد.

 

  - DBA  :  بطور خلاصه شخصی است که وظیفه مدیریت سرویس دهنده پایگاه داده را بعهده دارد و معمولاً وظایفی نظیر مدیریت کاربران ، گروههای بانک اطلاعاتی ، مدیریت منابع قابل اشتراک ، تعیین مجوزها و مواردی مشابه را عهده دار است.

 

  - پایگاه داده : مجموعه ای از Object هایی نظیر جداول ، View ها ، انواع داده ها ، Trigger ها و غیره است که به وسیله RDBMS مدیریت می گردد .

 

 - View ها :  یک جدول مجازی است که می تواند ستونهای چند جدول را بطور همزمان با استفاده از روابط بین جداول به همراه داشته باشد و ازدیدگاه ساده سازی وامنیت از ویژگیهای باارزشی برخوردارند.

 

 

 

 

- ایندکس ها (Index) :  هر ایندکس در بانک اطلاعاتی ترتیب قرار گرفتن صعودی یا نزولی یک یا چند ستون را در یک جدول شامل می گردد و کاربرد عمده آن روش دسترسی سریع به اطلاعات می باشد و بهترین روش برای برقراری ارتباط بین PK و FK در چند جدول نیز محسوب می گردد.

 

  - (SP) Stored Procedures  : مجموعه ای از دستورات به زبان برنامه نویسی پایگاه داده می باشد و از نظر منطقی مشابه یک روتین در زبانهای برنامه نویسی متداول می باشد.

 

- (UDF) User Define Function :  مجموعه ای از دستورات به زبان برنامه نویسی پایگاه داده می باشندکه یک خروجی شامل یک داده یا یک جدول را ارائه می دهند و عملکرد آن از نظر منطقی بسیار مشابه توابع برنامه نویسی در زبانهای متداول است.

 

  - (ESP) Extended Stored Procedures :  این نوع از برنامه های قابل اجرا توسط پایگاه داده در واقع یک برنامه به زبان C و با نوع پروژه ESP در زبان C  است که قادرند توابع یا عملیاتی را برای پایگاه داده به اجرا درآورده و درصورت نیاز خروجی لازم را به پایگاه داده منعکس نمایند و یک فایل از نوع DLL می باشد در این حالت لازم است که درون پایگاه داده یک نوع ارتباط ESP به DLL ایجاد شده تعریف گردد.

 

- Trigger :  مجموعه ای از دستورات به زبان برنامه نویسی پایگاه داده می باشند که درصورتیکه یک Event از نوع اضافه ، حذف ، تصحیح ، ...  روی یک جدول پایگاه داده اتفاق افتد اجرا می گردد. شایان ذکر است که در استفاده از Trigger ها بعلت اینکه ممکن است در مواردی باعث ایجاد سربار گردد می بایستی دقت بیشتری بعمل آید.

 

 - ظرفیت پایگاه داده SQL Server 200X :  به منظور آشنائی بیشتر مناسب است یک برآورد از حجم محدودیت هائی که در یک پایگاه داده SQL Server 200X می تواند متصور باشد در ذیل ارائه می گردد.

 

 

موضوع محدودیت

 

میزان محدودیت

 

ملاحظات

 

اندازه سایز یک SP

 

طول یک رکورد اطلاعاتی دریافتی

 

تعداد ایندکس کلاستری در یک جدول

 

تعداد ایندکس غیرکلاستری در یک جدول

 

تعداد ستونهای انتخابی در هر ایندکس

 

تعداد فیلدهای درون یک PK یا FK

 

تعداد ستون های درون یک جدول

 

تعداد ستون قابل استخراج در دستور Select

 

تعداد ستون قابل ارائه در دستور Insert

 

سایز یک بانک اطلاعاتی

 

تعداد بانک اطلاعاتی درون یک Server

 

سطح پیشروی SP ها

 

سطح پیشرو Sub Query

 

تعداد Object های درون یک پایگاه داده

 

تعداد Trigger درون یک جدول

 

250 MB

 

8060 Byte

 

1

 

249

 

16

 

16

 

1024

 

4096

 

1024

 

یک میلیون ترابایت

 

32767

 

32

 

32

 

حدود 2 میلیارد

 

به میزان محدودیت Object ها

 

 

   

 

انشاالله در پست های بعدی به بحث برنامه نویسی در SQL می پردازیم.

موفق باشید.

یک شنبه 19 تیر 1390  9:09 PM
تشکرات از این پست
DR460N nedaee
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام مجدد

توی این قسمت قصد دارم برنامه نویسی در اس کیو ال رو شروع کنم :

 

- برنامه نویسی SQL Server :  اگر از برنامه نویسان باتجربه سئوال شود که چگونه می توان باسرعت و بادانستن یک زبان برنامه نویسی به زبان برنامه نویسی دیگر مهاجرت کرد احتمالاً یادگیری زبان        برنامه نویسی جدید را به شکل ذیل تقسیم بندی خواهند کرد:

1) روش تعریف و مقداردهی به داده ها در زبان برنامه نویسی

2) دستورات شرطی در زبان برنامه نویسی

3) حلقه های تکرار در زبان برنامه نویسی

4) توابع داخلی درون زبان برنامه نویسی

5) طراحی توابع خارجی (UDF) و سابروتین ها در زبان برنامه نویسی

6) سایر دستورات مهم و کاربردی در زبان برنامه نویسی

 

حال با این رویکرد یک برنامه نویس باتجربه خیلی سریعتر می تواند در یک مجموعه به دنبال سئوالات خویش باشد و این طبقه بندی مراحل یادگیری زبان را کوتاه خواهد کرد حال با این رویکرد مطالب در زبان برنامه نویسی SQL Server را ادامه میدهیم :

1 - انواع داده ها :  در هر زبان برنامه نویسی دانستن انواع مهم داده ها و محدودیت های هر نوع داده از اهمیت ویژه ای برخوردار است بدین منظور انواع داده ها یا انواع فیلدهای یک جدول اطلاعاتی به شرح جدول ذیل قابل استفاده می باشد شایان ذکر است که در این جدول مهمترین انواع داده های متداول که کاربرد وسیع تری دارد مدنظر قرار گرفته است.

 

نام داده

نوع

محدودیت 1

محدودیت 2

ملاحظات

bit

عددی / صحیح

1  و 0

 

 

TinyInt

عددی / صحیح

0

255

مناسب برای کد نسبت

SmallInt

عددی / صحیح

- 32768

+32767

مناسب برای کد واحد سازمانی

Int

عددی / صحیح

حدود منفی دو میلیارد

حدود مثبت دومیلیارد

مناسب برای فیلد شماره کارمندی

BigInt

عددی / صحیح

حدود عدد 18 رقمی منفی

حدود عدد 18 رقمی مثبت

مناسب برای فیلد مبلغ

Decimal

یا

Numeric

عددی / اعشاری

با طول ثابت

-1038   + 1

+1038   - 1

 

Float

عدد اعشاری بااعشار شناور

 10308× -1,79

 10308× +1,79

 

Real

عدد اعشاری بااعشار شناور

 1038× -3,4

 1038× +3,4

 

Char

رشته ای باطول ثابت

8000Byte

 

مناسب برای فیلد تاریخ شمسی

VarChar

رشته ای باطول متغیر

8000Byte

 

مناسب برای رشته های انگلیسی

Text

رشته ای باطول متغیر

2GB

 

مناسب برای رشته های انگلیسی

nChar

رشته ای باطول ثابت

*

با uc

4000Byte

 

 

nVarChar

رشته ای باطول متغیر با uc

4000Byte

 

بسیار مناسب برای فیلدهای فارسی مانند نام خانوادگی

nText

رشته ای باطول متغیر با uc

1GB

 

بسیار مناسب برای  متن های فارسی مثل متن نامه

 



نام داده

نوع

محدودیت 1

محدودیت 2

ملاحظات

Binary

باینری باطول ثابت

8000Byte

 

جهت ذخیره سازی فایل های باینری نظیر عکس ، فیلم ، متن، ... مناسب است ولی فضای بیشتری نسبت به Varbinary اشغال خواهد کرد.

Varbinary

باینری باطول متغیر

8000Byte

 

مناسب جهت ذخیره سازی فایل های binary نظیرفرمتPower Point , Excel Word ، تصاویرگرافیکی Tiff , Bmp ,Gif , …

Image

باینری با طول متغیر

2GB

 

مشابه Varbinary ولی با حجم خیلی مناسب تر

Table

-

-

-

برای تبادل بین توابع، SP ها مناسب است

Time Stamp

عددی

-

-

یک عدد منحصر به فرد در هر پایگاه که توسط پایگاه داده ایجاد می گردد

UniqueIde

ntifier

عددی

-

-

یک عدد منحصر به فرد در جدول که بطور اتوماتیک تولید می گردد

( به شکل سریالی )

 

- عملگرهای ریاضی ومنطقی: مشابه کلیه زبانهای برنامه نویسی زبان بانک اطلاعاتی SQL Server عملگرهائی برای انجام امور ریاضی و منطقی بهره می جوید که در جدول ذیل ارائه گردیده است:

 

سایر

عملگر ریاضی

عملگر منطقی

عملگر مقایسه ای

علامت

عملکرد

علامت

عملکرد

علامت

عملکرد

=

مساوی

IS

مقایسه شباهت

+

جمع

and

و

 >

کوچکتر

IN

وجود در یک مجموعه

-

تفریق

or

یا

=>

کوچکترمساوی

BetWeen

وجود در یک محدوده

*

ضرب

Not

نیست

بزرگتر

Like

وجود شباهت رشته ای

/

تقسیم

 

 

=<

بزرگترمساوی

 

 

%

باقیمانده تقسیم

 

 

<> 

مخالف

دوشنبه 20 تیر 1390  10:47 AM
تشکرات از این پست
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام دوباره

آموزش رو ادامه می دم :

- تعریف یک متغیر :  نامگذاری متغیرها در SQL Server مشابه همه زبانهای برنامه نویسی از ترکیب حروف انگلیسی و اعداد و برخی از کارکترها مشروط به اینکه نام متغیرها با اعداد شروع نشود را شامل    می گردد و براساس قالب ذیل قابل ارائه است و به منظور جلوگیری از شباهت نام فیلد و نام متغیر در SQL Server کلیه متغیرها با حرف @ معرفی می گردند.

] , … [  نوع متغیر                   نام متغیر  @ Declare

بعنوان مثال درصورتیکه قرار است متغیری در دامنه 0 تا 255  تعریف شود بدین گونه عمل می نمائیم.

  @x    TinyInt Declare

مقداردهی به متغیرها برخلاف زبانهای برنامه نویسی غیرپایگاه داده ای از کلمات کلیدی Set یا Select به شکل ذیل صورت می گیرد ولی پیشنهاد می گردد بعلت شباهت به دستور Select از کلمه Set استفاده گردد.

عبارت  =  نام متغیر@     Set

یا         

 [ , … ]عبارت  =  نام متغیر@     Select

 

بعنوان مثال داریم :

14  =   @x    Set

y @*+2  @x = @x     Set

 

2- دستورات شرطی :  دستورات شرطی در زبان SQL Server  به دستور If ، تابع Case محدود     می گردد قبل از تشریح هریک از دستورات فوق می بایستی مفهوم بلوک دستورات در زبان              SQL Server  تشریح گردد که به شکل ذیل یک بلاک دستورات ایجاد می گردد.

Begin

دستورات

End

 

و درصورتیکه تعداد دستورات یک بلاک تنها شامل یک دستور باشد از نوشتن کلمات Begin و End می بایستی صرف نظر گردد. با این توضیحات شکل کلی دستور شرطی If به شکل ذیل خواهد بود :

     عبارت شرطی      IF

           

بلوک          یا       دستور

 

[

ELSE                            

بلوک               یا       دستور

[

 

همانطور که از ظاهر دستور مشاهده می گردد در صورتیکه عبارت شرطی صحیح باشد دستورات بخش A و در غیراینصورت دستورات بخش B  اجرا خواهد شد و در صورتیکه نیازی به ساختار ELSE  نباشد  می توان از این بخش صرف نظر نمود ، حال براساس توضیحات قبل هر بلوک درصورت نیاز می بایستی در محدوده یک Begin و End محصور گردد. بعنوان مثال داریم:

 

Declare    @x   Int  , @y  Int

Set   @x= 200

Set   @y= 300 - @x

IF    @x > @y

Set   @y = @x + 2

ELSE  Begin

Set   @y = @x + 3

Set   @x = @x + 1

END

در این قطعه برنامه چون در بخش ELSE بیش از یک دستور بکار رفته است بنابراین از بلاکBegin ، End استفاده شده است.

در قسمت بعد دستور Case  رو معرفی می کنم.

موفق باشید

دوشنبه 20 تیر 1390  12:56 PM
تشکرات از این پست
DR460N
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام مجدد :

امیدوارم تا اینجا مطالب مفید بوده باشه.

خب بریم سراغ ادامه مطالب :

 

- ساختار Case  :  باتوجه به اینکه ساختار Case یک مقدار بازگشتی ارائه می دهد. بنابراین می توان گفت که ساختارCase عملکرد تابعی دارد و در دو شکل کلی ذیل قابل ارائه است.

اختلاف ظاهری دو ساختار نشان می دهد که ساختار 2  قدرتمندتر از ساختار 1  است چون بنحوی ساختار 1  را در خود جای می دهد برای درک بیشتر به مثال های ذیل دقت کنید:

 

Declare    @x  Int

Set    @x = ( Case  @y

When  1  Then 102

When  2  Then 203

When  3  Then 304

ELSE              1000

END)

 

دقت گردد که چون ساختارCase عملکرد تابعی دارد و مقداری را باز می گرداند بنابراین از علامت (  ) مناسب است استفاده گردد. حال اگر این قطعه برنامه با ساختار 2  ایجاد گردد خواهیم داشت:

 

Declare   @x  Int

Set   @x = ( Case  

When  @y=1  Then  102

When  @y=2  Then  203

When  @y=3  Then  304

ELSE                       1000

   END) 


 


باتوجه به اینکه ساختار 2  ازعبارت شرطی بهره می جوید قدرتمندی بیشتری را ارائه می دهد بعنوان مثال:

 

Declare    @x  Int

Set   @x =  Case   When  @y BetWeen 2 and 10 Then 300

When  @y=15  or  @y=17      Then 310

When  @y=18  or  @y>=20    Then 320

When  @y+@z < = 30            Then 330

When   Not  @z < = 40           Then @z

ELSE   @y    END

 

بعدها خواهید دید که در دستوراتی نظیر Select   استفاده از Case در مواردی بسیار مفید واقع خواهد شد.

مسئله ) در قطعه برنامه ذیل نوع داده های A تا G را تعیین کنید:

 

Set   @A =  Case   

When  @B    Then 10

When  @C=0    Then @D

When  @D=@E   Then Len (@F)

When  @F=@G    Then 20

END

 

در پست بعدی در مورد حلقه های تکرار بحث می کنیم.
سه شنبه 21 تیر 1390  1:48 PM
تشکرات از این پست
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام بر همه

در این پست می خوام در مورد حلقه های تکرار بگم :

 

3 - حلقه های تکرار :  به منظور پیاده سازی ساختار حلقه تکرار در پایگاه داده SQL Server تنها از حلقه While استفاده می گردد که در دو شکل ذیل قابل پیاده سازی است:

 

در شکل ساختار 2  تا زمانیکه عبارت شرطی درست باشد تک دستور اجرا می گردد. ولی در ساختار پیچیده تر 1  کلیه دستورات بلاک END , Begin  درصورت صحیح بودن عبارت شرطی اجرا خواهند شد وکلمه کلیدی Break جهت قطع حلقه وContinue حرکت به سمت ابتدای حلقه تکرار خواهد بود.

بعنوان مثال:

Declare   @x   Int , @y   BigInt

Set   @x = 0

Set   @y = 1

While  @x < 10   Begin

Set   @x = @x + 1

Set   @y = @y * @x

END

 

و یا در مثال ذیل از دستور Break  استفاده گردیده است.

Declare   @x   Int , @y   BigInt

Set   @x = 0

Set   @y = 1

While   1=1    Begin

Set  @x = @x + 1

IF  @x>= 10  Break

Set  @y = @y * @x

END

 

پست بعدی در مورد توابع داخلی اس کیو ال خواهد بود. همچنان با ما همراه باشید.

سه شنبه 21 تیر 1390  1:50 PM
تشکرات از این پست
DR460N
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام

خب بریم سراغ ادامه مطالب :

 

4 - توابع داخلی : در هرزبان برنامه نویسی آشنائی با توابع داخلی مهم زبان از اهمیت ویژه ای برخوردار است ، دانستن پارامترهای ورودی و عملکرد خروجی تابع داخلی قابلیت برنامه نویسی را افزایش داده و باعث طراحی نرم افزارهای بسیار پیچیده تر خواهد شد بدین منظور تعدادی از توابع داخلی مهم در    SQL Server  تشریح می گردد.

 

-  Left : این تابع تعدادی کارکتر از سمت چپ یک رشته استخراج می نماید و در شکل کلی ذیل بکار می رود.

pic3.png

- Right : این تابع تعدادی کارکتر از سمت راست یک رشته استخراج می نماید و در شکل کلی ذیل بکار می رود.

pic4.png

- SubString : این تابع تعدادی کارکتر از نقطه ای از یک رشته را استخراج می کند و در شکل کلی ذیل بکار می رود.

pic5.png

 

در این تابع درصورتیکه پارامتر تعداد ذکر نگردد از نقطه شروع تا انتهای رشته فرآیند استخراج زیر رشته صورت می پذیرد. بعنوان مثال در دستور ذیل مقدار ذخیره شده در متغیر x  رشته Ali  خواهد بود.

 

Set   @x = Left (´And´, 1) + SubString (´Hello´ , 3 , 1 ) + Left (´in´ , 1 )

 

 

-  تابع LTrim :  این تابع فضاهای خالی از سمت چپ یک رشته را حذف می کند و در شکل کلی ذیل بکار می رود:

pic6.png

-  تابع RTrim :  این تابع فضای خالی از سمت راست یک رشته را حذف می کند و در شکل کلی ذیل بکار می رود:

pic7.png

بعنوان مثال در دستور ذیل کلیه فضاهای خالی دو طرف رشته حذف خواهند شد :

 

Set   @x = LTrim (RTrim (´ Hello ´ )

 

 

-  تابع Upper :  این تابع حروف یک رشته را به حروف بزرگ تبدیل خواهد کرد و به شکل کلی ذیل بکار می رود.

pic8.png

-  تابع Lower :  این تابع حروف یک رشته را به حروف کوچک تبدیل خواهد کرد و به شکل کلی ذیل بکار می رود.

pic9.png

-  تابع Len :  این تابع تعداد کاراکترهای یک رشته را محاسبه می کند و در شکل کلی ذیل بکار       می رود.

pic10.png

مثال : برنامه ای بنویسید که یک رشته را معکوس نماید.

 

Declare   @x  VarChar (50) , @C  TinyInt , @y VarChar (50)

Set   @x = ´Hello´

Set   @y = ´´

Set   @C = 0

While   @C < Len (@x)  Begin

Set   @C = @C + 1

Set   @y = SubString (@x , @C , 1) + @y

END

 

خب دوستان, تا اینجای مطلب رو داشته باشین تا در قسمت های بعدی ادامه توابع داخلی رو بگم.

موفق باشید

سه شنبه 21 تیر 1390  1:59 PM
تشکرات از این پست
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام

خب ادامه توابع داخلی :

 

-  تابع Char :  این تابع کاراکتر موردنظر را باتوجه به کد اسکی آن باز می گرداند و به شکل ذیل بکار می رود.

pic11.png

- تابع Reverse :  این تابع یک رشته را معکوس می کند و در شکل کلی ذیل بکار می رود.

pic12.png

- تابع Replace :  این تابع یک مجموعه رشته ای را کاراکتر به کاراکتر ترجمه می کند و در شکل کلی ذیل بکار می رود.

pic13.png

بعنوان مثال داریم :

Set   @x = Replace (´Hello´,´ale´,´xyz´)

 

که در نتیجه حروف ale نظیر به نظیر به حروف xyz تبدیل خواهند شد ومتغیر x شامل رشته´Hzyyo´ خواهد بود.

 

- تابع Space :  این تابع به اندازه اعلام شده فضای خالی ایجاد خواهد کرد و در شکل کلی ذیل بکار می رود.

pic14.png

- تابعUser-name : این تابع به شکل(  )User-name نام کاربری که هم اکنون بهSQL Server متصل شده است را باز می گرداند.

 

- تابع ABS :  این تابع قدر مطلق یک عدد را تعیین می کند و معادل  |x|در ریاضی است: (عدد) ABS

 

 

- تابعFloor: این تابع جزء صحیح یک عدد را تعیین می کند ومعادل[x] درریاضی است:(عدد) Floor

 

 

- تابع Power :  درپایگاه داده SQL Server عملگری برای توان وجود ندارد و می بایستی با استفاده از تابع Power به شکل ذیل استفاده گردد.

pic15.png

- تابع Sqrt :  درصورتیکه درنظر باشد ریشه دوم یک عدد مثبت حاصل شود از تابع Sqrt به شکل ذیل استفاده می گردد.

pic16.png

- تابع Isnull :  این تابع بسیار مفید اعتبارسنجی لازم جهت Null بودن یک مقدار را بعهده دارد و به شکل کلی ذیل بکار می رود.

 

با ادامه توابع داخلی در پست بعد با ما همراه باشید.

سه شنبه 21 تیر 1390  2:02 PM
تشکرات از این پست
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام

خب ادامه توابع داخلی :

 

-  تابع Char :  این تابع کاراکتر موردنظر را باتوجه به کد اسکی آن باز می گرداند و به شکل ذیل بکار می رود.

pic11.png

- تابع Reverse :  این تابع یک رشته را معکوس می کند و در شکل کلی ذیل بکار می رود.

pic12.png

- تابع Replace :  این تابع یک مجموعه رشته ای را کاراکتر به کاراکتر ترجمه می کند و در شکل کلی ذیل بکار می رود.

pic13.png

بعنوان مثال داریم :

Set   @x = Replace (´Hello´,´ale´,´xyz´)

 

که در نتیجه حروف ale نظیر به نظیر به حروف xyz تبدیل خواهند شد ومتغیر x شامل رشته´Hzyyo´ خواهد بود.

 

- تابع Space :  این تابع به اندازه اعلام شده فضای خالی ایجاد خواهد کرد و در شکل کلی ذیل بکار می رود.

pic14.png

- تابعUser-name : این تابع به شکل(  )User-name نام کاربری که هم اکنون بهSQL Server متصل شده است را باز می گرداند.

 

- تابع ABS :  این تابع قدر مطلق یک عدد را تعیین می کند و معادل  |x|در ریاضی است: (عدد) ABS

 

 

- تابعFloor: این تابع جزء صحیح یک عدد را تعیین می کند ومعادل[x] درریاضی است:(عدد) Floor

 

 

- تابع Power :  درپایگاه داده SQL Server عملگری برای توان وجود ندارد و می بایستی با استفاده از تابع Power به شکل ذیل استفاده گردد.

pic15.png

- تابع Sqrt :  درصورتیکه درنظر باشد ریشه دوم یک عدد مثبت حاصل شود از تابع Sqrt به شکل ذیل استفاده می گردد.

pic16.png

- تابع Isnull :  این تابع بسیار مفید اعتبارسنجی لازم جهت Null بودن یک مقدار را بعهده دارد و به شکل کلی ذیل بکار می رود.

 

pic17.png

بعنوان مثال داریم :

Set   @x = Isnull (@y,0)             

 

 

در این حالت درصورتیکه متغیر y مقدار Null را داشته باشد مقدار x صفر خواهد بود درغیراینصورت مقادیر x و y مساوی خواهند شد.

 

با ادامه توابع داخلی در پست بعد با ما همراه باشید.

سه شنبه 21 تیر 1390  2:02 PM
تشکرات از این پست
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام

خب ادامه توابع داخلی :

- تابع GetDate :  این تابع تاریخ و ساعت جاری Server  را باز می گرداند.

 

- تابع Convert :  به منظور تبدیل انواع داده ها به یکدیگر از این تابع تحت شرایط خاصی استفاده می گردد که قالب کلی آن به شکل ذیل خواهد بود.

pic18.png

بعنوان مثال خواهیم داشت:

Set   @x = Convert (VarChar (10) , @y )

 

که در این دستور متغیر @y به یک نوع داده ای کاراکتری بدون Unicode و حداکثر طول 10 بایت تبدیل شده و در متغیر x جانشین می گردد.

 

- تابع CharIndex :  از این تابع بسیار مفید به منظور تعیین مختصات قرار گرفتن یک رشته فرعی در یک رشته اصلی استفاده می گردد که در شکل کلی ذیل قابل ارائه می باشد.

pic19.png

به مثال ذیل دقت کنید:

IF   CharIndex (@x , @y) < > 0

                        Set   @z = ´Ok´

ELSE

Set    @z = ´Not´

 

به امید خداوند در قسمت بعد به بحث توابع خارجی می پردازیم.

موفق باشید

سه شنبه 21 تیر 1390  2:03 PM
تشکرات از این پست
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام

دوستان اگه تا اینجا نظر و یا سوالی دارند بفرمایند. خوب نیست که همه پست ها رو من بزنم.

موفق باشید

سه شنبه 21 تیر 1390  2:05 PM
تشکرات از این پست
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام دوباره

امیدوارم تا اینجای مطالب برای دوستان مفید بوده باشه.

میریم سراغ ادامه مباحث :

5 - طراحی توابع خارجی و سابروتین :

 

- طراحی (SP) Stored Procedure :  یک SP در واقع یک برنامه درون پایگاه داده است که از مجموعه ای از دستورات تشکیل شده است و می تواند مقدار یا جدولی را به برنامه صداکننده انتقال دهد و در شکل کلی ذیل قابل پیاده سازی است:

نام Create    Proc[edure]             SP

[

] پیش فرض =[ نوع پارامتر 1    [AS]     پارامتر 1

] ] پیش فرض =[ نوع پارامتر 2   [AS]     پارامتر 2, [

]

      AS                    ]

--دستورات

 

همانطور که مشاهده می گردد هر SP با یک نام منحصر به فرد قابل تعریف است و درصورتیکه این برنامه تعدادی ورودی داشته باشد می بایستی در ابتدای SP تعیین گردد و اگر قرار است درصورت عدم ارائه پارامتر مقدار پیش فرض به برنامه انتقال یابد می توانید از مقدار پیش فرض هر پارامتر استفاده نمائید پس از کلمه کلید AS کلید دستورات قابل اجرا خواهند بود. 

 

- دستور ساده Select :  دستور ساده Select  قادر است مقداری را بازگرداند و به شکل ذیل بکار   می رود.

 ]...  عبارت 2 , [  عبارت 1      Select

بعنوان مثال خواهیم داشت :

Select    2*Len (´Hello´) + 1

 

 

که در این حالت مقداد عدد 11  به برنامه اصلی باز خواهد گشت.

 

- روش اجرای SP :  پس از طراحی هر SP  نیاز است که SP  طراحی شده اجرا گردد و به اشکال ذیل یک SP  اجرا خواهد شد.

(پارامترهای sp در صورت وجود)    نام SP

 

(پارامترهای  SP در صورت وجود)    نام SP     EXEC [ute]

 

مثال : برنامه ای بنویسید که یک رشته ساعت با ساختار hh:mm:ss   را به ثانیه تبدیل نماید.

 

Create   Proc    Time2Val

@T    Char(8)

AS

Declare   @h   TinyInt , @m  TinyInt , @s  TinyInt

Set    @h = Convert (TinyInt , SubString (@T,1,2))

Set    @m = Convert (TinyInt , SubString (@T,4,2))

Set    @s = Convert (TinyInt , SubString (@T,7,2))

Select    @h*3600 + @m*60 + @s

 

درمبحث به توابع تعریف شده توسط کاربر می پردازیم.

موفق باشید

چهارشنبه 22 تیر 1390  1:48 PM
تشکرات از این پست
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام

 

- طراحی(UDF) User Define Function  :  یکی از قابلیت های پایگاه داده SQL Server  ایجاد UDF است که کاربران قادرند متناسب با نیاز در هر پروژه به طراحی آن اقدام نمایند و دارای شکل کلی ذیل می باشد.

هرUDF  طراحی شده بعنوان یک تابع در کلیه دستورات SQL  قابل استفاده است از طرفی درصورتیکه از EXECute  استفاده گردد هر UDF  می تواند مانند یک SP  اجرا گردد همچنین در یک تابع UDF  خروجی می تواند بصورت یک جدول باشد در این حالت از کلمه Table  به جای نوع مقدار برگشتی استفاده خواهد شد و مقدار بازگشتی یک دستور Select  خواهد بود که در مقابل دستور Return  بکار خواهد رفت و تعداد پارامترهای تعریف شده در هر UDF  حداکثر 1024  عدد خواهد بود و مشابه SP  درصورتیکه پارامتر موردنظر ارائه نگردد پیش فرض بعنوان مقدار ورودی پارامتر مدنظر قرار خواهد گرفت نکته قابل ذکر در این خصوص به شرح ذیل می باشد:

 

- درهنگام اجرای یک تابع نام Owner می بایستی ذکر گردد بعنوان مثال ( dbo )

- تعدادی از دستورات درون طراحی UDF قابل اجرا نمی باشند.

- از (ESP) Extended Stored Procedure   درون تابع می توانید استفاده نمائید.

مثال : تابعی بنویسید که فاکتوریل یک عدد را محاسبه کند.

Create    Function    Fact  (@n  TinyInt)

Returns    BigInt

AS

Begin

Declare   @RtnValue   BigInt

IF   @n = 0  or  @n = 1

Set   @RtnValue = 1

ELSE

Set   @RtnValue = dbo.Fact (@n – 1) *@n

Return   @RtnValue

END

حال  فرض کنید که قرار است تابع فوق در یک برنامه استفاده گردد و قرار باشد سری  محاسبه گردد بدین منظور به شکل ذیل عمل خواهیم نمود:

 

Declare   @S   BigInt , @C   TinyInt

Set    @S = 0

Set    @C = 0

While    @C < 10    Begin

Set   @C = @ C + 1

Set   @S = @ S + dbo.Fact (@C )

END

Select   @S

 

خب دوستان تا اینجا توابع به پایان رسید. در بحث بعدی سایر دستورات کاربردی در اس کیو ال رو بررسی می کنیم.

موفق باشید

چهارشنبه 22 تیر 1390  1:50 PM
تشکرات از این پست
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام

به بحث سایر دستورات کاربردی در اس کیو ال می پردازیم :

6 - سایر دستورات کاربردی :

 

- دستور Goto :  مشابه اکثریت زبانهای برنامه نویسی این دستور ادامه برنامه را به نقطه ای دیگر که دستور Goto تعیین می کند انتقال می دهد و در شکل ذیل ارائه می گردد:

نام برچسب          Goto

 

و نام برچسب تابع قانون نامگذاری متغیرهاست و نقطه ای که برچسب شروع می گردد با نام برچسب و علامت : معرفی می گردد. بعنوان مثال:

IF    @x>0    Goto   Endof

ELSE

Set   @y = @y + 1

Set   @x = ABS (@x)

Endof:

- دستورReturn  :  این دستور ادامه اجرای یک SP  را پایان می دهد و به برنامه اصلی بازگشت             می نماید.

 

- دستور EXEC[ute]  :  درصورتیکه درنظر است دستوری در SQL Server  اجرا گردد در دو حالت با استفاده از EXEC[ute]  عمل انجام خواهد شد.

ساختارهای اول و دوم :

   ( متغیر رشته ای ) EXEC[ute]                                                دستور   EXEC[ute]

در ساختار 1 دستور اعلام شده توسط SQL Server  اجرا خواهد شد درصورتیکه در ساختار 2  عبارت رشته ای که می تواند کاملاً متغیر باشد توسط دستور EXEC[ute]  اجرا می گردد که قابلیت فوق العاده ای را ایجاد خواهد کرد بدین منظور به مثال های ذیل توجه فرمائید.

 

مثال : مقدار "12:13:14" را با استفاده از تابع Time2Val  حساب کنید.

 

(EXEC   dbo.Time2Val (´12:13:14´

 

مثال : با استفاده از دستور EXEC[ute]  مقدار  دو متغیر را جمع کنید:

 

Declare   @x  Int , @y  Int , @S   VarChar (4000)

Set    @x = 10

Set    @y = 20

Set    @S=´Select´+ Convert (VarChar (10),@x) +´+´+ Convert (VarChar(10),@y)

EXEC (@S)

 

 

 

همانطور که مشاهده می گردد مقدار بازگشتی عدد 30   خواهد بود بدون اینکه از دستور Select  بصورت مستقیم استفاده شده باشد.

با ادامه مطلب در مورد سایر دستورات کاربردی با ما همراه باشید.

موفق باشید

چهارشنبه 22 تیر 1390  1:51 PM
تشکرات از این پست
cryingsphere
cryingsphere
کاربر نقره ای
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 375
محل سکونت : خراسان رضوی

پاسخ به:آموزش گام به گام SQL Server

سلام مجدد

 

ادامه دستورات :

- دستورBegin Trans[Action]  :  درصورتیکه قرار است عملیات حساسی روی پایگاه داده به خصوصی در زمان ذخیره سازی اطلاعات صورت گیرد استفاده از TransAction باعث می گردد که حاشیه اطمینان به %100  افزایش یابد و عملیاتی نظیر قطع ناگهانی برق و یا سایر موارد باعث تخریب عملیات نگردد ( نظیر عملیات حساب بانکی ) در این حالت با اعلام Begin  TransAction   به Server  اعلام می گردد که شروع فرآیند حساس آغاز گردیده است.

 

- دستور Commit [Trans[Action]] :  درصورتیکه کلیه فرآیندهای موردنظر در یک زیر برنامه با موفقیت صورت پذیرد با استفاده از Commit TransAction  می توان انتقال اطلاعات را به پایگاه داده با حاشیه اطمینان کامل صادر نمود.

 

- دستور RollBack [Trans[Action]] :  درصورتیکه در هر مرحله پس از صدور            Begin TransAction  به دلایلی تصمیم به انصراف از عملیات انجام شده مدنظر باشد با استفاده از RollBack TransAction  کلیه فرامین ارسال اطلاعات به پایگاه داده پس از دستور                 Begin TransAction  ابطال خواهد شد.

 

- دستور Use :  با استفاده از این دستور یک بانک اطلاعاتی جهت انجام عملیات بعدی فعال می گردد و به شکل ذیل مورد استفاده قرار می گیرد.

 

نام پایگاه داده  Use 

 

-  مسئله ) تابعی بنویسید که سری ذیل را محاسبه کند ( n = 20 )

 

 

 

-  مسئله ) تابعی بنویسید که مقدار ماکزیمم دو عدد را محاسبه کند.

 

 

-  مسئله ) تابعی بنویسید که یک عدد صحیح را به ساختار hh:mm:ss  تبدیل نماید.

 

خب دوستان خسته نباشید. تا این جا فصل اول در مورد دستورات برنامه نویسی به پایان رسید.

به امید خدا در ادامه فصل دوم را با عنوان دستورات تبادل اطلاعات با بانک اطلاعاتی شروع خواهیم کرد.

با همراه باشید

موفق باشید

چهارشنبه 22 تیر 1390  1:52 PM
تشکرات از این پست
دسترسی سریع به انجمن ها