پرس‌ و جوهای SQL در SQL Server (راهنمای مبتدیان)

پرس‌ و جوهای SQL در SQL Server (راهنمای مبتدیان)

نوشته شده توسط: تیم فنی نیک آموز
تاریخ انتشار: ۱۱ اسفند ۱۴۰۰
آخرین بروزرسانی: ۱۵ مهر ۱۴۰۲
زمان مطالعه: 6 دقیقه
۳
(۲)

معرفی

ایجاد SQL Queries یک فرایند ساده است. این مقاله در SQL Server ساخته شده است، اما بیشتر محتوا را می‌توان با تغییرات اندک در پایگاه‌داده‌های Oracle، PostgreSQL، MySQL، MariaDB و دیگر موارد اعمال کرد. پرس‌ و جوهای SQL به ما این امکان را می‌دهند که پرس‌ و جوها را به پایگاه‌داده ارسال کنیم. در این مقاله، یک آموزش سریع و کاربردی در مورد انجام پرس‌وجوها از ابتدا خواهیم داشت.

پرس‌ و جوهای SQL چیست؟

SQL مخفف Structured Query Language است. این زبانی است که توسط پایگاه‌های داده برای دریافت اطلاعات استفاده می‌شود. ما یاد خواهیم گرفت که چگونه با استفاده از زبان SQL پرس‌وجو کنیم.

دوره کوئری نویسی نیک آموز

پرس‌وجوهای SQL در SQL Server

اساس یک پرس‌وجو در SQL Server جمله SELECT است که اجازه می‌دهد تا داده‌های نمایش‌داده‌شده را انتخاب کنید. برای شروع، از پایگاه‌داده AdventureWorks استفاده می‌کنیم که شامل جداول و نماهای نمونه است که به ما امکان می‌دهد جداول و داده‌های مشابهی داشته باشیم. ما همچنین قادر خواهیم بود با چندین جدول از قبل ایجاد شده کار کنیم.

نکته: شما می‌توانید نرم‌افزار ۲۰۱۶AdventureWorks را نصب و استفاده کنید.

کوئری‌های SQL (Select Sentence)

بیایید با جمله SELECT شروع کنیم، جمله select به ما امکان می‌دهد داده‌ها را از یک جدول دریافت کنیم.

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

SELECT *
FROM [HumanResources].[Employee]

سعی کنید دستور SELECT را در یک خط و دستور FROM را در یک خط دیگر استفاده کنید. این‌طوری خواندن راحت‌تر است. انتخاب * به معنای نشان‌دادن تمام ستون‌های یک جدول است. راه دیگر برای انجام همین کار مثال زیر است:

SELECT [Employee].*
FROM [HumanResources].[Employee]

براکت‌های مربع اختیاری هستند. می‌توانید از فاصله در نام ستون‌ها استفاده کنید (که توصیه نمی‌شود). همچنین می‌توانید نام ستون‌های خاصی را مانند مثال زیر انتخاب کنید:

SELECT [LoginID],[Gender]
FROM [HumanResources].[Employee]

مثال قبلی ستون loginid و gender را نشان می‌دهد. همان‌طور که می‌بینید، داده‌ها با کاما از هم جدا می‌شوند. همچنین می‌توانید از نام مستعار برای داشتن نام کوتاه‌تر مانند مثال زیر استفاده کنید:

SELECT e.Gender
FROM [HumanResources].[Employee] e

مثال قبلی از نام مستعار e برای جدول Employee استفاده می‌کند. همچنین می‌توانیم از نام مستعار برای نام ستون‌ها مانند زیر استفاده کنیم:

SELECT e.Gender g
FROM [HumanResources].[Employee] e

ستون مستعار جنسیت اکنون g است. مثال بعدی ۲ مقدار ممکن مختلف را در ستون جنسیت (مذکر یا مؤنث) نشان می‌دهد:

SELECT DISTINCT e.Gender g
FROM [HumanResources].[Employee] e

توجه داشته باشید که DISTINCT یک دستور با سرعت پایین است و اگر جدول دارای چندین میلیون ردیف باشد، ممکن است اجرای آن زمان بر باشد و عملکرد را با مشکل مواجه کند.

مثال دیگر عبارت TOP است. این بند در SQL Server استفاده می‌شود و در پایگاه‌داده‌های دیگر مانند Oracle یا MySQL استفاده نمی‌شود. مثال زیر ۱۰ ردیف اول جدول را نشان می‌دهد:

SELECT TOP 10 e.[BusinessEntityID], e.Gender g
FROM [HumanResources].[Employee] e

اگر بخواهیم می‌توانیم داده‌ها را بر اساس یک ستون مرتب کنیم، ترتیب بسیار مفید است. مثال زیر نشان می‌دهد که چگونه BusinessEntityID را به ترتیب نزولی مرتب کنیم.

کوئری‌های SQL برای فیلترکردن داده‌ها با استفاده از دستور WHERE

دستور Where یکی از رایج‌ترین جملاتی است که در دستور SELECT استفاده می‌شود. این بند اجازه فیلترکردن داده‌ها را می‌دهد. مثال زیر نحوه بررسی BusinessEntityID کارمندانی که عنوان شغلی آنها مهندس طراحی است را نشان می‌دهد.

select [BusinessEntityID], [JobTitle]
from [HumanResources].[Employee] e
where JobTitle=’Design Engineer’

در این مثال ما از عملگر برابر استفاده کردیم.

یکی دیگر از اپراتورهای قدرتمند LIKE است. LIKE، می‌تواند به ما در جستجو کمک کند. مثال زیر BusinessEntityID و عنوان شغلی کارمندانی را نشان می‌دهد که عناوین آنها با Design شروع می‌شود:

SELECT [BusinessEntityID], [JobTitle]
FROM [HumanResources].[Employee] e
WHERE JobTitle LIKE 'Design%'

عملگر IN نیز یک اپراتور بسیار رایج است، مثال زیر تمام کارمندانی را نشان می‌دهد که عنوان شغلی آنها با مدیر مهندسی یا طراح ارشد ابزار برابر است:

SELECT [BusinessEntityID],JobTitle
FROM [HumanResources].[Employee] e
WHERE JobTitle in ('Engineering Manager','Senior Tool Designer')

پرس‌ و جوهای SQL با توابع تجمعی و استفاده از دستور Group By

در پرس‌وجوهای SQL، ما به جمع ردیف‌ها، میانگین و سایر توابع تجمعی نیاز داریم. این توابع اغلب با دستورات Group By و Having استفاده می‌شوند.

مثال اول مجموع و میانگین subtotal جداول SalesOrderHeader را نشان می‌دهد:

SELECT SUM([SubTotal]) AS SUBTOTAL,AVG([SubTotal]) AS AVERAGESUBTOTAL
FROM [Sales].[SalesOrderHeader]

مثال بعدی نحوه به‌دست‌آوردن مجموع ستون orderQty و salesorderid را از جدول salesorderdetail نشان می‌دهد. ما اطلاعات را بر اساس salesorderid گروه‌بندی می‌کنیم و مبلغ را به ترتیب نزول سفارش می‌دهیم:

SELECT SUM([OrderQty]) AS Qty, [SalesOrderID]
FROM [Sales].[SalesOrderDetail]
GROUP BY [SalesOrderID]
ORDER BY SUM([OrderQty]) DESC

پرس‌وجوهای SQL برای دریافت داده از چندین جدول

یکی از مهم‌ترین ویژگی‌های جداول این است که می‌توانید چندین جدول را در یک پرس‌وجو جستجو کنید. برای این کار از JOINها استفاده می‌کنیم. انواع مختلفی از JOIN وجود دارد. پیوستن داخلی (Inner Join)، پیوستن بیرونی (Outer Join)، پیوستن به چپ (Left Join)، پیوستن به سمت راست (Right Join). انواع مختلف اتصالات امکان پیوستن به جداول را به روشی متفاوت فراهم می‌کند.

نتیجه گیری

در این مقاله کوئری‌های SQL مورداستفاده در SQL Server برای دریافت داده را یاد گرفتیم. ما فقط اصول اولیه را دیدیم، اما T-SQL یک کار پیچیده است که برای داشتن یک عملکرد خوب به دانش زیادی نیاز دارد. بااین‌حال، ما ابتدایی‌ترین و مفیدترین پرس‌وجوها را یاد گرفتیم.

منبع

https://www.sqlshack.com/sql-queries-in-sql-server-a-beginners-guide/

چه رتبه ای می‌دهید؟

میانگین ۳ / ۵. از مجموع ۲

اولین نفر باش

title sign
دانلود مقاله
پرس‌ و جوهای SQL در SQL Server (راهنمای مبتدیان)
فرمت PDF
5 صفحه
حجم 1 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
284 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
پروفایل نویسنده
title sign
دیدگاه کاربران

هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link