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

تجزیه و تحلیل دیتابیس

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

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

پس از ایجاد یک جدول و پر کردن آن با رکورد، طبیعتا به عملیاتی فکر می کنید که می خواهید با داده های ذخیره شده در آن انجام دهید. یکی از معمول ترین عملیاتی که کاربران بر روی پایگاه داده اجرا می کنند، جستجوی اطلاعات و جداسازی رکوردها بر اساس معیار خاص می باشد.
جستجوی اطلاعات بر مبنای معیار خاص در اصطلاح پایگاه داده Query گرفتن یا پرس و جو از داده ها نامیده می شود. نتیجه ای که در پاسخ کوئری برمی گردد، Query result گفته می شود.
به تعریف دیگر، Query یا پرس و جو در پایگاه داده زمانی بکار می رود که ما احتیاج به درج، حذف، به روز رسانی و یا فراخوانی و احضار داده ها در پایگاه داده داشته باشیم.
در جایگاه یک توسعه دهنده ی پایگاه داده، شما این اجازه را دارید تا با ارسال دستوراتی به موتور DB، از داده کوئری بگیرید و آن ها را فراخوانی نمایید. این کار به وسیله ی تعدادی کلمات کلیدی یا رزرو شده امکان پذیر می باشد.
در این مبحث، پایگاه داده ای به نام LambdaSquare1 ایجاد کرده و مورد استفاده قرار خواهیم داد. اسمی که برای این پایگاه داده انتخاب کردیم به خودی خود معنای خاصی ندارد.
این پایگاه داده به یک مجتمع آپارتمانی خیالی مربوط می باشد. مجتمع نام برده دارای سه طبقه می باشد. هر خانه، یک واحد خوانده می شود. واحدهای آپارتمان همان آیتمی است که مستاجر برای اجاره ی آن مراجعه می کند. هر واحد دارای:


  1. unit number: به طور معمول، این شماره ای است که بر روی در آپارتمان درج می گردد. یکی از ویژگی های مقدار مورد استفاده، این است که اولین عدد بکار رفته در آن نشانگر طبقه آپارتمان مورد نظر می باشد. به عنوان مثال، در صورتی که شماره ی واحدی 104 باشد، نتیجه می گیریم که آن واحد در طبقه ی اول ساختمان قرار دارد.
  2. bedroom: این مقدار یک عدد صحیح بین 0 تا 3 است. عدد 0 بیانگر یک خوابه بودن آپارتمان می باشد.
  3. bathroom: عددی است که نشانگر تعداد bathroom های واحد خواهد بود.
  4. price: پولی است که هر مستاجر ماهیانه پرداخت می کند.
  5. Deposit (سپرده): هنگامی که مشتری اقدام به اجاره ی خانه می کند، وی ملزوم است مبلغی را به عنوان بیعانه پرداخت کند. این مبلغ زمانی که مشتری خانه را ترک می کند به طور کامل باز پرداخت می شود.
  6. Available: مقداری بولی است که نشانگر امکان یا عدم امکان اجاره ی واحد می باشد.

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

1. محیط توسعه ی Microsoft SQL Server را اجرا کرده، سپس دکمه ی Connect را در کادر محاوره ای اتصال به سرور فشار دهید.
2. در فهرست اصلی، File -> New -> Query With Current Connection را انتخاب نمایید.
3. در پنجره ی ویرایش کوئری، کد زیر را وارد نمایید:


-- ===============================================================
-- Database:	 LambdaSquare1
-- Author:	 FunctionX
-- Date Created: Sunday, January 16, 2011
-- Description:	 This database represents an apartment building.
--		 This part of the dat2base is used to present the
--		 apartments to a customer and select the right one
-- ===============================================================
USE master
GO
CREATE DATABASE LambdaSquare1;
GO
USE LambdaSquare1;
GO
CREATE SCHEMA Presentation;
GO
CREATE TABLE Presentation.Units
(
	UnitNumber nchar(10),
	Bedrooms int,
	Bathrooms real,
	Price money,
	Deposit money,
	Available bit
);
INSERT Presentation.Units
VALUES(N'101', 0, 1.00, 845.00,  200.00, 0),
      (N'102', 1, 1.00, 895.00,  250.00, 0),
      (N'103', 1, 1.00, 925.00,  275.00, 1),
      (N'104', 2, 1.00, 1050.00, 300.00, 0),
      (N'105', 1, 1.00, 885.00,  250.00, 1),
      (N'106', 3, 2.00, 1350.00, 425.00, 1),
      (N'107', 2, 2.00, 1185.00, 400.00, 0),
      (N'108', 0, 1.00, 865.00,  225.00, 1),
      (N'109', 2, 1.00, 1050.00, 350.00, 1),
      (N'110', 1, 1.00, 895.00,  250.00, 0),
      (N'111', 1, 1.00, 895.00,  250.00, 0),
      (N'112', 0, 1.00, 805.00,  200.00, 1),
      (N'201', 0, 1.00, 825.00,  200.00, 1),
      (N'202', 1, 1.00, 950.00,  325.00, 0),
      (N'203', 1, 1.00, 885.00,  250.00, 1),
      (N'204', 2, 2.00, 1125.00, 425.00, 1),
      (N'205', 1, 1.00, 1055.00, 350.00, 0),
      (N'206', 2, 1.00, 1165.00, 400.00, 1),
      (N'207', 1, 1.00, 895.00,  250.00, 0),
      (N'208', 0, 1.00, 815.00,  200.00, 1),
      (N'210', 1, 1.00, 895.00,  350.00, 1),
      (N'211', 2, 2.00, 925.00,  400.00, 1),
      (N'212', 3, 2.00, 1280.00, 500.00, 0),
      (N'301', 0, 1.00, 845.00,  200.00, 0),
      (N'302', 1, 1.00, 925.00,  250.00, 0),
      (N'303', 2, 1.00, 985.00,  275.00, 1),
      (N'304', 2, 2.00, 1250.00, 300.00, 0),
      (N'305', 1, 1.00, 945.00,  250.00, 1),
      (N'306', 3, 2.00, 1350.00, 425.00, 1),
      (N'307', 2, 2.00, 1285.00, 400.00, 0),
      (N'308', 0, 1.00, 875.00,  225.00, 1),
      (N'309', 2, 1.00, 1150.00, 350.00, 1),
      (N'310', 1, 1.00, 955.00,  250.00, 0),
      (N'311', 3, 2.00, 1325.00, 500.00, 0),
      (N'312', 0, 1.00, 825.00,  200.00, 1);
GO

4. برای اجرای کد، در منو اصلی محیط، Query -> Execute را کلیک نمایید.
5. در پنجره ی Object Explorer، بر روی گره Databases راست کلیک کرده و سپس گزینه ی Refresh را انتخاب نمایید.
6. گره Database را باز نمایید.
7. حال LambdaSquare1 و به دنبال آن گره Tables را باز نمایید.


باز کردن جدول و واکشی داده های آن

Microsoft SQL Server ابزار متعددی برای تحلیل اطلاعات و داده ها ارائه می دهد که از جمله ی آن می توان به Query Editor، PowerShell اشاره کرد:
1. در صورت استفاده از Microsoft SQL Server Management Studio:


  1. در صورت استفاده از Microsoft SQL Server Management Studio:
    • در منوی اصلی، File -> New -> Query With Current Connection را انتخاب نمایید.
    • در Standard toolbar، بر روی دکمه ی New Query کلیک کنید.
  2. برای باز کردن جدول مورد نظر، مشاهده ی محتویات آن و نیز اجرای عملیات تحلیل و واکشی داده، به پنجره ی Object Explorer مراجعه کرده و بعد بر روی جدول مورد نظر راست کلیک کنید، سپس Select Top 1000 Rows را انتخاب نمایید.
  3. برای باز کردن جدول، مشاهده ی گزینه های مختلف از جمله تجزیه و تحلیل داده (data analysis)، در پنجره ی Object Explorer، بر روی جدول دلخواه راست کلیک نموده و سپس Select Edit Top 200 rows را انتخاب نمایید.

2. برای استفاده از پنجره ی فرمان :Command Prompt


  • برای باز کردن PowerShell، کافی است در محیط SQL Server Management Studio بر روی یکی از گزینه های موجود در پنجره ی Object Explorer راست کلیک کرده، سپس Start PowerShell را انتخاب نمایید. حال دستورات مورد نظر را وارد پنجره ی فرمان (PowerShell) کنید.

پنجره ی Query Designer

روش دیگری که برای واکشی (select) اطلاعات می توان مورد استفاده قرار داد، استفاده از پنجره ی Query Designer می باشد. برای استفاده از این امکان، در پنجره ی Object Explorer بر روی جدول مورد نظر راست کلیک کرده و بعد گزینه ی Select Edit Top 200 rows را انتخاب کنید. با این کار، رابط گرافیکی (interface) به یک نوار ابزار Query Designer مجهز می شود (همچنین اگر در پنجره ی Query Editor راست کلیک کنید، خواهی دید که یک گزینه به نام Design Query in Editor قابل انتخاب می باشد).
این پنجره (Query Designer) از چهار بخش تشکیل شده است.
اکنون به پنجره ی Object Explorer مراجعه کرده، بر روی Presentation.Units راست کلیک کرده و گزینه ی Edit Top 200 Rows را انتخاب کنید.


پنجره ی نمودار (Diagram Pane)

بالاترین بخش، پنجره ی Diagram خوانده می شود. برای دسترسی به آن:
1. در منوی اصلی، بر روی Query Designer -> Pane -> Diagram کلیک کنید.
2. داخل پنجره راست کلیک کرده، سپس Pane -> Diagram را انتخاب نمایید.
3. در نوار ابزار Query Designer، بر روی دکمه ی آموزش SQL Show Diagram Pane کلیک کنید.
پنجره ی Diagram جدولی که در Object Explorer بر روی آن راست کلیک کرده بودید را نمایش می دهد. جدولی که در این پنجره نمایان می باشد، دربردارنده ی ستون هایی است که می خواهید از داده های ذخیره شده در آن کوئری بگیرید. جدول مورد نظر را به روش های مختلف می توان دستکاری کرد. به عنوان مثال، اگر مکان نمای موس را بر روی نوار عنوان جدول قرار دهید، یک tool tip پدیدار می شود که در آن، اسم جدول TABLE:, و همچنین schema ی آن بین پرانتز نمایش داده می شود. حال اگر بر روی نوار عنوان جدول کلیک نمایید، پنجره ی Properties برخی از ویژگی های جدول را نمایش می دهد.


مثال:
آموزش SQL

این قابلیت برای شما وجود دارد که پنجره ی جدول را داخل محیط Query Designer حرکت داده و آن را در هر جایی از Diagram pane جایگذاری نمود. برای حرکت دادن پنجره ی جدول، کافی است بر روی آن کلیک کنید و سپس نوار عنوان را با اشاره گر موس کشیده و در مکان دلخواه جایگذاری نمایید. همچنین می توان یک جدول را با کلیک بر روی لبه ی پنجره ی آن و کشیدن مکان نمای موس در جهات مختلف بزرگ یا کوچک تر کرد.
در سمت چپ هر ستون یک checkbox و در سمت راست آن اسم ستون نمایش داده می شود. اولین آیتم لیست، همان طور که در نگاره ی فوق نشان داده شده، دارای علامت * و به دنبالش عبارت (All Columns) می باشد. چنانچه بر روی فیلدی از جدول راست کلیک کرده و گزینه ی Properties را انتخاب نمایید، پنجره ای حاوی ویژگی های آن فیلد به نمایش گذاشته می شود:


آموزش SQL

همان طور که انتظار می رود، ویژگی های که توسط این پنجره به نمایش گذاشته می شود به نوع ستون بستگی دارد. در صورتی که لیست حاوی فیلدها بسیار طولانی می باشد و در پنجره ی جای نمی گیرد، خواهی دید که یک نوار پیمایش عمودی به نمایش گذاشته می شود.
Data selection عبارت است از انتخاب و واکشی یک یا چند ستونی که می خواهید داده های ذخیره شده در آن را مشاهده نمایید. برای انتخاب ستون مورد نظر در پنجره ی Diagram، کافی است بر روی کادر تیک موجود در سمت چپ اسم آن ستون کلیک نمایید:


آموزش SQL

اکنون، در منوی اصلی بر روی Query Designer کلیک کرده، سپس اشاره گر موس را بر روی درایه ی pane قرار دهید و گزینه ی Diagram را انتخاب کنید.
با کلیک بر روی checkbox تمامی فیلدها، تیک آن ها را بردارید.


آموزش SQL

پنجره ی Criteria

هنگامی که در Query Designer بر روی یک ستون راست کلیک کرده و موس را بر روی درایه ی pane قرار می دهید، خواهی دید که در زیر گزینه ی Diagram گزینه ی دیگری به نام Criteria وجود دارد. برای دسترسی به آن:
1. در منوی اصلی: Query Designer -> Pane -> Criteria
2. سپس بر روی ناحیه ای از پنجره کلیک کرده و بعد window -> Pane -> Criteria
3. در نوار ابزار Query Designer، بر روی دکمه ی آموزش SQL Show Criteria Pane کلیک کنید.
پنجره ی Criteria لیستی از ستون ها را نمایش می دهد که برای ساخت دستور SQL به صورت ویژوال بکار می رود.


آموزش SQL

پنجره ی Criteria از سطرها و ستون هایی تشکیل شده است. ستونی که در کناره ی سمت چپ پنجره قرار می گیرد، کلا از کادرهای خاکستری تشکیل شده است که به شما این امکان را اندازه های آن ها را تغییر دهید. به منظور تغییر اندازه ی یک ستون، مکان نمای موس را بین دو سرستون (column header) قرار داده و بکشید:


آموزش SQL

برای تغییر اندازه ی ستون، بین دو سرستون کلیک کرده و آن را در جهت دلخواه بکشید.
بخش Criteria را می توان برای گزینش و واکشی اطلاعات مورد استفاده قرار داد. در این قسمت بایستی ستونی که می خواهید اطلاعات آن را بازیابی کنید انتخاب نمایید. جهت انتخاب ستون، کافی است بر روی کادر موجود در زیر سرستون Column کلیک نمایید. خواهید دید که آن کادر به یک لیست کشویی (combo box) تبدیل شده است. پس از آن بر روی آیکون هشتک لیست کشویی کلیک نموده و سپس اسم دلخواه را برای فیلد وارد کنید.


آموزش SQL

اگر بر روی کادر تیک مربوط به یکی از ستون ها در پنجره یDiagram کلیک کنید، خواهید دید که آن فیلد در زیر سرستون Column پنجره ی Criteria انتخاب می شود.
درون پنجره ی Criteria، چنانچه بر روی یک combo box که از قبل دربردارنده ی ستون می باشد کلیک کرده و ستون دیگری را انتخاب نمایید، در آن صورت ستون جدید جایگزین ستون قبلی می شود.


آموزش کاربردی: استفاده ازپنجره ی Criteria

1. در نوار ابزار Query Designer، بر روی دکمه ی آموزش SQL Show Criteria Pane کلیک کنید.


آموزش SQL

پنجره ی SQL

در زیر پنجره ی Criteria، کادر SQL را مشاهده می کنید. برای دستیابی به آن:
\ 1. در منوی اصلی: Query Designer -> Pane -> SQL.
2. در داخل پنجره راست کلیک کرده و بعد: window -> Pane -> SQL
3. در نوار ابزار Query Designer، بر روی دکمه ی آموزش SQL Show SQL Pane کلیک نمایید.
در کادر SQL، دستوری را مشاهده می کنید که از انتخاب های صورت گرفته در پنجره ی Diagram یا Criteria نشات می گیرد. پس از کلیک بر روی کادر تیک یک ستون، آن فیلد (ستون) در پنجره ی Criteria انتخاب شده و اسم آن در قسمت SQL ظاهر می شود.


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

1. داخل کادر Diagram راست کلیک کرده، اشاره گر موس را بر روی Pane قرار دهید، سپس در پنجره ی SQL کلیک کرده و عبارت delete TOP (200) را تایپ کنید.


آموزش SQL

پنجره ی Results

زمانی که کوئری را اجرا می کنید، در پایین ترین قسمت پنجره (در زیر کادر SQL)، کادر جدیدی به نام Results پدیدار می شود که نتیجه ی اجرای کوئری را نمایش می دهد:
1. در منوی اصلی: Query Designer -> Pane -> Results.
2. داخل پنجره راست کلیک نمایید و سپس window -> Pane -> Results.
3. در نوار ابزار Query Designer، بر روی دکمه ی آموزش SQL Show Results Pane کلیک کنید.
چنانچه از پیش اسم ستونی را که می خواهید به جدول اضافه کنید را می دانید (اسم ستون در کادر Diagram قابل مشاهده می باشد) کافی است آن را مستقیما در دستور SQL درج نمایید.


مدیریت بخش های مختلف پنجره

گاهی به بخش خاصی از پنجره نیاز ندارید و یا می خواهید بعضی از قسمت های آن را مخفی کنید. برای این منظور، بایستی داخل پنجره راست کلیک کرده، سپس مکان نمای موس را بر روی ورودی Pane قرار داده و بعد اسم آن بخش را انتخاب کنید تا محو شود (Diagram، Criteria، SQL و Results).


آموزش SQL

استفاده از Query Editor برای گزینش و واکشی اطلاعات

بجای استفاده از پنجره Table، می توان از Query Editor برای انتخاب اطلاعات مد نظر و بازیابی آن ها بهره گرفت. برای آماده سازی Query Editor جهت گزینش داده های مورد نظر:
1. در پنجره ی Object Explorer، بر روی جدول دلخواه راست کلیک کرده و بعد گزینه ی Select Top 1000 rows را انتخاب کنید.
2. در Object Explorer بر روی جدول مورد نظر راست کلیک کرده، سپس Script Table As -> SELECT To -> New Query Editor Window را انتخاب کنید.
یک پنجره ی ویرایش کوئری جدید باز کنید. در این پنجره راست کلیک کرده و سپس Design Query in Editor... را انتخاب کنید.


آموزش SQL

در کادر محاوره ای Add Table، بر روی اسم جدول کلیک کرده، دکمه ی Add و به دنبال آن Close را کلیک کنید. در پی این کار، یک پنجره نمایان می شود که از سه بخش تشکیل شده: Diagram pane، Criteria pane و Results section.


انتخاب ستون

هر یک از روش های ذکر شده در بالا به شما این امکان را می دهد که با انتخاب یک یا چندین ستون در پنجره ی Query Designer، دستور مورد نظر SQL را به صورت کد دریافت کنید.
پس از انتخاب ستون های مورد نیاز در Query Designer، دکمه ی OK را کلیک کنید. به دنبال آن یک Query حاوی دستور SQL به نمایش گذاشته می شود. همچنین، نوار ابزار SQL Editor در زیر Standard toolbar اضافه خواهد شد. برای نمایش نوارابزار SQL Editor:
1. در منوی اصلی: View -> Toolbars -> SQL Editor.
2. بر روی نوار ابزار راست کلیک کرده و گزینه ی SQL Editor را انتخاب نمایید.

ارجاع (refer) به یک ستون

در SQL دستورات یا عبارتی را می نویسیم که اسم ستون های متعدد را دربرمی گیرد. در چنین عباراتی، با ذکر اسم ستون مشخص می کنیم به کدام ستون ارجاع می دهیم (اشاره می کنیم). راه های مختلفی برای انجام این کار وجود دارد که در زیر شرح داده شده:
1. می بایست اسم جدولی که ستون متعلق به آن می باشد را مشخص کرده، به دنبال آن عملگر نقطه و اسم ستون مورد نظر را درج کنید.


مثال:
Employee.LastName

2. اگر جدول مورد نظر را درون schema ی خاصی ایجاد نکرده اید (schema ای جدا از پیش فرض SQL تعریف نکرده اید)، در آن صورت واژه ی کلیدی dbo و بعد از آن عملگر نقطه، اسم جدول حاوی ستون، بار دیگر عملگر نقطه و در نهایت اسم ستون مورد نظر را وارد نمایید


مثال:
dbo.Employee.LastName

3. چنانچه جدول مورد نیاز به schema ای به غیر از پیش فرض SQL Server تعلق دارد، در آن صورت اسم schema و پس از آن عملگر نقطه، اسم جدول، عملگر نقطه و سرانجام اسم ستون را تایپ کنید.


مثال:
HumanResources.Employee.LastName

4. ابتدا اسم پایگاه داده (مالک جدول مورد نظر و ستون های آن)، سپس عملگر نقطه، اسم schema، نقطه، اسم جدول، کاراکتر نقطه و در پایان اسم ستون را درج کنید.


مثال:
RedOakHighSchool.HumanResources.Employee.LastName

اجرای دستورات SQL

پس از ایجاد دستور SQL، می توان با اجرای کوئری نتیجه ی آن را مشاهده کرد. برای این منظور:
1. در صورت استفاده از پنجره ی ایجاد جدول جدید (که با راست کلیک بر روی جدول در object explorer و انتخاب گزینه ی New Table باز می شود):
• در منوی اصلی مکان نمای موس را بر روی Query Designer قرار داده، سپس گزینه ی Execute SQL را انتخاب کنید.
• در نوار ابزار، بر روی Query Designer و پس از آن آموزش SQL Execute SQL button را کلیک کنید.
• در پنجره ی ایجاد جدول جدید راست کلیک کرده و گزینه ی Execute SQL را انتخاب نمایید.
2. اگر در پنجره ی Query Editor کدنویسی می کنید:
• در منوی اصلی، اشاره گر موس را بر روی مدخل Query قرار داده و گزینه ی Execute را انتخاب کنید.
• در نوار ابزار SQL Editor، بر روی دکمه ی آموزش SQL کلیک کنید.
• داخل Query Editor راست کلیک کرده و گزینه ی Execute را انتخاب نمایید.
پس از اجرای دستور، می بینید که کادر پایین با داده هایی از ستون های انتخابی جدول مورد نظر پر می شود.


دیگر ابزار و امکانات گزینش و واکشی اطلاعات

با اینکه SQL Server Management Studio یک رابط گرافیکی برای انتخاب و بازیابی اطلاعات فراهم می کند، می توان از امکانات و ابزار دیگری برای واکشی داده بهره گرفت. پنجره ی فرمان SQLCMD و Windows PowerShell دیگر ابزاری است که می توانید استفاده کنید.
برای شروع، ابزار Windows PowerShell یا (SQLCMD) Command Prompt را باز کنید.


استفاده از SQLCMD

برای واکشی اطلاعات از طریق Command Prompt، بایستی پس از باز کردن آن، دستور SQLCMD -q را تایپ کرده و بلافاصله پس از آن یک خط فاصله با کلید space و در آخر عبارت لازم را درج نمایید.


استفاده ار ابزار PowerShell

در صورت استفاده از PowerShell برای کدنویسی و واکشی اطلاعات، به منظور مشخص کردن پایگاه داده مورد استفاده، در پنجره ی Object Explorer، بر روی پایگاه داده راست کلیک کرده و گزینه ی Start PowerShell را انتخاب کنید. در خط فرمان، دستور SQL مورد نظر را تایپ کرده، سپس کلید Enter را فشار دهید. در این مورد، دستور مورد نظر بر روی جدولی از پایگاه داده که در دستور SELECT نام آن را ذکر کرده بودید، اجرا می شود. اگر می خواهید دستور موردنظر به نمونه ی دیگری از server اعمال شود، پس از درج فرمول فوق، -ServerInstance ، سپس space و در آخر نمونه ی سرور را محصور شده در دابل کوتیشن، وارد کنید (SQL server instance: سرور دستگاه فیزیکی یا مجازی است که نرم افزار SQL Server بر روی آن نصب شده و اجرا می گردد. یک نمونه یا instance درواقع مجموعه ای از دیتابیس ها است که بر روی یک سرویس واحد SQL Server یا همان instance مستقر می باشد).


آموزش کاربردی: راه اندازی Windows PowerShell

  1. در پنجره ی Object Explorer، بر روی اسم server راست کلیک نموده و سپس گزینه ی Start PowerShell را انتخاب نمایید.
  2. واژه ی SQLCMD (یا sqlcmd) را تایپ نموده و بعد کلید Enter را بزنید.
  3. عبارت USE LambdaSquare1; را وارد کرده، سپس Enter را فشار دهید.
  4. در پایان دستور GO را تایپ کرده و کلید Enter را بزنید.
آموزش SQL

زبان T-SQL و گزینش/استخراج اطلاعات

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


نمایش نتایج تجزیه و تحلیل داده های SQL

پس از درج دستور SQL در پنجره ی ایجاد جدول جدید یا ویرایش کوئری (Query Editor)، می توانید با اجرای کد، نتیجه و خروجی آن را مشاهده نمایید. نتیجه ی عملیات در بخش پایینی رابط گرافیکی محیط SQL Server به نمایش در می آید. در کل دو روش برای نمایش خروجی وجود دارد.
برای مشخص کردن نحوه ی نمایش خروجی دستور SQL، در صورت استفاده از Query Editor، دو گزینه پیشِرو دارید:
برای نشان دادن نتیجه به صورت نوشته یا متن:
• در نوارابزار SQL Editor، بر روی دکمه ی آموزش SQL Results To Text کلیک کنید.
• داخل پنجره Query Editor راست کلیک کنید، مکان نمای موس را بر روی گزینه ی Results To قرار داده و سپس گزینه ی Results To Text را انتخاب نمایید.
نتایج اجرای دستور تحت زبانه ی Results در قالب نوشته هایی پدیدار می شود.
حال به منظور نمایش نتایج به صورت صفحه گسترده (SpreadSheet):
• در نوار ابزار SQL Editor، بر روی دکمه ی آموزش SQL Result To Grid کلیک کنید.
• داخل پنجره راست کلیک کنید، اشاره گر موس را بر روی گزینه ی Results To هدایت کرده و سپس Results To Grid را انتخاب نمایید.
نتیجه ی به صورت یک صفحه گسترده نمایش داده خواهد شد.
توجه داشته باشید که داخل پنجره ی Query Editor، بایستی کد مجاز که یک دستور استاندارد SQL را تشکیل می دهد، وارد نمایید.


مشاهده ی تعداد سطرهای انتخابی

یادآور می شویم که کادر پایین پنجره ی Query Editor حاوی دو زبانه (تب) می باشد. زمانی که دستوری اجرا می شود، به طور پیش فرض، زبانه ی Messages یک پیغام را نمایش می دهد. در این تب همچنین ممکن است تعداد سطرهای انتخاب شده را به نمایش گذاشته شود. به همین نحو، در صورت استفاده ازCommand Prompt برای کدنویسی و اجرای دستورات SQL، خواهید دید که خط پایانی تعداد ستون ها را نمایش می دهد. همچنین در پنجره ی Properties، فیلدی به نام Rows Returned وجود دارد که تعداد سطرهای تولید شده (برگشتی) توسط دستور SQL را نشان می دهد.
اگر نمی خواهید پیامی نمایش داده شود، در آن صورت کافی است پرچم (flag) NOCOUNTرا در فرمول زیر بکار ببرید:


SET NOCOUNT { ON | OFF }

چنانچه flag را بر روی ON تنظیم کنید، پیامی در پی اجرای دستور نمایش داده نمی شود. در Query Editor، پس از اجرای دستور پیام "Command(s) completed successfully" نمایش می یابد. این پیغام صرفا به ما اطلاع می دهد کوئری با موفقیت اجرا شده است.
در پنجره ی فرمان (Command Prompt)، هیچ پیامی به دنبال اجرای دستورات نشان داده نمی شود. حال اگر می خواهید تعداد سطرهای ارائه شده (در نتیجه ی اجرای کوئری) نمایش داده شود، می بایست پرچم NOCOUNT را فراخوانی کرده و مقدارش را بر روی OFF تنظیم کنید.


گزینش و استخراج اطلاعات فیلد: نحوه ی استفاده از دستور SELECT

پرکاربرد ترین کلیدواژه و دستور مورد استفاده در SQL، بی شک SELECT می باشد. برای اینکه یک درخواست پردازش شده و مقدار ذخیره شده در فیلد مورد نظر استخراج گردد، ابتدا لازم است آیتم مورد انتخاب را در دستور SELECT مشخص نمایید. فرمول استفاده از دستور SELECT به شرح زیر می باشد:


SELECT WhatField(فیلد مورد نظر) FROM WhatObject(شی مورد نظر) ;

نکته:

یاداور می شویم که SQL به بزرگ و کوچکی حروف حساس نیست. بنابراین SELECT با Select یا select هیچ تفاوتی ندارد.


همان طور که می دانید دو واژه ی کلیدی SELECT و FROM الزامی می باشند. در جایگاه WhatField(s) بایستی اسم ستون و در جایگاه WhatObject اسم جدول (مالک ستون) را مشخص نمایید.


گزینش و بازیابی تمامی فیلدهای جدول

برای انتخاب تمامی رکوردهای جدول به صورت ویژوال، کافی است طبق تصویر زیر عمل کنید:


آموزش SQL
آموزش SQL

برای انتخاب تمامی فیلدهای یک جدول، کافی است عملگر * را در جایگاه WhatField(s) در فرمول بالا بکار ببرید. برای مثال، جهت گزینش و واکشی کلیه ی رکوردهای جدولی به نام Students، باید از دستور زیر استفاده کنید:


SELECT * FROM Registration.Students;

پس از درج دستور در پنجره ی Query Editor، باید دستور را اجرا کرده و نتیجه ی آن را مشاهده نمایید


مثال:
آموزش SQL

همچنین می توانید پیش از کاراکتر * کلیدواژه ی ALL را بکار ببرید.


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

1. دستور زیر را در پنجره ی PowerShell وارد نمایید:


SELECT ALL * FROM Presentation.Units;

2. کلید Enter را فشرده و کلیدواژه ی GO را وارد نمایید.
3. Enter را بار دیگر فشار دهید:


PS SQLSERVER:\SQL\SIRIOUS\DEFAULT> SQLCMD
1> USE LambdaSquare1;
2> GO
Changed database context to 'LambdaSquare1'.
1> SELECT ALL * FROM Presentation.Units;
2> GO
UnitNumber   Bedrooms    Bathrooms        Price         Deposit      Available
---------- ----------- -------------- ----------------- ------------ ---------
101             0          1.0          845.0000        200.0000         0
102             1          1.0          895.0000        250.0000         0
103             1          1.0          925.0000        275.0000         1
104             2          1.0         1050.0000        300.0000         0
105             1          1.0          885.0000        250.0000         1
106             3          2.0         1350.0000        425.0000         1
107             2          2.0         1185.0000        400.0000         0
108             0          1.0          865.0000        225.0000         1
109             2          1.0         1050.0000        350.0000         1
110             1          1.0          895.0000        250.0000         0
111             1          1.0          895.0000        250.0000         0
112             0          1.0          805.0000        200.0000         1
201             0          1.0          825.0000        200.0000         1
202             1          1.0          950.0000        325.0000         0
203             1          1.0          885.0000        250.0000         1
204             2          2.0         1125.0000        425.0000         1
205             1          1.0         1055.0000        350.0000         0
206             2          1.0         1165.0000        400.0000         1
207             1          1.0          895.0000        250.0000         0
208             0          1.0          815.0000        200.0000         1
210             1          1.0          895.0000        350.0000         1
211             2          2.0          925.0000        400.0000         1
212             3          2.0         1280.0000        500.0000         0
301             0          1.0          845.0000        200.0000         0
302             1          1.0          925.0000        250.0000         0
303             2          1.0          985.0000        275.0000         1
304             2          2.0         1250.0000        300.0000         0
305             1          1.0          945.0000        250.0000         1
306             3          2.0         1350.0000        425.0000         1
307             2          2.0         1285.0000        400.0000         0
308             0          1.0          875.0000        225.0000         1
309             2          1.0         1150.0000        350.0000         1
310             1          1.0          955.0000        250.0000         0
311             3          2.0         1325.0000        500.0000         0
312             0          1.0          825.0000        200.0000         1
(35 rows affected)
1>

(در صورتی که PowerShellبه درستی کار نمی کند، داخل محیط SQL Server، زبانه ی SQLQuery1.sql را انتخاب کرده و بعد کلیدهای Ctrl + A را بزنید تا تمامی دستورات انتخاب شوند.
اکنون دستور زیر را وارد کنید:


SELECT ALL * FROM Presentation.Units;
GO

کلید F5 را برای اجرای کد فشار دهید. )


مشخص کردن اسم فیلدها (ستون) در دستور SELECT

تعریف اسم ستون های جدول عبارت است از ذکر اسم جدولی است که ستون مورد نظر متعلق به آن است.
یک روش (روش اصلی) این است که اول اسم جدول، سپس عملگر نقطه و در پایان اسم ستون را مشخص نمایید.
در صورت استفاده از * برای انتخاب تمام رکوردها، می بایست ابتدا اسم جدول و در مقابل آن عملگر نقطه را درج نمایید.


SELECT Students.* FROM Registration.Students;

همچنین در تعریف و مشخص کردن اسم ستون در دستور SELECT، می توان schema ی آن را ذکر کرد. برای این منظور فرمول زیر را مورد استفاده قرار دهید:


 SchemaName.TableName.ColumnName

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

1. دستور زیر را در پنجره ی PowerShell وارد نمایید:
SELECT ALL Presentation.Units.*
2. کلید Enter را فشار داده و عبارت زیر را درج نمایید:
FROM Presentation.Units;

3. کلید Enter را زده و کلیدواژه ی GO را تایپ کنید.

(در صورتی که PowerShellبه درستی کار نمی کند، داخل محیط SQL Server، زبانه ی SQLQuery1.sql را انتخاب کرده و بعد کلیدهای Ctrl + A را بزنید تا تمامی دستورات انتخاب شوند.
اکنون دستور زیر را وارد کنید:


SELECT ALL Presentation.Units.* 
FROM Presentation.Units;
GO

با زدن کلید F5، کد جاری را اجرا کنید).

نام مستعار (Alias) یک جدول

Alias یک اسم مستعار برای شی ای در پایگاه داده می باشد. شما می توانید یک اسم مستعار برای جدول انتخاب کرده و در دستوراتی که نام ستون در آن ذکر می شود، بکار ببرید.
برای ایجاد alias ویژه ی یک جدول به صورت ویزاردی، پس از بازکردن آن از طریق گزینه ی Edit Top 200 Rows در Object Explorer، بر روی جدول داخل پنجره ی Diagram کلیک نمایید. سپس در پنجره ی Properties، فیلد Alias را انتخاب کرده و اسم دلخواه را تایپ کنید.


مثال:
آموزش SQL

برای تعریف یک alias از طریق کد و برنامه نویسی، می بایست ابتدا اسم جدول، سپس خط فاصله و به دنبال آن حرف یا کلمه ی مورد نظر را به عنوان اسم مستعار درج نمایید. مثال: Employee empl. در صورتی که جدول مورد نظر به یک schema تعلق دارد، در آن صورت پیش از اسم جدول اسم schema را مشخص کنید


مثال:
SELECT * FROM Registration.Students pupils;
GO

پیش تر گفته شد که می توان اسم ستون و یا برای انتخاب تمامی ستون ها * را همراه با اسم جدول در دستور بکار برد. در صورتی که قبلا برای جدول نام مستعار تعریف کرده اید، می توانید بجای اسم جدول آن نام مستعار را در دستور SELECT بکار ببرید. این دو نمونه یکسان هستند:


SELECT Registration.Students.* FROM Registration.Students;
GO

یا
SELECT pupils.* FROM Registration.Students pupils;
GO

همچنین می توانید یک alias برای جدول مورد نظر انتخاب کنید که از چندین واژه تشکیل شده است. در صورتی که نام مستعار را به صورت ویزاردی ایجاد می کنید، جدول را انتخاب کرده و کلمات مربوطه را فیلد Alias داخل پنجره ی Properties وارد نمایید. به مجرد اینکه کلید Enter را فشار می دهید، [] به طور خودکار به سمت چپ و راست اسم مورد نظر اضافه می شود. چنانچه نام مستعار را می خواهید با کدنویسی به کد تزریق کنید، در آن صورت بایستی اسم مستعار جدول را داخل دابل کوتیشن محصور نمایید.


مثال:
SELECT FirstName
FROM   Registration.Students "Little Angels";
GO

سپس برای تعریف ستون (اینکه به کدام جدول تعلق دارد)، اسم مستعار جدول که داخل دابل کوتیشن قرار گرفته را در دستور SELECT خود بکار ببرید.


مثال:
SELECT "Little Angels".FirstName
FROM   Registration.Students "Little Angels";
GO

بجای استفاده از دابل کوتیشن، می توان اسم مستعار جدول را داخل [] تایپ نمود. زمانی که اسم ستون ها را مشخص می کنید، می توانید alias را یا در داخل دابل کوتیشن و یا در [] محصور کنید.
در زمان تعریف alias برای جدول، باید کلیدواژه ی AS را بین اسم جدول و نام مستعار آن درج کرد. دو نمونه ی زیر هر دو مجاز بوده و تفاوتی با هم ندارند:


SELECT * FROM Registration.Students AS pupils;
GO

یا
SELECT pupils.* FROM Registration.Students AS pupils;
GO

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

1. در پنجره ی PowerShell، دستور زیر را وارد کنید:
SELECT ALL aparts.*

2. کلید Enter را زده و سپس عبارت زیر را تایپ کنید:
FROM Presentation.Units aparts;

3. در پایان واژه ی کلیدی GO را به عنوان نشانگر پایان مجموعه دستورات وارد نمایید.
4. کلید Enter را بزنید.
(در صورتی که PowerShellبه درستی کار نمی کند، داخل محیط SQL Server، زبانه ی SQLQuery1.sql را انتخاب کرده و بعد کلیدهای Ctrl + A را بزنید تا تمامی دستورات انتخاب شوند.
اکنون دستور زیر را وارد کنید:

SELECT ALL aparts.* 
FROM Presentation.Units aparts;
GO

با اعمال کلید F5، کد جاری را اجرا نمایید.
5. در محیط SQL Server، روی زبانه (تب) Presentation.Units کلیک نمایید.
6. با کلیک بر روی چک باکس * (All Columns)، آن را تیک دار کنید. اگر در پی انتخاب آیت مزبور کادر پیغامی پدیدار شد، آن را خوانده و بعد دکمه ی OK را کلیک کنید.

آموزش SQL
پس از بستن کادر مذکور، چک باکس * (All Columns) را غیر فعال کنید.
7. در منوی اصلی، اشاره گر موس را بر روی Query Designer هدایت کرده، سپس گزینه ی Execute SQL را انتخاب کنید.

آموزش SQL
8. در پنجره ی Diagram، با کلیک بر روی چک باکس * (All Columns)، تیک آن را بردارید.

synonym چیست؟

سینونیم اسمی جایگزین برای یک شی در پایگاه داده است که از قبل نامی برای آن مشخص شده است. به عبارتی دیگر، سینونیم یک اسم مستعار برای شی از پیش موجود در پایگاه داده می باشد. در زمانی که می خواهید اسمی کوتاه تر بجای اسم اصلی شی در دستورات SQL بکار ببرید، امکان synonym بسیار به کار می آید. در نگاه اول شاید این گونه به نظر برسد که synonym همان alias بوده و فرقی میان آن ها وجود ندارد. Alias محلی تعریف می شود و کاربرد آن محدود به همان کدی می باشد که در آن تعریف شده است، درحالی که synonym یک نام مستعار است که به عنوان یک شی و به صورت سراسری تعریف می شود (بدین معنا که می توان در سرتاسر پایگاه داده آن را مورد استفاده قرار داد).
می توانید یک synonym را به صورت ویژوال یا با کدنویسی تعریف کنید. برای تعریف آن به صورت ویزاردی یا ویژوال، در پنجره ی Object Explorer، گره پایگاه داده را باز کنید. بر روی Synonyms راست کلیک کرده و بعد گزینه ی New Synonym را انتخاب کنید:

آموزش SQL

در پی کلیک بر روی گزینه ی مزبور، پنجره ی محاوره ی New Synonym ظاهر می شود:
فرمول ایجاد synonym از طریق کدنویسی به شرح زیر می باشد:


CREATE SYNONYM [ schema_name_1. ] synonym_name FOR < object>
< object> :: =
{
    [ server_name.[ database_name ] . [ schema_name_2 ].| database_name . [ schema_name_2 ].| schema_name_2. ] object_name
}

در کادر متن Synonym Name، اسم دلخواه را تایپ کنید. این اسم باید از قوانین نام گذاری در T-SQL پیروی کند. در صورتی که شی مورد نظر متعلق به یک schema می باشد و می خواهید یک synonym برای آن تعریف کنید، کافی است آن را در کادر متن Synonym Schema درج نمایید. انتخاب اسم مستعار برای schema اختیاری می باشد. در صورت تمایل می توانید اسم سرور را نیز مشخص کنید، برای این منظور کافی است واژه ی دلخواه را در کادر Server Name وارد کنید. به طور پیش فرض، synonym می بایست در پایگاه داده ی جاری ایجاد شود. به همین خاطر است که داخل کادر متن Database Name، در پنجره ی محاوره ای New Synonym، اسم پایگاه داده ی مورد استفاده (فعلی) از پیش انتخاب شده است. در غیر این صورت خود می توانید آن را به صورت دستی مشخص کنید. در صورتی که شی مورد نظر به schema ای غیر از پیش فرض SQL Server تعلق دارد، می توانید آن را در کادر متن Schema تایپ کنید. نوع شی را می توان در کادر متن مربوطه (Object type) در پنجره ی New Synonym تعریف کرد. در این کادر همچنین یک لیست کشویی به نام Object Name می بینید که دربردارنده ی فهرستی از اشیایی است که به آن schema تعلق دارد. شما می توانید شی دلخواه را از این لیست کشویی انتخاب کنید. چنانچه این کار را با کد نویسی انجام می دهید، کافی است اسم اصلی شی را پس از اسم schema ذکر کنید.


مثال:
آموزش SQL

پس از انتخابات لازم در کادر محاوره ی New Synonym، کافی است بر روی OK کلیک نمایید تا synonym ایجاد شود. نمونه ای از تعریف synonym برای جدول از طریق کدنویسی را در زیر مشاهده می کنید:


CREATE SYNONYM Staff
FOR Personnel.Employees;
GO

برای استفاده از synonym، می بایست آن را در جایگاه اسم شی در کد، وارد نمایید. مثال زیر یک synonym را که به صورت ویژوال ایجاد شده، مورد استفاده قرار می دهد:


SELECT FirstName FROM Pupils;
GO

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


SELECT FirstName FROM Staff;
GO

همچنین می توانید از synonym برای توصیف اسم ستون استفاده کنید (بجای اسم جدول نام مستعار آن را پس از کلیدواژه ی FROM درج نمایید). نمونه:

,br>
SELECT Staff.FirstName FROM Staff;
GO

می توان یک نام مستعار محلی (alias) برای synonym ایجاد نموده و آن را بکار برد


مثال:
SELECT kids.FirstName
FROM Pupils kids;
GO

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

1. دستور زیر داخل پنجره ی PowerShell تایپ کنید:


CREATE SYNONYM Apartments

2. با زدن Enter یک خط پایین رفته و عبارت زیر را وارد کنید:


FOR Presentation.Units;

3. بار دیگر Enter را زده و دستور GO را درج کنید.


4. برای استفاده از synonym، دستور زیر را تایپ نمایید:


SELECT * FROM Apartments;

5. کلید Enter را زده و به خط بعدی بروید. سپس واژه ی رزرو شده ی GO را وارد کرده و بار دیگر Enter را بزنید.
6. به منظور استفاده از یک نام مستعار (alias) برای synonym، کد زیر را وارد کنید:


SELECT apts.* FROM Apartments apts;


7. دستور GO را تایپ کرده و Enter را بزنید.
8. اکنون به محیط SQL Server باز گردید.


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

گاهی بجای انتخاب و واکشی تمامی رکوردهای یک جدول، لازم است تنها یک ستون از آن جدول را استخراج کرد. به منظور گزینش یک رکورد به صورت ویژوال، ابتدا بایستی پنجره ی Query Editor (نه Query Designer) را باز نمایید و سپس بر روی سرستون (column header) مورد نظر کلیک نمایید:


آموزش SQL

برای انتخاب ستون مورد نظر، لازم است اسم آن ستون را در جایگاه WhatField در فرمول ذکر شده درج نمایید. به عنوان مثال، برای بازیابی فامیلی دانش آموزان (مقادیر ستون last names)، دستور زیر را اجرا نمایید:


SELECT LastName FROM Registration.Students;
GO

می توانید برای توصیف ستون (برای مشخص و تعریف کردن ستونی که می خواهیم واکشی کنیم)، پیش از اسم ستون، اسم جدول و به دنبال آن عملگر نقطه را درج نمایید، بدین صورت: Students.LastName.


SELECT Students.LastName FROM Registration.Students;

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


SELECT Students.LastName FROM Registration.Students;

در پی اجرای دستور، تنها آن ستونی نمایش داده می شود که حاوی مقادیر ستون LastName می باشد.


آموزش کاربردی: واکشی مقدار یک فیلد

1. در پنجره ی Diagram، چک باکس Price را تیک دار نمایید.
2. در نوار ابزار Query Designer، دکمه ی آموزش SQL Execute SQL را کلیک کرده و خروجی آن را مشاهده کنید:


آموزش SQL

می بینید که 35 رکورد برمی گرداند. برخی از مقادیر ستون Price تکراری هستند (بیش از یکبار تکرار می شوند) که نشانگر هم قیمت بودن تعدادی از آپارتمان ها می باشد.
3. در پنجره ی PowerShell، دستور زیر را وارد نمایید:


SELECT aparts.UnitNumber FROM Presentation.Units aparts;

4. کلید Enter را زده و به خط بعدی بروید.
5. کلیدواژه ی GO را درج کرده و بار دیگر Enter را بزنید.


آموزش SQL

6. برای استفاده از synonym، دستور زیر را وارد نمایید:


SELECT Bedrooms FROM Apartments;

7. با زدن Enter به خط بعدی بروید.
8. کلیدواژه ی GO را وارد نموده و به خط بعدی بروید.
9. برای استفاده از نام مستعار (alias) یک synonym (اسم مستعار محلی که برای synonym تعریف کرده بودیم)، دستور زیر را تایپ کنید:


SELECT apts.Bathrooms FROM Apartments apts;

10. سرانجام کلیدواژه ی GO را وارد کرده و کلید Enter را بزنید.


انتخاب و استخراج فیلدهای غیر تکراری

انتخاب و استخراج فیلدهای غیر تکراری


SELECT Videos. Rating FROM Videos;
GO

نتیجه ی زیر را برمی گرداند:


CREATE DATABASE VideoCollection1;
GO
CREATE TABLE Videos
(
	Title nvarchar(50),
	Director nvarchar(50),
	Rating nvarchar(10),
	YearReleased int
);
GO
INSERT INTO Videos
VALUES(N'Her Alibi', N'Bruce Beresford', N'PG-13', 1998),
      (N'Two for the Money', N'D.J. Caruso', N'R', 2008),
      (N'Memoirs of a Geisha', N'Rob Marshall', N'PG-13', 2006);
GO
INSERT INTO Videos(Rating, Title, Director)
VALUES(N'R', N'Wall Street', N'Oliver Stone'),
      (N'G', N'Annie', N'John Huston'),
      (N'PG', N'Incredibles (The)', N'Brad Bird'),
      (N'PG-13', N'Sneakers', N'Phil Alden Robinson');
      
GO
SELECT Videos.Rating FROM Videos;
GO

آموزش SQL

همان طور که انتظار می رفت، فیلدهای PG-13 و R چندبار تکرار شده اند. گاهی می خواهیم هر مقدار تنها یکبار نمایش داده شود. برای دستیابی به این نتیجه (به صورت ویژوال)، در محیط Query Designer، بر روی چک باکس ستون مورد نظر (داخل پنجره ی Diagram) کلیک کنید و یا فیلد دلخواه را در کادر Criteria انتخاب نمایید. حال به پنجره ی Properties مراجعه نموده و مقدار فیلد Distinct Values را بر روی Yes تنظیم کنید:


آموزش SQL

در SQL، جهت بازیابی لیست مقادیری مشخص و غیر تکراری از یک ستون، کلیدواژه ی DISTINCT را بین دستور SELECT و اسم ستون مورد نظر درج نمایید.


مثال:
آموزش SQL

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


آموزش کاربردی: بازیابی مقادیر غیرتکراری از یک ستون

1. دستور زیر را در پنجره ی PowerShell تایپ کنید:


SELECT DISTINCT aparts.Bedrooms FROM Presentation.Units aparts;

2. با کلید Enter به خط بعدی رفته و کلیدواژه ی GO را وارد کنید.
3. بار دیگر Enter را بزنید.


آموزش SQL

سطرهایی برگردارنده می شوند که نشانگر آپارتمان هایی بدون اتاق خواب و یا به ترتیب 1، 2، 3 اتاق خواب می باشند.
4. برای بستن PowerShell، دستور exit را درج کرده و کلید Enter را بزنید.
5. بار دیگر exit را تایپ کرده و کلید Enter بزنید.
6. در محیط SQL Server، در بخش مربوط به SQL و بین SELECT و Price دستور DISTINCT را تایپ کنید.
7. در نوار ابزار Query Designer، بر روی دکمه ی آموزش SQL کلیک کرده و نتیجه ی اجرای دستور را مشاهده نمایید:


آموزش SQL

این بار می بینید که هر مقدار (price) تنها یکبار تکرار شده است. در نتیجه تنها 24 سطر بازیابی شده اند. در پنجره ی Diagram، کادر تیک ستون Price را بردارید. حال در کادر SQL، کلیدواژه ی DISTINCT را حذف نمایید.


استخراج چندین فیلد از یک جدول یکسان

برای ذکر چندین ستون در یک دستور، کافی است آن ها را به ترتیب در جایگاه WhatField(s) فرمول یاد شده، لیست نمایید. بایستی تمامی ستون ها را، به استثنای آخرین ستون، به وسیله ی ویرگول از هم جدا کنید. دستور نحوی که بکار می برید بدین شکل خواهد بود:


SELECT Column1, Column2, Column_n FROM WhatObject;

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


SELECT FirstName, LastName, Gender, EmailAddress, HomePhone
FROM Registration.Students;

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


SELECT Students.FirstName,
       Students.LastName,
       Students.Gender,
       Students.EmailAddress,
       Students.HomePhone
FROM Registration.Students;

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


مثال:
SELECT Students.FirstName,
       LastName,
       Students.Gender,
       EmailAddress,
       HomePhone
FROM Registration.Students;

با اجرای کوئری، نتیجه ی زیر حاصل می گردد:


آموزش SQL

یادآور می شویم که می توان برای جدول یک نام مستعار (alias) تعریف کرد. برای این منظور پیش از ستون اسم دلخواه (به عنوان نام مستعار)، سپس عملگر نقطه و به دنبال آن اسم واقعی جدول و در آخر واژه یا حرفی که به عنوان نام مستعار انتخاب کرده اید را تایپ نمایید.


مثال:
                            
SELECT std.FirstName,
       std.LastName,
       std.Gender, 
       std.EmailAddress, 
       std.HomePhone
FROM Registration.Students std;

به یاد داشته باشید که اگر نام مستعار از چندین کلمه تشکیل شده، در آن صورت می توانید آن را بین [] یا دابل کوتیشن محصور کنید.


مثال:
SELECT [Little Angels].FirstName,
       "Little Angels".LastName,
       [Little Angels].HomePhone,
       "Little Angels".ParentsNames
FROM   Registration.Students [Little Angels];
GO

واکشی مقادیر

1. برای بازیابی مقادیر ستون های UnitNumber و Price، در کادر Diagram، بر روی چک باکس UnitNumber و Price کلیک کرده و آن را تیک دار نمایید (در صورت مواجه با پنجره ی حاوی پیغام خطا، آن را خوانده و OK را کلیک نمایید، سپس بار دیگر بر روی آن کادرهای تیک کلیک کنید).
2. در پنجره راست کلیک کرده و گزینه ی Execute SQL را انتخاب نمایید.


آموزش SQL

3. در پنجره ی Diagram، تیک تمامی چک باکس ها را بردارید.
4. برای بازیابی فهرستی از واحدهای آپارتمان، تعداد اتاق خواب و قیمت، موجود یا ناموجود بودن آن ها، باید چک باکس های UnitNumber، Bedrooms، Price و در نهایت Available را تیک دار نمایید.
5. داخل محیط پنجره راست کلیک نموده و گزینه ی Execute SQL را اتنخاب کنید.


آموزش SQL

گزینش و واکشی مقادیر فیلد از چند جدول مختلف

اگر در پایگاه داده ی خود بجای یک جدول، چندین جدول مختلف ایجاد کرده و مقادیری را در آن ها ذخیره کرده اید، در آن صورت می توانید یک دستور را فراخوانی نمایید که فیلدهای مد نظر را از آن جداول استخراج می کند. نه جداول و ستون ها لازم نیست هیچ وجه مشترکی داشته باشند. فرمولی که باید دنبال کنید به شرح زیر می باشد:


SELECT WhatField(s) FROM Table_1, Table_2, Table_n

دستور را با واژه کلیدی SELECT و لیست فیلدهایی که باید از جداول بیرون کشیده شوند آغاز کنید. چنانچه جداول مورد نظر دارای ستون هایی با اسم های مختلف هستند، شما می توانید اسم هر ستون را ذکر نمایید. جداول زیر را درنظر داشته باشید:


CREATE DATABASE Exercise;
GO
USE Exercise;
GO
CREATE TABLE Employees
(
  [Empl #] nchar(7),
  [First Name] nvarchar(20),
  [Last Name] nvarchar(20),
  [Hourly Salary] money
);
GO
CREATE TABLE Products
(
	Number int,
	Name nvarchar(50),
	UnitPrice money,
);
GO
INSERT INTO Employees
VALUES(N'207-025', N'Julie', N'Flanell', 36.55),
	  (N'926-705', N'Paulette', N'Simms', 26.65),
	  (N'240-002', N'Alexandra', N'Ulm', 12.85),
	  (N'847-295', N'Ellie', N'Tchenko', 11.95);
GO
INSERT INTO Products
VALUES(217409, N'Short Black Skirt', 55.85),
      (284001, N'Pencil Skirt', 49.00);
GO

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


SELECT [Empl #], [First Name], [Last Name], Name, UnitPrice
FROM Employees, Products;
GO

زمانی که فیلدهایی را از جداول مختلف انتخاب می کنید، مقادیر فیلدها به همان ترتیبی که در دستور SELECT ذکر کرده اید در خروجی نمایش داده می شوند. در نتیجه، کوئری حاصل، تعداد رکوردهای جدول اول * تعداد رکوردهای جدول را دربرخواهد داشت. به عنوان مثال، اگر جدول اول 4 سطر و جدول دوم 2 سطر داشته باشد، دستور نتیجه ی 4 x 2 = 8 را در خروجی برمی گرداند. بنابراین نتیجه ی دستور بالا به شرح زیر خواهد بود:


آموزش SQL

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


DROP TABLE Employees;
GO
DROP TABLE Products;
GO
CREATE TABLE Employees
(
  [Empl #] nchar(7),
  Name nvarchar(50),
  [Hourly Salary] money
);
GO
CREATE TABLE Products
(
	Number int,
	Name nvarchar(50),
	UnitPrice money,
);
GO
INSERT INTO Employees
VALUES(N'207-025', N'Julie Flanell', 36.55),
	  (N'926-705', N'Paulette Simms', 26.65),
	  (N'240-002', N'Alexandra Ulm', 12.85),
	  (N'847-295', N'Ellie Tchenko', 11.95);
GO
INSERT INTO Products
VALUES(217409, N'Short Black Skirt', 55.85),
      (284001, N'Pencil Skirt', 49.00);
GO

در زمان انتخاب ستون ها، بایستی نام جدول مالک ستون های هم نام را مشخص کنید. در غیر این صورت، با خطا مواجه خواهید شد. بنابراین، می توان برای دسترسی به ستون های با نام Name به ترتیب زیر اقدام کرد:


SELECT [Empl #], empl.Name, prod.Name, UnitPrice
FROM Employees empl, Products prod;
GO

نتیجه ی زیر را بدست می دهد:


آموزش SQL
البته می توانید در صورت تمایل نام جدول تمام ستون ها را ذکر کنید.
مثال:
DROP TABLE Employees;
GO
DROP TABLE Products;
GO
CREATE TABLE Employees
(
  [Empl #] nchar(7),
  [First Name] nvarchar(20),
  [Last Name] nvarchar(20),
  [Hourly Salary] money
);
GO
CREATE TABLE Products
(
	Number int,
	Name nvarchar(50),
	UnitPrice money,
);
GO
INSERT INTO Employees
VALUES(N'207-025', N'Julie', N'Flanell', 36.55),
      (N'926-705', N'Paulette', N'Simms', 26.65),
      (N'240-002', N'Alexandra', N'Ulm', 12.85),
      (N'847-295', N'Ellie', N'Tchenko', 11.95);
GO
INSERT INTO Products
VALUES(217409, N'Short Black Skirt', 55.85),
      (284001, N'Pencil Skirt', 49.00);
GO
SELECT empl.[Empl #], empl.[First Name], empl.[Last Name],
       prod.Name, prod.UnitPrice
FROM Employees empl, Products prod;
GO

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


گزینش و استخراج رکوردهای چند جدول

در Query Editor یا Query Designer، می توان رکوردهای هر تعداد جدول که لازم دارید را نمایش دهید. لزومی ندارد این جداول هیچ وجه مشترکی با هم داشته باشند، حتی لازم نیست جداول مورد نظر متعلق به پایگاه داده ای یکسان باشند. برای مثال، پایگاه داده ی زیر که Cruiseنام دارد و دربردارنده ی جدولی با نام Cabins می باشد را درنظر بگیرید:


CREATE DATABASE Cruise;
GO
USE Cruise;
GO
CREATE TABLE Cabins(
    CabinType nvarchar(20) not null,
    Deck nchar(20),
    Size int,
    Rate1Passenger money,
    Rate2Passengers money);
GO
INSERT INTO Cabins -- Size in sq/ft
VALUES(N'Inside', N'Riviera', 215, 289.00, 578.00),
      (N'Outside', N'Riviera', 185, 319.00, 638.00),
      (N'Outside', N'Riviera', 225, 389.00, 778.00),
      (N'Suite', N'Verandah', 295, 1009.00, 2018.00),
      (N'Inside', N'Upper', 185, 379.00, 758.00),
      (N'Inside', N'Main', 215, 359.00, 718.00),
      (N'Outside', N'Riviera', 185, 349.00, 698.00),
      (N'Suite', N'Main', 300, 885.00, 1680.00);
GO

در زیر پایگاه داده ی دیگری با نام Video Collection را مشاهده می کنید که دارای جدولی به نام Videos می باشد:


CREATE DATABASE VideoCollection
GO
USE VideoCollection
GO
CREATE TABLE Videos
(
	Title nvarchar(50), 
	Director nvarchar(50),
	WideScreen bit,
	Rating nchar(10),
	YearReleased int
)
GO
INSERT INTO Videos
VALUES(N'War of the Roses (The)', N'Dany de Vito', 0, N'R', 2001),
      (N'Memoirs of a Geisha', N'Rob Marshall', 1, N'PG-13', 2006),
      (N'Last Castle (The)', N'Rod Lurie', 1, N'', 2001),
      (N'Sneakers', N'Phil Alden Robinson', 1, N'PG-13', 2003);
GO

جهت نمایش رکوردهای چند جدول، داخل Query Editor، یک دستور SELECT به ازای هر جدول نوشته و آن را اجرا کنید. چنانچه جداول به پایگاه داده های مختلفی تعلق دارند، در آن صورت بایستی به آن در کد اشاره کنید (اسم پایگاه داده را ذکر کنید).


مثال:
USE Cruise;
GO
SELECT CabinType AS [Cabin Type], Deck, Size AS [Size in sq/ft],
       Rate1Passenger AS [Rate for 1 Passenger],
       Rate2Passengers AS [Rate for 2 Passengers]
FROM Cabins;
GO
USE VideoCollection;
GO
SELECT Title, Director, WideScreen As [Has Wide Screen],
       Rating, YearReleased AS [(c) Year]
FROM Videos;
GO

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


آموزش SQL
  • 2920
  •    1322
  • تاریخ ارسال :   1394/11/23

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

ارسال

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

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