یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای...

26
1 ی ل عا ت ه م بس وع ض و م: وزش م آ ی ت قدما م ه فت ر ش پیserver sql آورنده رد گ ی گ د ا و نم خا م و ی یم ر لک بد ا ع هدی م: تان مس ز95

Upload: others

Post on 23-Sep-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

1

بسمه تعالی

پیشرفته ات مقدماتی آموزش: موضوعserver sql

: مهدی عبد الکریمی انم و انم خانوادگی گرد آورنده

95زمستان

Page 2: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

2

فهرست مطالب

Table _____________________________________________________________ 4

Field ______________________________________________________________ 5

Record ____________________________________________________________ 6

SQL ______________________________________________________________ 6

SQL _________________________________________________________ 7 یایمزا

8 _______________________________________________________ (SQL) خچهیتار

9 _________________________________________ ؟ داد انجام توانیم ییها کار چه SQL با

SQL ________________________________________________ 10 در ریمتغ و داده انواع

sql _________________________________________________ 14 در SELECT دستور

sql _________________________________________ 15 در SELECT DISTINCT دستور

sql _____________________________________________ 15 در WHERE یشرط دستور

SQL _____________________________________________ 16 در Or و And یها عملگر

sql _________________________________________________ 17 در Order By دستور

Order By _________________________________________________ 17 دستور ساختار

sql _________________________________________________ 17 در Group By دستور

sql ______________________________________________ 18 در Having یشرط دستور

19 _________________________________________________ والیاسک در Insert دستور

sql ___________________________________________________ 20 در Update دستور

20 ________________________________________________ والیاسک در Delete دستور

Delete * ______________________________________________________ 21 دستور

sql ___________________________________________________ 21 شرفتهیپ دستورات

Page 3: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

3

Database یا دیتابیس یا پایگاه داده یا بانک اطالعاتی

می گفته به مجموعه ای از اطالعات با ساختار منظم (database) بانک اطالعاتی یا پایگاه داده یا دیتابیس

دسترسی قابل و خواندن قابل ها رایانه و ها دستگاه برای که قالبی در معموالً اطالعاتی های پایگاه این .شود

.شوند می ذخیره باشند

های پویا در شبکه جهانی وب نیاز به یک پایگاه داده طراحی وب سایت با گسترش چیست ؟ SQL پایگاه داده

یندفرا یک ها داده پایگاه مدیریت. میشد احساس بزرگ برای مدیریت محتوا (database) و بانک اطالعاتی

پایگاه .این نیاز برطرف شده است SQL پیچیده است ، که به طور قابل توجهی با برنامه و زبان برنامه نویسی

داده در اصل مجموعه ای سازمان یافته از اطالعات است. این واژه از دانش رایانه سرچشمه می گیرد ،اما کاربر

ز اروپایی پایگاه داده )که تعاریف خردمندانه ای وسیع و عمومی نیز دارد، این وسعت به اندازه ای است که مرک

برای پایگاه داده ایجاد می کند( شامل تعاریف غیر الکترونیکی برای پایگاه داده می باشد. در این نوشتار به

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

ذخیره شده در رایانه با یک روش یک تعریف ممکن این است که: پایگاه داده مجموعه ای از رکورد های

سیستماتیک )اصولی( مثل یک برنامه رایانه ای است که می تواند به سواالت کاربر پاسخ دهد. برای ذخیره و

.بازیابی بهتر، هر رکورد معموال به صورت مجموعه ای از اجزای داده ای یا رویداد ها سازماندهی می گردد

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

رایانه ای که برای مدیریت و پرسش و پاسخ بین پایگاه های داده ای استفاده می شود را مدیر سیستم پایگاه

عات می نامیم. خصوصیات و طراحی سیستم های پایگاه داده ای در علم اطال (DBMS) داده ای یا به اختصار

.مطالعه می شود

نوعا .مفهوم اصلی پایگاه داده این است که پایگاه داده مجموعه ای از رکورد ها یا تکه هایی از یک شناخت است

موجودیت های نگه داری شده در پایگاه داده وجود دارد: این در یک پایگاه داده توصیف ساخت یافته ای برای

د. مدل توصیفی، اشیا پایگاه های داده و ارتباط بین آنها را نشان می توصیف با یک الگو یا مدل شناخته می شو

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

یف رپرکاربرد ترین مدلی که امروزه بسیار استفاده می شود، مدل رابطه ای است که به طور عام به صورت زیر تع

می شود: نمایش تمام اطالعاتی که به فرم جداول مرتبط که هریک از سطر ها و ستونها تشکیل شده

است)تعریف حقیقی آن در علم ریاضیات برسی می شود(. در این مدل وابستگی ها به کمک مقادیر مشترک در

شبکه ای به طور بیش از یک جدول نشان داده می شود. مدل های دیگری مثل مدل سلسله مراتب و مدل

.صریح تری ارتباط ها را نشان می دهند

Page 4: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

4

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

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

.ستفاده می کنندای یکتا ا

ها بر اساس مدل هایی که استفاده می کنند تقسیم بندی می شوند: ارتباطی،شی گرا، شبکه DBMS معموال

ای و امثال آن. مدل های داده ای به تعیین زبانهای دسترسی به پایگاه های داده عالقه مند هستند. بخش قابل

به فاکتور هایی همچون اجرا، همزمانی،جامعیت و مستقل از مدل های می باشد و DBMS توجهی از مهندسی

هر .بازیافت از خطاهای سخت افزاری وابسطه است.در این سطح تفاوت های بسیاری بین محصوالت وجود دارد

database در اسکیوال از قسمتهای مختلفی تشکیل شده است،این بخشها شامل موارد زیر است :

Table

View

Stored procedre

Function

و ...

Table

ها ذخیره table داده ها در دیتابیس یا پایگاه داده داخل جدول یا، در پایگاه داده ها ( table ) جدول

باشد .هر جدول از تعدادی سطر و ستون تشکیل شده table میتواند شامل چندین database میشوند. هر

برای تمام ستون ها در دیتابیس بسته به نوع کارکرد آن میتوانید نوع مورد نظر خود را تعریف کنید ، .است

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

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

مهمترین عناصر سیستم های پایگاه داده هستند ، که برای ذخیره و نگهداری سازمان یافته اطالعات مورد

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

ای هستید. برای مثال، اگر سازی انواع مختلف داده ها شما نیازمند ایجاد جداول جداگانهبرای ذخیره : مثال

:اول زیر باشدشما یک نرم افزار مدیریت مدرسه دارید، ممکن است نیاز به ایجاد جد

برای ذخیره لیستی از تمام اعضای دانش آموزان - دانش آموزان

ذخیره لیستی از تمام معلمان - معلمان

برای پیگیری حضور همه دانش آموزان - حضور و غیاب

MarkList - نبرای ذخیره لیست عالمت همه دانش آموزا

Page 5: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

5

Field

می گویند . هر فیلد یکی از خصوصیات آن ( Field ) فیلد به هر یک از خانه های ستون یک جدول

. موجودیت را به همراه مقدار آن مشخص می کند

: اصلی استجزء 2هر فیلد در بر گیرنده یک صفت و ویژگی برای موجودیت می باشد ، که دارای

در... و اسم صفت خاصه : نام صفت مورد نظر را تعیین می کند . برای مثال فیلد نام ، نام خانوادگی ، -1

.شخص به مربوط اطالعات جدول

به "سعید "مقدار صفت خاصه : در برگیرنده مقدار برای صفت مورد نظر است . برای مثال مقدار -2

. عنوان مقدار برای فیلد نام

فیلد نشانه یک ستون در جدول است. یک رکورد مجموعه ای از فیلدها است. تمام رکوردها در همان جدول یک

.همان فیلدها راخواهند داشت

داشته باشید، ممکن است زمینه های زیر ”Students“ اگر شما یک جدول با نام : مثال درباره فیلد ها

:مورد نیاز باشند

: Name خانوادگی دانش آموز برای ذخیره نام و نام

: Address برای ذخیره آدرس

DateofBirth :برای ذخیره تاریخ تولد دانش آموز

RegistrationDate : برای ذخیره تاریخ ثبت نام دانش آموز

… و

اگر شما فیلدی را به جدول اضافه کنید، این فیلد به تمام رکوردهای موجود آن جدول اضافه خواهد شد. در

.فیلد را خواهند داشت 4همان Students ، تمامی رکوردهای جدول درمثال فوق

Page 6: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

6

Record

جموعه ای از گفته میشود. هر رکورد م ( Record ) رکورد به سطرهای یک جدولرکورد در پایگاه داده

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

موجودیت پدیده ، شی یا فردی در محیط پایگاه داده است که می خواهیم اطالعات مربوط به آن را : موجودیت

. نگهداری کنیم

: دانشجو ، کالس ، مثال : به طور مثال در محیط پایگاه داده یک محیط آموزشی، انواع موجودیت ها عبارتند از

.... واحدهای درسی ، استاد ، دانشکده و

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

برای ذخیره اطالعات دانش آموزان داشته باشید، ”Students“ اگر شما جدول : مثال از رکورد در پایگاه داده

نشان دهنده یک دانش آموز خواهد بود. برای اضافه کردن دانش آموز به برنامه، باید رکورد در این جدول یک

اضافه کنید. برای پاک کردن یا ویرایش اطالعات دانش آموز هم باید شما ”Students“ یک رکورد به جدول

.یک رکورد را از این جدول حذف کنید

SQL

زبانی ( SQL –Structured Query Language( ها یاپرسشها، زبان ساختارمند ای دادهدر مدل رابطه

ها و نیز ای که برای ایجاد، تغییر، و بازیابی دادهاست سطح باال مبتنی بر زبان سطح پایین و ریاضی جبر رابطه

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

.ای نیز پیشرفت کرده استرابطه -گرا به سمت مدل شی SQL زبان

ISO و 1986را در سال ANSI (American National Standards Institute) کوال استانداردسی

(International Organization for Standardization) اتخاذ نمود. استانداردهای 1987را در سال

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

87-کیوالاس

89-کیوالاس

92-کیوالاس

1999کیوال:اس

200۳کیوال:اس

Page 7: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

7

2005کیوال:اس

2008کیوال:اس

و ... 2011کیوال:اس

المللی بوده، و در نتیجه، از آنها شبیه بقیه زبانهای تحت استاندارد بین یوالکزبان اس بسیاری از اصطالحات

ای( از شرکت مدل رویه) SQL PL و Sybase یا PL/SQL 2 استاندارد مثل محصوالت شرکت اوراکل

.باشدام میبیآی

است. ای( طراحی شدهابطههای رها در پایگاه دادهکیوال برای کارهای ویژه و محدودی )گزارش گیری از دادهاس

زبانی بر پایه اعالن SQLبر خالف زبانهای دستوری مثل بیسیک یا سی که برای حل مسائل طراحی شده،

به دنبال کامل کردن زبان به هدف ایجاد زبان برنامه نویسی با PL/SQL ای مثلاست. زبانهای توسعه یافته

است که به کدهای زبان برنامه نویسی اجازه دسترسی به باشد. شیوه دیگر کار این می SQL هایحفظ مزیت

دهد که درون به توابعش اجازه می PostgreSQL داده شود مثالً SQL پایگاه داده به کمک دستورات

است، نه نه ساخت یافته SQL شود کهنوشته شوند. گاهی به شوخی گفته می C و Perl ،Tcl کدهای

!یک زبان نیستها و اصالً محدود به گزارش گیری

SQL مزایای

SQL بر پایه زبان پرس و جو ساخت یافته میباشد

SQL به شما اجازه دستیابی و کنترل داده ها را می دهد

SQL یک استاندارد) ANSI میباشد )انجمن استاندارد ملی آمریکا.

SQL میتواند درخواستهای پیوسته یک پایگاه داده را اجرا کند

SQL ره اطالعات را از پایگاه داده پس بگیردمتواند دوبا

SQL میتواند یک رکورد شامل اطالعات را در پایگاه داده ذخیره کند

SQL متواند اطالعات پایگاه داده را به روز رسانی کند

SQL میتواند هر قسمت از اطالعات را از پایگاه داده اصالح یا حذف کند

SQL زدمیتواند یک پایگاه داده تازه بسا

Page 8: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

8

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

SQL اجازه تنظیم جداول و شیوه دستیابی به اطالعات و نحوه نمایش اطالعات را میدهد.

(SQL)تاریخچه

زرگ های بها برای بانکای دادهمدل رابطه»ادگار کاد تحت عنوان 1970 سالکوال به مقاله منشا اصلی سی

ام در شهر سان خوزه بر روی سیستم بیگروهی از شرکت آی 70گردد. در دهه باز می[ 1«]های اشتراکیداده

را به منظور عملیات و SEQUEL کردند و زبانهای سیستم آر بدون توجه به این مقاله کار میپایگاه داده

کیوال ناشی از تالشهای کاد بود اما دونالد بازیابی اطالعات ذخیره شده در سیستم آر ایجاد کردند. اگر چه اس

.شوندشناخته می SEQUEL چامبرلین و ریموند بویس به عنوان طراحان زبان

ای جدید برگزار گردید. تا سمینارهایی در زمینه فناوری بانک اطالعاتی و مباحثاتی در مورد مزایای مدل رابطه

ای بوده، توجه زیادی نسبت به رابطه بانک اطالعاتی یام که طرفدار جدی فناوربیمشخص بود که آی 1976

کوال دارد. تبلیغات در زمینه سیستم آر باعث جذب گروهی از مهندسین در منلو پارک در زبان سی

های ام منجر به یک بازار تجاری برای بانکبیتحقیقات آی گردید. این گروه به این نتیجه رسیدند که کالیفرنیا

.ای خواهد گردیداطالعاتی رابطه

تأسیس نمودند (Relational Software) و رلیشنال سافتویر (Inc) این گروه شرکتی بنام اینک 1977در

عرضه 1979بنام اوراکل در کوال بسازند. محصولی ای بر اساس سیرابطه های دادهمدیریت پایگاه تا یک سامانه

ای بوجود آمد. به این ترتیب محصول اوراکل باعث گردید اولین رابطه پایگاه داده گردید، و اولین سامانه مدیریت

ن محصول بر روی مینی کامپیوترهای وکس سال در بازار دچار رکود باشد. ای 2ام برای مدت بیمحصول آی

.تر بودندام ارزانبیشد که خیلی از کامپیوترهای بزرگ آیاجرا می (VAx Digitall) دیجیتال

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

های مشغول تحقیق در زمینه بانک 1970کلی کالیفرنیا نیز در نیمه دهه های کامپیوتر در دانشگاه برآزمایشگاه

ام(، گروه فوق نیز یک نمونه از سامانه مدیریت پایگاه داده بیای بودن )مانند تیم تحقیق آیاطالعاتی رابطه

.نام نهادند (Ingres) ای ایجاد نمودند و سیستم خود را اینگرسرابطه

کوال خیلی ساخت یافته تر بود، اما بود، اگر چه از سی QUEL وجو بنامن پرسپروژه اینگرس شامل یک زبا

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

ر ام دبیدر حالیکه اوراکل و اینگرسبرای ارائه محصوالت تجاری در رقابت بودند، پروژه سیستم آر شرکت آی

ام بیعرضه نماید. آی( SQL/DS) یا SQL/Data system است که یک محصو ل تجاری با نامتالش بوده

Page 9: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

9

198۳شروع به عرضه محصول خود نمود. در سال 1982اعالم، و در 1981را در SQL/DS موجودیت

ام غالبا بیعاملی که در کامپیوتر بزرگ آیسیستم( VM/CMS) را برای SQL/DS ام یک نسخهبیآی

.استفاده شده بود(، اعالم نمود

تو را معرفی نمود که یک سامانه مدیریت پایگاه داده بیام، محصول دیبیشرکت آی 198۳همچنین در سال

عامل مراکز اس )سیستمامعامل ویتو تحت سیستمبیهای بزرگ آن شرکت بود. دیای برای سیستمرابطه

ام اعالم نمودند بیعرضه گردید، و مسئولین آی 1985تو در بیشد. اولین نسخه دیکامپیوتری بزرگ( اجرا می

تو بیباشد. از آن تاریخ تاکنون دیام میبیافزاری آیکه این محصول یک برنامه استراتژیک برای تکنولوژی نرم

« توبیکوال دیسی»یت نموده و زبان ام از آن حمابیای شاخصی بوده و آیرابطه پایگاه داده سامانه مدیریت

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

چه کار هایی میتوان انجام داد ؟ SQL با

1. SQL کوئری یک که دارد این توانایی را (Query) را اجرا کند.

2. SQL تواند داده ها را از دیتابیس بازیابی کندمی.

۳. SQL میتواند رکوردهایی را به دیتابیس اضافه (Insert) کند.

4. SQL میتواند رکوردها را از دیتابیس واکشی و ویرایش (Update) کند.

5. SQL میتواندرکوردها را از دیتابیس واکشی و حذف (Delete) کند.

6. SQL میتواند یک پایگاه داده جدید (New Database) ایجاد کند.

7. SQL میتواند یک جدول به دیتابیس (New Table) اضافه کند.

8. SQL میتواند stored procedure در دیتابیس ایجاد کند.

9. SQL میتواند view در دیتابیس ایجاد کند.

10. SQL میتواند به table ، procedure و view ها دسترسی تعریف کند.

Page 10: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

10

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

.را شرح میدهیم انواع داده در اسکیوال ، sql آموزش در این قسمت از

Character strings : در اسکیوال داده رشته ای انواع

ها، برای نگهداری هر حرف، باشد. در این نوع فیلدمی ASCII این نوع فیلد برای نگهداری عبارات و یا حروف

.باشدبرای تعیین زبان اطالعات می Collation شود و لذا نیاز بهیک بایت اشغال می

شرح نوع داده

char(n) حرف را در خود ذخیره 8000تا حداکثر 1نی با طول ثابت از اطالعات مت

.کنندمی

varchar(n)

حرف را در خود ذخیره 8000تا حداکثر 1اطالعات متنی با طول متغیر از

، طول Char در این است که در VarChar و Char کنند. فرق بینمی

ی کرده و در معرف Char(20) رشته ثابت است. یعنی اگر یک فیلد را از نوع

5حرف استفاده خواهد شد. یعنی 20را قرار دهیم، عین Orion آن کلمه

Blankمانده، کاراکتر باقی 15کاراکتر اول را کلمه مربوطه اشغال کرده و

..اینگونه نیست VarChar خواهند بود. اما در

varchar(max) بصورت پوینتری شود و مکانیزم آن هم مگا حرف ذخیره می 2تا 1اطالعات از

.باشدمی

text

و Image شود. این نوع داده همانندمگا حرف ذخیره می 2تا 1اطالعات از

VarBinary(MAX) شوند. بلکه توسط یک در خود رکورد ذخیره نمی

حذف شده SQL 10 کنند. این نوع داده درپوینتر به جای دیگری اشاره می

..شودمی استفاده VarChar(MAX) ها ازو بجای آن

Unicode types : در اسکیوال انواع داده یونیکد

شود. بوده و برای نگهداری هر حرف، از دو بایت استفاده می Unicode ها برای نگهداری متوناین نوع فیلد

دهد و در ضمن کمی هم های کاراکتری، حافظه بیشتری را به خود اختصاص میپس مسلماً نسبت به نوع داده

.ندارند Collation ها، احتیاج بهت. این نوع فیلدکندتر اس

Page 11: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

11

شرح نوع داده

nchar(n) حرف با طول ثابت ذخیره 4000تا حداکثر 1در این نوع داده، اطالعات از

.شودمی

nvarchar(n) بایت با طول متغیر ذخیره 4000تا حداکثر 1در این نوع داده، اطالعات از

.شودمی

nvarchar(max) شود. مکانیزم آن هم بصورتمگا حرف ذخیره می 1تا 1ن نوع داده از در ای

Pointer باشدمی.

ntext شود. مکانیزم آن هم مگا حرف ذخیره می 1تا 1در این نوع داده، از

. Pointer بصورت

Binary types : در اسکیوال انواع داده باینری

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

شرح نوع داده

bit

را ذخیره کند.کاربرد آن Null و 1و 0تواند یک فیلد دو بیتی است و می

هایی است که دو حالت وجود داشته باشد. مانند جنسیت زن و در زمان

.مرد

binary(n) دهندبایت را در خود جای می 8000تا 1ها، از این نوع فیلد.

varbinary(n) (دهند. )متغیربایت را در خود جای می 8000تا 1ها هم از این نوع فیلد.

varbinary(max) معرفی شده و تقریباً همانند SQL 2005 در Datatype این نوع

.هستند Image هایداده

image

توانند ذخیره کنند. فرق گیگابایت را می 2تا حداکثر 1ها از این نوع فیلد

ها با دو نوع قبلی این است که در دو نوع قبلی، اطالعات در نوع دادهاین

Page ها، اطالعات در یکشوند ولی در این نوع دادهخود رکورد ثبت می

شود. بایتی ذخیره می 16شود و به جایش در رکورد، یک پوینتر ذخیره می

Page 12: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

12

حذف شده و به جایش باید از SQL 10 ها دراین نوع فیلد

VarBinary استفاده کرد.

Number types : در اس کیو ال انواع داده عددی

نوع به شرح زیر است. در 4گردد و دارای این نوع فیلد برای نگهداری اعداد صحیح و بدون اعشار استفاده می

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

شرح نوع داده

tinyint را در خود ذخیره کند 255تا 0تواند از کند و میاشغال می یک بایت را.

smallint مثبت را در خود ۳2767منفی تا ۳2767تواند از یک عدد دو بایتی است و می

.ذخیره کند

int میلیارد را در 2تواند اعداد بین مثبت و منفی یک عدد چهار بایتی است که می

.خود ذخیره کند

bigint میلیارد را در 4تواند اعداد بین مثبت و منفی بایتی است که می 8یک عدد

.خود ذخیره کند

decimal(p,s)

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

دد. که گرها بسیار کند بوده و استفاده از آنها توصیه نمیگردد. این نوع فیلدمی

تعداد ارقام Scale های عدد وای تعداد کل رقمبه معن Precision در آن

تعریف Deciaml(6،2) کند. مثالً اگر فیلدری بصورتاعشار را مشخص می

..باشدمی 9999٫99شود، حداکثر آن برابر

numeric(p,s) .

smallmoney رقم اعشار را در خود 4رقم صحیح و 6تواند بایتی است که می 4یک عدد

..ذخیره کند

money رقم اعشار را در خود 4رقم صحیح و 15تواند بایتی است که می 8یک عدد

..ذخیره کند

float(n) شوندنگهداری می 10بایتی که اعداد بصورت توانی از 8یک عدد. .

Page 13: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

13

real شوندنگهداری می 10بایتی است که اعداد بصورت توانی از 4یک عدد..

Date types: در اس کیوال انواع داده تاریخ

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

شرح نوع داده

datetime را با دقت هزارم ثانیه 9999تا 1700بایتی است و از سال 8این نوع فیلد،

..کندذخیره می

datetime2 .

smalldatetime را با دقت هزارم ثانیه 2079تا 1900بایتی است و از سال 4لد، این نوع فی

..کندذخیره می

date شودها برای نگهداری تاریخ میالدی استفاده میاین نوع فیلد.

time شودها برای نگهداری ساعت استفاده میاین نوع فیلد.

datetimeoffset

timestamp

sql: Other data types در انواع دیگر داده ها

شرح نوع داده

sql_variant

شود و نوع آن با توجه به این نوع فیلد برای نگهداری انواع داده استفاده می

گیرد تعیین خواهد شد. چون نوع و حجم اولین مقداری که در آن قرار می

بایتی در آن قرار گرفته و 16گر فیلد مشخص نیست، لذا تنها یک اشاره

شود. استفاده از این نوع فیلد، در فایل جداگانه نگهداری میداده اصلی

..گرددتوصیه نمی

Page 14: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

14

uniqueidentifier دهد که به اصطالحیا تک می Unique بایتی، به ما کدی 16این فیلد .

GUID گویند. یکی از کاربردهای آن درمی Replication است.

xml استفاده web رات تحتاین فیلد بیشتر برای انتقال اطالعات و دستو

.های مختلف است MetaData شود و شامل انواعمی

cursor این فیلد مربوط به کنترل Cursor است .

table .

sql در SELECT دستور

خاب و استخراج اطالعات مورد نظر از یک یا چند جدول و سپس در اسکیوال برای انت SELECT دستور

: مشاهده نتایج در یک جدول موقت استفاده می شود

SELECT column_name(s)

FROM table_name

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

SELECT قصد خواندن کدام ستونها را از بانک داریم در صورتی فهرست ستونها مشخص میکند که

. که در این فهرست * قرار دهیم کلیه ستونهای جدول نمایش داده میشود

با استفاده از کلمه FROM مشخص میکنیم که از کدام جدول یا جداول این ستونها باید انتخاب

. شوند

* SELECT دستور

همه اطالعات موجود در جدول را انتخاب میکند.برای انتخاب کلیه ستون های * SELECT دستور

. ر قسمت نام ستون باید عالمت * را گذاشت استفاده کردد جدول

SELECT * FROM table_name

Page 15: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

15

جای نوشتن تمام ستونهایی که در تهیه گزارش به آنها احتیاج دارند از * برخی از برنامه نویسان ب : نکته مهم

استفاده میکنند که این کار باعث باال رفتن بار شبکه شده و کارایی سیستم را پایین می آورد لذا بهتر است

. بجای استفاده از * کمی بخود زحمت دهید و لیست تمامی ستونها را بطور کامل قید کنید

sql در SELECT DISTINCT دستور

چنانچه در ستون های مورد جستجو ، موارد تکراری وجود داشته باشد در نتیجه خروجی نمایش داده خواهند

عبارت Select دستور شد . برای جلوگیری از چنین موردی و عدم نمایش موارد تکراری پس از

DISTINCT نوشته می شود .

SELECT DISTINCT column_name(s)

FROM table_name

را CA زیر کد Query درصد مشتری از کالیفرنیا، 90رکورد با 1000تصور کنید یک جدول مشتری با : مثال

.هد باز گرداند که اصالً یک نتیجه مفیدی نمی باشدبار خوا 9000

SELECT State From Customer

قرار می SELECT که درست بعد از Distinct .در این موقعیت شما را کمک می کند Distinct کلید واژه

کد زیر هر Query دستور داده که سطرهای تکراری در نتایج را حذف نماید. بنابراین SQL Server به گیرد،

.ایالتی را فقط یک بار باز می گرداند به طور وضوح لیستی که شما جستجو می کنید

SELECT DISTINCT State From Customer

می را برای بازگرداندن همه سطرها آگاه SQL Server می باشد که Distinct ، All همتای کلید واژه : هنکت

.است ، پس نیازی به نوشتن آن نیست SELECT دستور پیش فرض All .سازد خواه آن واحد باشد یا خیر

sql در WHERE شرطی دستور

برای اضافه کردن شرط یا شرط هایی جهت محدود کردن نتایج جستجو و یا استخراج نتایج WHERE دستور

دستور از این ذستور باید پسدقیقتر برای داشتن خروجی که در ذهن ما وجود دارد استفاده می شود .

Select تعیین ستون ها از جدول مورد نظر به کار رودو .

Page 16: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

16

و پرانتز می توان چندین شرط را با هم ترکیب کرد .خروجی برنامه با AND ،OR عملگرهای از با استفاده

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

Select Name , Family

From Person Where IdNumber= " 1111"

در where دستور باشد توسط 1111آنها برابر IdNumber ی که فیلددر مثال باال نام و فامیلی اشخاص

.اسکیوال برگردانده می شوند

SQL در Or و And عملگر های

. استفاده می شود sql در Where دستور برای ترکیب شرط ها در Or و And عملگرهای

گاهی اوقات خروجی که ما میخواهیم در اس کیوال بایستی چند شرط مختلف داشته باشد . به طور مثال

سال و مدرک تحصیلی باالی لیسانس داشته باشند . در این حالت بایستی 2۳ادی را میخواهیم که سن باالی افر

هر کدام از شرط ها را جداگانه تعریف کرده و سپس آنها را با هم ترکیب کنیم . برنامه هر کدام از شرط ها را

.بررسی میکند و خروجی را نمایش میدهد

. برای اجرای دستور نیاز دارد تا تمام شرط های تعیین شده برای آن درست باشد And عملگر

SELECT * FROM Persons

WHERE FirstName=' saeed '

AND LastName=' rajabi '

. فقط نیاز دارد که حداقل یکی از شرط ها درست باشد Or عمگر

SELECT * FROM Persons

WHERE FirstName='saeed'

OR FirstName='rajabi'

Or و And عملگرهای ترکیب

Select * From Persons

Where ( ( Grade = 16 AND Major = 'Hard Ware' ) OR ( Garde = 12 AND Major =

'SoftWare' ) ) " ;

Page 17: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

17

sql در Order By دستور

بگوییم بهتر یا و نظم بی ی میشود داده نمایش خروجی عنوان به در اسکیوال select دستور اطالعاتی که در

اب. نمیشوند مرتب ستونی هیج مقدار اساس بر جدول های ستون در خروجی مقادیر. است ما نظر مد نظم بدون

شاخص برحسب ستون چند یا یک مقادیر اساس بر را جدول اطالعات میتوان Order By دستور دستور

.مثل ترتیب حروف الفبا ، بزرگتر یا کوچکتر بودن اعداد و ...مرتب کرد هایی

Order By دستور ساختار

SELECT column_name(s)

FROM table_name

ORDER BY column_name(s) [ASC|DESC]

را بکار نبرید. اما اگر بکار بردید حتما باید where بدین معناست که میتوانید where عالمات ][ در اطراف

z to) به معنای نزولی بودن است DESC و(a to z) به معنای صعودی بودن ASC . باشد order قبل از

a).پیش فرضش ACS است.

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

: منظور بخش مرتب سازی کد باال بصورت زیر در میاید

ORDER BY "column_name1" [ASC, DESC], "column_name2" [ASC, DESC]

: مثال

Select Name , Family From Person

Where idnumber="11"

Order By Family

را بر اساس نام فامیلی مرتب صعودی where دستور جی دستور باال ، اشخاص با شرط ذکر شده درخرو

.میکند

sql در Group By دستور

در اسکیوال برای دسته بندی یک ستون بر حسب مقادیر مشابه فیلدهای یک ستون Group By دستور از

. دیگر استفاده می شود

Page 18: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

18

که عمل محاسبه ) مثل مجموع و میانگین ( را بر روی SQL در هنگام استفاده از برخی از توابع درون ساخته

ارد که این توابع قادر به جدا کردن و متمایز کردن اطالعات موجود داده ها انجام می دهند ، این مشکل وجود د

در دو ستون نسبت به هم نیستند و نتایج محاسبات را به صورت کلی برای همه آنها در نظر می گیرند . در این

. استفاده میکنیم Group By دستور مواقع از

: ساختار این دستور به صورت زیر است

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

وقتی استفاده میشود که ما در حال انتخاب چند ستون هستیم و حداقل sql در Group By دستور

باید تمام ستونهای دیگر را گروه داریم . در این زمان ما select دستور یک عملگر محاسباتی در

.کنیم

مثال زیر مجموع نمرات هر دانش آموز را بصورت گروه بندی شده بر اساس فیلد نام دانش آموز به در : مثال

: خروجی داده می شود

Select Name ,Sum ( Grade ) As مجموع نمرات

From Class

Group By Name ;

در اسکیوال از جمله ی پرکاربردترین دستورات است که یادگیری کامل این دستور group by ردستو : نکته

.باشد sql ، میتواند تفاوت اسکریپت نویسی حرفه ای در

sql در Having دستور شرطی

استفاده می شود ، زیرا SQL برای افزودن شرط به توابع درون ساخته در اسکیوال Having دستور

. استفاده کرد SQL نمی توان برای کار با مقادیر خروجی توابع درون ساخته Where دستور از

برای اعمال شرط به ستون ها اعمال می شود و همان کاری را می sql در Having دستور به عبارت دیگر

. می آید Group By دستور معموال با Having دستور . در رکوردها انجام می دهد Where کند که

: است به صورت زیر sql در Having دستور شرطی ساختار

Page 19: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

19

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

HAVING aggregate_function(column_name) operator value

عمل شده ، با این تفاوت که بعد از گروه بندی بر group by مثال بخش دستور در مثال زیر همچون : مثال

اساس نام دانش آموزان و دادن خروجی جمع نمرات آنها ، خروجی شامل دانش آموزانی است که مجموع نمرات

: باشد 255آنها باالتر از

نمراتمجموع Select Name , Sum ( Grade ) As جمع نمره

From Students

Group By Name

Having Sum ( Grade ) > 25

Order By Family

استفاده کرد و برای اعمال شرط بر روی where نمیتوان از having در مثال باال به جای : نکته مثال

.استفاده کرد having جمله شرطی باید از group by دستور فیلدهای محاسباتی آمده در

در اسکیوال Insert دستور

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

: دو روش استفاده از این دستور وجود دارد

INSERT INTO table_name

VALUES (value1, value2, value3,...)

INSERT INTO table_name (column1, column2, column3,...)

VALUES (value1, value2, value3,...)

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

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

در پرانتز Values وارد کرده و با کاما از هم جدا می کنیم . سپس مقادیر متناظر را به همان ترتیب پس از واژه

. وارد می کنیم

نشود ، مقادیر پیش فرض در نظر گرفته insert دستور چنانچه برای فیلد یا فیلدهایی مقداری در : نکته

Page 20: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

20

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

. نام ستون ها و مقادیر دقت کرد

Insert into Student ( Name , Family ) Values ( "Saeed" , "Rajabi" )

میرود. بقیه ی فیلد ها در صورت Family در فیلد Rajabi نامو Name در فیلد Saeed در مثال باال نام

Null تعیین کردن مقدار پیش فرض آن مقدار را میگیرند و در صورت تعیین نکردن آن ، مقدار خالی یا

.میگیرند

sql در Update دستور

در اسکیوال برای تغییر اطالعات موجود در یک فیلد و جایگزینی آن با یک مقدار جدید به کار Update دستور

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

Update پذیر می باشد امکان.

UPDATE table_name

SET column1=value, column2=value2,...

WHERE some_column=some_value

:برای ویرایش کردن بیش از یک فیلد به روش زیر عمل میکنیم

Update Person

Set Name = " bahar" , Family = " shokri" , id-number=" 11 "

Where ID =3222

: برای ویرایش یک فیلد دستور زیر را مینویسیم

Update Person

Set Name =" Ali "

Where Name = " Ahmad "

در اسکیوال Delete دستور

دستور برای حذف اطالعات یک رکورد در جدول بانک اسکیوال استفاده می شود. از sql در Delete دستور

delete حذف شده به این راحتی ها نیسترکورد های شود زیرا امکان بازگرداندن باید با دقت استفاده !

Page 21: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

21

DELETE FROM table_name

WHERE some_column=some_value

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

Delete From Person

Where ID = "16 "

* Delete دستور

.بدون حذف یک جدول ، کلیه رکوردهای درون آن را پاک کرد * Delete این امکان وجود دارد که با دستور

Delete From Person

sqlدستورات پیشرفته

sql در TOP دستور -

.را مشخص میکند خروجی رکورهای تعداد اسکیوال ، select دستور در TOP دستور

خروجی با تعداد رکوردهای .ی که باالی هزاران رکورد دارند بسیار مفید میباشدبرای جداول sql در top دستور

.ممکن است تاثیر بگذارد sql باال بر روی کارایی برنامه ی مرتبط با

: رکورد از جدول را انتخاب می کنیم 2با مثال زیر ما : مثال

SELECT TOP 2 * FROM Persons

: کنیم انتخاب را باال جدول در رکوردها از درصد 50 میتوانیم با مثال زیر ما : مثال

SELECT TOP 50 PERCENT * FROM Persons

SQL در Like عملگر -

Page 22: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

22

دستور اده قرار میگیرد. ساختار، برای الگوی خاص جستجو مورد استف SQL در شرطهای Like عملگر

like در اسکیوال به صورت زیر است:

SELECT column_name(s)

FROM table_name

WHERE column_name LIKE pattern

.میشوند را انتخاب مبکندشروع s دستور زیر افرادی که شهر آنها با حرف : مثال

SELECT * FROM Persons

WHERE City LIKE 's%'

.ختم میشوند را انتخاب مبکند s دستور زیر افرادی که شهر آنها به حرف : مثال

SELECT * FROM Persons

WHERE City LIKE '%s'

.میباشد را انتخاب مبکند st حرف دستور زیر افرادی که شهر آنهاشامل : مثال

SELECT * FROM Persons

WHERE City LIKE '%st%'

.نمیباشد را انتخاب مبکند st دستور زیر افرادی که شهر آنهاشامل حرف : مثال

SELECT * FROM Persons

WHERE City NOT LIKE '%st%'

Like عالمت های شرطی در -

، هنگام کارکردن شدگفته sql در like دستور در مورد مقاله ی قبلی همانطور که در Like : دستور یادآوری از

با رشته ها همیشه خواهان مطابقت کامل رشته ها نیستیم ، بلکه بخشی از رشته یا الگوی خاصی از آن بیشتر

.استفاده کرد = کیوال ، به جای عالمتدر شرط های اس LIKE دستور موردنظر است. در این هنگام می توان از

به ترتیب به معنی چند کاراکتر و یک کاراکتر را برای تطابق می توان بکار _ و % ، دو کاراکتر like دستور در

.برد

Page 23: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

23

.این عالمت ها کاربرد بسیاری دارند sql آموزش در

هر چند کاراکتری Main است بطوریکه قبل Main اسامی کلیه مشتریانی که آدرس آنها شامل کلمه : مثال

: پیدا کن فقط یک کاراکتر بیاید را Main که خواست بیاید ولی بعد از

SELECT customer_name

FROM customer

WHERE customer_street LIKE '%Main_';

sql رد In عملگر -

حداقل در اسکیوال برای مشاهده اطالعات رکوردهایی از جدول به کار می رود که شما مقدار دقیق In عملگر

بسیار کاربردی اس کیو ال در اسکیول برای کوئری های پیچیده در in دستور . یکی از فیلدهای آنرا می دانید

.است

: ر این دستور به صورت زیر استساختا

SELECT column_name(s)

FROM table_name

WHERE column_name IN (value1,value2,...)

: است یوسفی یا رجبی مشخصات افرادی را بدهید که نام خانوادگی آنها Persons از جدول : مثال

Select * From Persons

Where Family IN (“rajabi” . “yousefi” );

sqlدر BETWEEN عملگر -

حدوده خاص ، در بین دو مقدار تعیین شده برای انتخاب اطالعات در یک م sql در Between عملگر

. استفاده می شود . این مقادیر می تواند از نوع عددی ، متن یا تاریخ باشد

Page 24: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

24

ده ای فیلد های استفاده شده اینست که باید نوع مدنظر با نوع دا sql در Between دستور نکته مهم در مورد

. در دستور یکسان باشد

در مورد داده های متنی ، ترتیب قرار گیری حروف الفبا مد نظر برنامه Between نکته ی دیگر در مورد

. است

: تساختار این دستور به صورت زیر اس

SELECT column_name(s)

FROM table_name

WHERE column_name

BETWEEN value1 AND value2

: میکنیم عمل زیر صورت به شده تعیین محدوده درون اطالعات نمایش برای مثال :

SELECT * FROM Persons

WHERE LastName

BETWEEN 'Hansen' AND 'Pettersen'

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

Between ... And استفاده می شود .

SELECT * FROM Persons

WHERE LastName

NOT BETWEEN 'Hansen' AND 'Pettersen'

- Alias درsql

یک کوئری اجرا کرده ایم نام یا عنوانی که در باالی هر ستون در خروجی sql در select دستور زمانی که با

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

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

SQL در این موارد خواهیم دید ، یک ستون جدید ایجاد می کنیم که باید نامی برای آن تعیین شود

.استفاده میکنیم Alias ویژگی از

Page 25: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

25

و مجازی برای قرار گرفتن در بخش عنوان هر ستون در برای در نظر گرفتن یک نام مستعار Alias ویژگی از

. در اسکیوال استفاده می شود Select دستور خروجی

.این کار را انجام می دهد sql در as کلمه کلیدی sql جداولبرای Alias تعریف

SELECT column_name(s)

FROM table_name

AS alias_name

sql دربرای ستونها Alias تعریف -

SELECT column_name AS alias_name

FROM table_name

:مثال

Select Name As نام , Family As خانوادگی From Persons

Where id >15

Order By Family ;

می توان بر روی مقادیر ستون هایی که داده عددی دارند ، عملیات ریاضی ) مثل ضرب ، تقسیم و ... ( انجام

در Alias ویژگی داده و سپس نتایج محاسبات را در یک ستون جدید با عنوان دلخواه تعیین شده توسط

. نمایش داد .در این حالت ستون یا ستون های به جدول خروجی اضافه می شود Select دستور خروجی

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

Select Name+Family As "نام و نام خانوادگی" From Persons

Where id >15

Order By Family ;

SQL در ( Join ) دستورهای پیوند -

دستور از .شود می استفاده ها داده پایگاه در ها جدول پیوند برای ، در اسکیوال Join مجموعه دستورات از

ریف ها تعآن برای خارجی کلید درواقع ، برای ارتباط بین چندین جدول که با یکدیگر ارتباط دارند ، Join های

.شده است، میتوان استفاده کرد

Page 26: یلاعتهمسب - rasa-system.com · 3 یتاعلاطا کناب ای ها هاگیاپ ای سیباتی ای Database یم هتفگ مظنم راتخاس اب تاعلاطا

26

SQL در ( JOIN ) تفاوتهای بین دستورات پیوند -

از بین سطرهایی انتخاب INNER JOIN دستور یا JOIN دستور خروجی : INNER JOIN دستور

.باشد داشته وجود جدول دو هر در رابطه یک حداقل میشود که

اگر حتی میشود، انتخاب چپ سمت جدول از از LEFT JOIN دستور خروجی : LEFT JOIN دستور

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

انتخاب جدول سمت راست از از RIGHT JOIN دستور خروجی : RIGHT JOIN دستور

.باشد نداشته چپ جدول با ای رابطه اگر هیچ حتی میشود،

یک از بین سطرهایی انتخاب میشود که FULL JOIN دستور خروجی : FULL JOIN دستور

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

InnerJoin و Join تفاوت -

آنها می باشد. نتیجه ی اجرای هر دوی آنها یکسان است performance در InnerJoin و Join تفاوت

دستور باالتری می باشد و به همین دلیل توصیه می شود که از Prformance دارای InnerJoin دستور اما

InnerJoin استفاده شود.