دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
توابع مقایسه ای در پایگاه داده اوراکل
1403/07/14 -
توابع تاریخ در پایگاه داده اوراکل
1403/07/12 -
توابع ریاضی در پایگاه داده اوراکل
1403/07/11 -
توابع رشته ای در پایگاه داده اوراکل
1403/07/10 -
مدیریت زمانبندی (Job) در پایگاه داده اوراکل
1403/07/09 -
مدیریت Trigger در پایگاه داده اوراکل
1403/07/08
دستور Select در پایگاه داده اوراکل
تعریف دستور SELECT در پایگاه داده اوراکل
دستور SELECT در پایگاه داده اوراکل (Oracle Database) یکی از پرکاربردترین و بنیادیترین دستورات SQL است که برای بازیابی دادهها از جداول پایگاه داده استفاده میشود.
این دستور به شما امکان میدهد تا دادههای موجود در یک یا چند جدول را بر اساس نیاز خود فیلتر، مرتب، گروهبندی و تحلیل کنید.
دستور SELECT در پایگاه داده اوراکل ابزاری قدرتمند و انعطافپذیر برای بازیابی و تحلیل دادههاست.
با درک صحیح از ساختار این دستور و استفاده بهینه از اجزای آن مانند WHERE
، ORDER BY
، GROUP BY
و JOIN
، میتوان به نتایج دقیقی دست یافت.
تسلط بر این دستور برای هر توسعهدهنده و مدیر پایگاه داده ضروری است، چرا که این دستور پایهای برای بسیاری از عملیاتها در SQL محسوب میشود.
در این مقاله، به بررسی دقیقتر ساختار دستوری SELECT و نحوه استفاده از آن در SQL Queries میپردازیم.
ساختار کلی دستور SELECT
ساختار پایه دستور SELECT به شکل زیر است:
SELECT column1, column2, ...
FROM table_name
WHERE condition
GROUP BY column_name
HAVING condition
ORDER BY column_name;
این ساختار شامل چندین بخش است که هرکدام نقشی خاص در بازیابی و نمایش دادهها ایفا میکنند. در ادامه، به توضیح هر یک از این بخشها میپردازیم.
اجزای مختلف دستور SELECT
-
SELECT
این بخش از دستور مشخص میکند که کدام ستونها باید از جدول انتخاب شوند.
شما میتوانید یک یا چند ستون را انتخاب کنید یا از * برای انتخاب تمام ستونهای جدول استفاده کنید.
مثال:
SELECT first_name, last_name FROM employees;
این دستور، ستونهای first_name و last_name را از جدول employees بازیابی میکند.
مثال با *:
SELECT * FROM employees;
این دستور تمام ستونهای موجود در جدول employees را بازیابی میکند.
-
FROM
این بخش نام جدول یا جداولی را که دادهها از آنها بازیابی میشود، مشخص میکند.
در صورتی که بخواهید از چند جدول داده بازیابی کنید، میتوانید از JOIN برای ترکیب جداول استفاده کنید.
مثال:
SELECT first_name, department_name
FROM employees
JOIN departments ON employees.department_id = departments.department_id;
این دستور، نام و دپارتمان هر کارمند را از جداول employees و departments بازیابی میکند.
-
WHERE
این بخش برای فیلتر کردن رکوردهایی که شرط خاصی را برآورده میکنند، استفاده میشود.
فقط رکوردهایی که شرط تعریفشده در این بخش را برآورده میکنند، بازگردانده میشوند.
مثال:
SELECT first_name, salary
FROM employees
WHERE department_id = 10;
این دستور، نام و حقوق تمام کارمندانی را که در دپارتمان شماره ۱۰ کار میکنند، نمایش میدهد.
-
ORDER BY
این بخش برای مرتبسازی نتایج استفاده میشود.
شما میتوانید دادهها را به صورت صعودی (ASC) یا نزولی (DESC) بر اساس یک یا چند ستون مرتب کنید.
مثال:
SELECT first_name, salary
FROM employees
ORDER BY salary DESC;
این دستور، نام و حقوق کارمندان را به صورت نزولی بر اساس مقدار حقوق مرتب میکند.
-
GROUP BY
این بخش برای گروهبندی دادهها بر اساس یک یا چند ستون استفاده میشود.
این بخش اغلب همراه با توابع تجمیعی مانندSUM
،AVG
،COUNT
و غیره استفاده میشود.
مثال:
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id;
این دستور، میانگین حقوق را برای هر دپارتمان محاسبه و نمایش میدهد.
-
HAVING
این بخش برای فیلتر کردن گروهها استفاده میشود، مشابه WHERE اما برای گروهها.
این بخش معمولاً بعد ازGROUP BY
میآید.
مثال:
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 50000;
این دستور، فقط دپارتمانهایی را که میانگین حقوق آنها بیش از ۵۰,۰۰۰ است، نمایش میدهد.
توابع تجمیعی (Aggregate Functions) در دستور SELECT
توابع تجمیعی به شما امکان میدهند که عملیاتهای ریاضی و آماری را روی گروهی از دادهها انجام دهید.
برخی از این توابع عبارتند از:
-
()COUNT
شمارش تعداد رکوردها.
مثال:
SELECT COUNT(*) FROM employees;
این دستور، تعداد کل رکوردها در جدول employees را شمارش میکند.
-
()SUM
محاسبه مجموع مقادیر عددی یک ستون.
مثال:
SELECT SUM(salary) FROM employees WHERE department_id = 10;
این دستور، مجموع حقوق کارمندان در دپارتمان شماره ۱۰ را محاسبه میکند.
-
()AVG
محاسبه میانگین مقادیر عددی یک ستون.
مثال:
SELECT AVG(salary) FROM employees;
این دستور، میانگین حقوق کارمندان را محاسبه میکند.
-
()MAX و ()MIN
محاسبه بیشترین و کمترین مقدار در یک ستون.
مثال:
SELECT MAX(salary) FROM employees;
این دستور، بیشترین حقوق را در جدول employees نمایش میدهد.
استفاده از Subqueries در دستور SELECT
یک Subquery یا زیرپرسوجو، یک کوئری تو در تو است که داخل یک کوئری دیگر قرار میگیرد.
Subqueryها میتوانند در بخشهای مختلف دستور SELECT مانند WHERE
، FROM
و SELECT
استفاده شوند.
مثال:
SELECT first_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
این دستور، نام و حقوق کارمندانی را که حقوقشان بیش از میانگین حقوق همه کارمندان است، نمایش میدهد.
ترکیب جداول با استفاده از JOIN
عملیات JOIN در SQL برای ترکیب دادهها از دو یا چند جدول بر اساس یک شرط خاص استفاده میشود. انواع مختلفی از JOIN وجود دارد، مانند INNER JOIN
، LEFT JOIN
، RIGHT JOIN
و FULL JOIN
.
-
INNER JOIN
فقط رکوردهایی را بازمیگرداند که شرط JOIN را برآورده کنند.
مثال:
SELECT employees.first_name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;
این دستور، نام کارمندان و نام دپارتمانهای آنها را فقط برای کارمندانی که در یک دپارتمان مشخص شدهاند، نمایش میدهد.
-
LEFT JOIN
تمام رکوردها از جدول سمت چپ و رکوردهای مطابق از جدول سمت راست را بازمیگرداند.
مثال:
SELECT employees.first_name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id;
این دستور، تمام کارمندان را نمایش میدهد حتی اگر در دپارتمانی نباشند.
استفاده از UNION برای ترکیب نتایج چند کوئری
دستور UNION در SQL برای ترکیب نتایج دو یا چند کوئری SELECT استفاده میشود.
هر کوئری باید تعداد و نوع ستونهای یکسانی داشته باشد.
مثال:
SELECT first_name FROM employees
UNION
SELECT first_name FROM managers;
این دستور، نام تمام افراد (هم از جدول employees و هم از جدول managers) را بدون تکرار نمایش میدهد.
استفاده از Aliases برای نامگذاری مجدد ستونها و جداول
در SQL میتوان از Aliases برای نامگذاری مجدد ستونها یا جداول در نتایج خروجی استفاده کرد.
این امر به خوانایی و وضوح بیشتر کوئریها کمک میکند.
مثال:
SELECT first_name AS "First Name", salary AS "Monthly Salary"
FROM employees;
این دستور، ستون first_name را به عنوان "First Name" و ستون salary را به عنوان "Monthly Salary" در خروجی نمایش میدهد.
سوالات
-
دستور SELECT در اوراکل چه کاربردی دارد؟
برای استخراج دادهها از جداول پایگاه داده استفاده میشود. -
چگونه میتوان تمام ستونهای یک جدول را بازیابی کرد؟
با استفاده از دستورSELECT * FROM table_name
-
چگونه میتوان ستونهای خاصی را از یک جدول انتخاب کرد؟
با استفاده ازSELECT column1, column2 FROM table_name
-
چگونه میتوان رکوردها را بر اساس شرط خاصی فیلتر کرد؟
با استفاده از WHERE، مثلاً:SELECT * FROM table_name WHERE column1 = 'value'
-
چگونه میتوان دادهها را بر اساس یک ستون مرتب کرد؟
با استفاده ازORDER BY column_name
برای مرتبسازی صعودی وORDER BY column_name DESC
برای مرتبسازی نزولی.
دوره های مرتبط
اموزش پایگاه داده اوراکل Oracle
در دوره آموزش پایگاه داده اوراکل اصول ، مفاهیم ، طراحی ، پیادهسازی و مدیریت پایگاه داده را به صورت جامع آموزش می دهیم .