دستورات پیشرفته SQL
دستور Unoin :
از دستور Union برای ترکیب و ادغام دو یا چند ستون مختلف از ۲ یا چند جدول و نشان دادن آنها در یک ستون مشترک استفاده می شود .
در این دستور ، نوع داده ای ستون های انتخاب شده برای ترکیب باید یکسان باشند . دستور Union در هنگام ترکیب فیلد ها ، در صورت برخورد با مقادیر تکراری آنها را حذف کرده و از هر مقدار یک نمونه را نمایش می دهد . برای مشاهده تمام مقادیر ، حتی مقادیر تکراری باید از دستور Union ALL استفاده کرد .
شکل کلی استفاده از این دستور به صورت زیر است :
SQL Statment 1 ( نام فیلد ۱ اتخابی )
Union
SQL Statment 1 ( نام فیلد ۲ اتخابی )
مثال : شماره دانشجویی ، دانشجویانی را بدهید که یا دانشجوی رشته نرم افزار بوده یا در درس زبان تخصصی با کد ۱۰۱۳ ثبت نام کرده اند :
Student Table | |||||
Student ID | Name | Family | Major | City | Grade |
۴۱۲۵۲۲۱۴ | Ahmad | Rezaee | Hard Ware | Tehran | ۱۸ |
۱۰۷۲۴۱۱۳ | Ehsan | Amiri | Soft Ware | Karaj | ۱۴ |
۱۰۲۵۴۸۶۱ | Zahra | Hosini | Hard Ware | Tehran | ۱۷ |
۲۷۳۶۵۱۸۷ | Sahar | Ahmadi | Soft Ware | Bam | ۱۶ |
۳۵۶۵۴۴۱۵ | Hesam | Razavi | Soft Ware | Tehran | ۱۹ |
Courses Table | |||
Course ID | Co Title | Credit | Co Type |
۱۰۱۱ | پایگاه داده | ۳ | عملی |
۱۰۱۲ | مباحث ویژه | ۳ | عملی |
۱۰۱۳ | زبان تخصصی | ۲ | نطری |
Selection Table | ||||
Student ID | Course ID | Term | Year | Grade |
۴۱۲۵۲۲۱۴ | ۱۰۱۱ | ۲ | ۸۵ – ۸۶ | ۱۶ |
۱۰۷۲۴۱۱۳ | ۱۰۱۱ | ۲ | ۸۵ – ۸۶ | ۱۴ |
۴۱۲۵۲۲۱۴ | ۱۰۱۲ | ۱ | ۸۵ – ۸۶ | ۱۷ |
۱۰۷۲۴۱۱۳ | ۱۰۱۲ | ۱ | ۸۵ – ۸۶ | ۱۱ |
۱۰۲۵۴۸۶۱ | ۱۰۱۳ | ۲ | ۸۵ – ۸۶ | ۱۳ |
۱۰۲۵۴۸۶۱ | ۱۰۱۱ | ۲ | ۸۴ – ۸۵ | ۸ |
۲۷۳۶۵۱۸۷ | ۱۰۱۲ | ۱ | ۸۴ – ۸۵ | ۱۹ |
۲۷۳۶۵۱۸۷ | ۱۰۱۳ | ۱ | ۸۴ – ۸۵ | ۱۶ |
۳۵۶۵۴۴۱۵ | ۱۰۱۱ | ۲ | ۸۴ – ۸۵ | ۹ |
۳۵۶۵۴۴۱۵ | ۱۰۱۳ | ۲ | ۸۴ – ۸۵ | ۱۷ |
مثال | ||||||
Select Stuedent ID From Students Where Major = ‘ Soft ‘ Union Select Student ID From Selection Where Course ID = 1013 ; |
کد | |||||
|
خروجی |
توجه : می توان دستورات Select تعریف شده در دستور Union را تا حد نیاز گسترش د اد . به عبارت دیگر هر دستور مجاز Select در این قسمت قابل تعریف است . برای مثال می توان در دستورات Select تعریف شده ، جدول ها را به هم پیوند داد و فقط یک ستون خروجی تولید کرد و سپس آن را با ستون طرف دیگر پیوند زد .
نکته : می توان در دستور Union بیش از یک ستون مجزا را تعریف کرد . فقط باید تعداد ستون های و ترتیب نوع داده ای ستون های تعریف شده یکسان باشند . برنامه مقادیر ستون ها را به ترتیب با هم پیوند می دهد .
مثال : شماره دانشجویی ، نام و نام خانوادگی دانشجویانی را بدهید که در رشته سخت افزار تحصیل کرده یا حداقل یک درس از نوع نظری را انتخاب کرده باشند :
مثال | ||||||||||||||||
Select Student ID , Name , Family From Students Where Major = ‘ Hard ‘ Union Select Student ID , Name , Family From Students , Seleciton , Courses where Students.Student ID = Selection.Student ID AND Selection.Course ID = Courses.Course ID AND CoType = ‘ نظری ‘ ; |
کد | |||||||||||||||
|
خروجی |