در این آموزش، با دستور SELECT
در SQL و اجزاء مختلف آن آشنا میشویم. دستور SELECT
یکی از مهمترین و پرکاربردترین دستورات SQL است که برای بازیابی دادهها از جداول استفاده میشود.
مقدمه
در آموزشهای قبلی با نحوه ایجاد جداول و ایندکسها در اکسس آشنا شدیم. جداول در اکسس و یا هر یک از انواع پایگاه دادهها نقش مخزن دادهها را بازی مینماید. دستور SELECT
در SQL برای استخراج دادهها از جداول کاربرد دارد.
نحوه نگارش (Syntax) دستور SELECT
دستور SELECT
در SQL برای بازیابی دادهها از یک یا چند جدول استفاده میشود. ساختار کلی این دستور به شکل زیر است:
SELECT
column1,
column2,
...
FROM
table_name
WHERE
condition
ORDER BY
column1 [ASC|DESC],
column2 [ASC|DESC],
...;
- SELECT column1, column2, …: ستونهایی را که میخواهید بازیابی کنید مشخص میکند. برای انتخاب همه ستونها از
*
استفاده کنید. - FROM table_name: جدولی که دادهها باید از آن بازیابی شوند را مشخص میکند.
- WHERE condition: (اختیاری) شرطهایی را برای فیلتر کردن رکوردها مشخص میکند.
- ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], …: (اختیاری) نتایج را بر اساس یک یا چند ستون مرتب میکند. بهطور پیشفرض، مرتبسازی به صورت صعودی (ASC) است، اما میتوانید از نزولی (DESC) نیز استفاده کنید.
بخشهای مختلف دستور SELECT در SQL
جزء SELECT
جزء SELECT
مشخص میکند که کدام ستونها باید بازیابی شوند. برای انتخاب همه ستونها از یک جدول میتوانید از *
استفاده کنید:
SELECT * FROM Students;
برای انتخاب ستونهای خاص:
SELECT FirstName, LastName FROM Students;
در کد بالا فقط ستونهای FirstName و LastName در نتایج نمایش داده خواهند شد.
جزء FROM
جزء FROM
مشخص میکند که دادهها از کدام جدول باید بازیابی شوند:
SELECT FirstName, LastName FROM Students;
جزء WHERE
جزء WHERE
برای فیلتر کردن رکوردها بر اساس شرایط خاص استفاده میشود. در کد زیر نتایج فقط برای ردیفهایی که تاریخ تولد آنها بعد از تاریخ 2000-01-01
باشد نمایش داده خواهند شد.
SELECT FirstName, LastName FROM Students
WHERE BirthDate > #2000-01-01#;
در آموزشهای بعدی جزء WHERE را با جزئیات و مثالهای بیشتری بررسی خواهیم کرد.
4. جزء ORDER BY
جزء ORDER BY
برای مرتبسازی نتایج بر اساس یک یا چند ستون استفاده میشود. در دستور زیر نتایج بر اساس مقدار ستون LastName بصورت صعودی (الف تا ی) مرتب خواهد شد.
SELECT FirstName, LastName FROM Students
ORDER BY LastName ASC;
یا برای مرتبسازی نزولی در دستور زیر نتایج بر اساس مقدار ستون LastName بصورت صعودی (ی تا الف) مرتب خواهد شد:
SELECT FirstName, LastName FROM Students
ORDER BY LastName DESC;
5. ترکیب اجزاء مختلف
برای درک بهتر، یک مثال جامع از دستور SELECT
با تمامی اجزاء آن را مشاهده میکنید:
SELECT FirstName, LastName, BirthDate
FROM Students
WHERE BirthDate > #2000-01-01#
ORDER BY LastName ASC, FirstName DESC;
در این مثال:
- ستونهای
FirstName
،LastName
وBirthDate
از جدولStudents
بازیابی میشوند. - فقط رکوردهایی که
BirthDate
آنها بعد از'2000-01-01'
است، بازیابی میشوند. - نتایج ابتدا بر اساس
LastName
به صورت صعودی (ASC) و سپس بر اساسFirstName
به صورت نزولی (DESC) مرتب میشوند.
اجرای دستور SELECT
در SQL از طریق Design View
در تمام مثالهای بالا باید کوئری را از طریق ویرایشگر SQL View نوشته و سپس اجرا نمایید. اکسس برای راحتی کاربران Design View را فراهم کرده است. در Design View میتوانید از طریق یک محیط گرافیکی و Drag & Drop پرسوجوهای موردنیاز را بدون تایپ دستورات SQL ایجاد نمایید.
همچنین میتوانید پس از ایجاد یک پرسوجو دستور SQL آن را نیز ایجاد و برای کد VBA خود استفاده نمایید.
مراحل ایجاد پرسوجو یا کوئری از طریق Design View
- از منوی Create گزینه Query Design را انتخاب نمایید.
- در پنجره دیالوگ Show Table جدول موردنظرتان را انتخاب و روی آن دوبار کلید نمایید تا جدول به محیط Design اضافه شود. در صورتی که این پنجره را بستهاید از منوی Query Design روی کلید Add Tables کلیک نمایید.
- پنجره دیالوگ را ببندید.
- اگر روی هر کدام از ستونهای جدول انتخابی دوبار کلیک نمایید در بخش فیلدها اضافه خواهد شد. اگر روی * دوبار کلیک نمایید همه ستونهای جدول انتخاب خواهند شد و نیازی به اضافه کردن مجزای هر ستون نخواهد بود.
- در قسمت فیلدها برای هر فیلد چند ردیف بنامهای Field، Table، Sort، Show، Criteria و Or وجود دارد.
برای درک بهتر نحوه کار Design View، پرسوجوی زیر را از طریق این قابلیت اکسس مرحله به مرحله ایجاد مینماییم.
SELECT FirstName, LastName, BirthDate
FROM Students
WHERE BirthDate > #2000-01-01#
ORDER BY LastName ASC, FirstName DESC;
انتخاب جدول:
روی کلید Add Tables کلیک نمایید و جدول Students را انتخاب نمایید و روی آن دوبار کلیک نمایید تا به محیط Design اضافه شود. پنجره دیالوگ Show Table را ببندید.
انتخاب ستونها:
روی ستونهای FirstName و LastName و BirthDate به ترتیب دوبار کلیک نمایید تا به بخش پایین محیط Design اضافه شوند.
فیلتر کردن نتایج:
گفتیم که در SQL برای فیلتر نتایج از جزء WHERE استفاده مینماییم. در محیط Design View برای فیلتر نتایج بر اساس هر ستون از ردیف Criteria برای هر ستون استفاده میکنیم. ستون BirthDate را قبلا انتخاب کردهایم. در ردیف Criteria این فیلد عبارت > #2000-01-01#
را وارد نمایید.
مرتبسازی دادهها:
در کد SQL بالا از دو ستون LastName و FirstName برای مرتب سازی دادهها استفاده کردیم. در محیط Design View برای مرتب سازی دادهها بر اساس این دو ستون در ردیف Sort مربوط به فیلد LastName گزینه Ascending و برای فیلد FirstName گزینه Descending را انتخاب نمایید.
نمایش نتایج:
برای نمایش نتایج روی گزینه Run از برگه Query Design کلیک نمایید.
نمایش SQL
اکسس بطور خودکار SQL مربوط به کوئری را ایجاد مینماید. برای مشاهده SQL پرسوجو کافیست روی گزینه View از برگه Query Design کلیک نمایید و SQL View را انتخاب نمایید. همانطور که در زیر مشخص است اکسس بطور خودکار دستور SQL مربوط به این کوئری را ایجاد نموده است. میتوانید این دستور را با دستور SQL اولیه مقایسه نمایید.
SELECT Students.FirstName, Students.LastName, Students.BirthDate
FROM Students
WHERE (((Students.BirthDate)>#2000-01-01#))
ORDER BY Students.FirstName DESC , Students.LastName;
ذخیره Query
اگر کلید ذخیره و یا کلیدهای ترکیبی Ctrl + s را فشار دهید میتوانید پرسوجو را ذخیره نمایید. برای اینکار کافیست یک نام برای کوئری انتخاب نمایید تا اکسس آن را ذخیره نماید. من در دیتابیس نمونه iranvba این پرسوجو را با نام qry_simpleSelect ذخیره کردم.
دانلود دیتابیس نمونه
پایگاه داده مربوط به این آموزش را میتوانید از لینک زیر دانلود نمایید.
دانلودنتیجهگیری
در این آموزش، با دستور SELECT
و اجزاء مختلف آن آشنا شدیم. این دستور به شما کمک میکند تا دادههای مورد نیاز خود را به راحتی از جداول بازیابی و مدیریت کنید. در آموزشهای بعدی با امکانات پیشرفتهتر این دستور و اکسس آشنا خواهیم شد. اگر سوالی دارید یا به کمک بیشتری نیاز دارید، لطفاً در بخش نظرات مطرح کنید!
بیشتر بخوانید
آموزش SQL در Microsoft Access: ایجاد/افزودن دادهها در جداول
آموزش SQL در Microsoft Access: شروعی آسان
آموزش SQL در Microsoft Access: کاربرد جزء WHERE در SQL
آموزش SQL در Microsoft Access: ساختار جدولها و نحوه ایجاد آنها
آموزش SQL در Microsoft Access: دستور SELECT و اجزاء مختلف آن