در این بخش از دورهی آموزش DQL در PostgreSQL میخواهیم دربارهی موضوع مهم و پایهای انتخاب ستونها و استفاده از نامهای مستعار (Aliases) صحبت کنیم – که در همهی Queryها، چه ساده و چه پیچیده، نقش کلیدی دارد.
همچنین در انتها چند مثال جالب از SELECT بدون FROM را خواهیم دید تا با جنبههای مختلف دستور Select به صورت عملی آشنا شویم .
دستور SELECT برای مشخص کردن ستونهایی است که میخواهیم از جدول یا منبع داده مشاهده کنیم.
SELECT first_name, last_name, country
FROM customers;
در این مثال از جدول customers فقط ستونهای first_name, last_name, و country را نمایش میدهیم.
اگر بخواهیم تمام ستونها را انتخاب کنیم:
SELECT *
FROM customers;
🔹 علامت * یعنی “همهی ستونها”.
در SQL میتوانیم برای ستونها یا جداول نام مستعار تعیین کنیم تا در خروجی خواناتر باشند یا در Queryهای پیچیدهتر از نامهای کوتاهتر استفاده کنیم.
از عبارت AS استفاده میکنیم:
SELECT
first_name AS "نام",
last_name AS "نام خانوادگی",
country AS "کشور"
FROM customers;
🔸 اگر نام مستعار شامل فاصله یا حروف بزرگ باشد، باید داخل " " قرار گیرد.
🔸 در PostgreSQL، اگر از کوتیشن استفاده نکنید، نام نهایی به حروف کوچک تبدیل میشود.
مثلاً:
SELECT first_name AS FullName FROM customers;
در خروجی ستون با نام fullname (حروف کوچک) نمایش داده میشود مگر اینکه بنویسیم "FullName".
برای کوتاهسازی Queryها، میتوانیم برای جدول هم Alias تعیین کنیم:
SELECT c.first_name, c.last_name, o.order_id
FROM customers AS c
JOIN orders AS o ON c.customer_id = o.customer_id;
در اینجا:
c = alias برای customerso = alias برای ordersوقتی در خروجی یک ستون محاسبهشده داریم، میتوانیم در قسمتهای دیگر از alias استفاده کنیم:
SELECT
country,
COUNT(*) AS total_customers
FROM customers
GROUP BY country
ORDER BY total_customers DESC;
در اینجا total_customers فقط در قسمت SELECT تعریف شده، ولی چون PostgreSQL از alias در ORDER BY پشتیبانی میکند، میتوان آن را مستقیماً استفاده کرد ✅
یکی از قابلیتهای جذاب SQL این است که میتوان از SELECT حتی بدون استفاده از جدول بهره برد.
این ویژگی برای تمرین، تست توابع، و انجام محاسبات سریع بسیار مفید است.
SELECT 2;
SELECT 'PostgreSQL';
SELECT 'Ali' AS name, 28 AS age;
SELECT 5 * 3 AS result; -- 15
SELECT (10 + 5) / 3 AS average; -- 5
SELECT 'Hello' || ' ' || 'World' AS "Message";
🔸 در PostgreSQL عملگر || برای چسباندن رشتهها استفاده میشود.
🔸 دابل کوتیشن برای نامگذاری ستونها استفاده می شود و سینگل کوتیشن برای مقادیر رشته ای صریح . به تفاوت Message و Hello در مثال بالا دقت کنید.
SELECT current_date AS "Today";
SELECT power(2, 3) AS "Power"; -- 8
SELECT sqrt(49) AS "SquareRoot"; -- 7
SELECT round(3.14159, 2) AS "Rounded"; -- 3.14
میتوانید چند مقدار را همزمان بازگردانید:
SELECT
'Ali' AS name,
۲۵ AS age,
current_date AS signup_date;
SELECT
first_name || ' ' || last_name AS full_name
FROM customers;
SELECT
customer_id AS id,
COUNT(order_id) AS total_orders,
AVG(freight) AS avg_freight
FROM orders
GROUP BY customer_id
ORDER BY avg_freight DESC;
SELECT
۵ * ۷ AS multiplication,
sqrt(81) AS root,
current_date + interval '7 days' AS "Next Week";
| مفهوم | توضیح |
|---|---|
SELECT column | انتخاب ستونها |
SELECT * | انتخاب همهی ستونها |
AS | تعریف نام مستعار برای ستون یا جدول |
SELECT ... FROM ... AS alias | نام مستعار برای جداول |
SELECT بدون FROM | اجرای محاسبات یا تست توابع بدون جدول |
| ` |
۱️⃣ نام کامل مشتریان را بهصورت first_name + last_name نمایش دهید و آن را با عنوان "Full Name" نشان دهید.
۲️⃣ از جدول orders مجموع و میانگین freight را برای هر کشور محاسبه کنید و ستونها را "Total Freight" و "Average Freight" بنامید.
۳️⃣ بدون استفاده از جدول، نتیجهی ۳^۵، مقدار current_date + interval '10 days' و random() را در یک Query برگردانید.