دستورات پیشرفته 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 = ‘ نظری ‘ ; |
کد | |||||||||||||||
|
خروجی |
