پرس و جوهای SQL در SQL Server
پرسوجوهای SQL در SQL Server برای بازیابی، درج، ویرایش و حذف دادهها استفاده میشوند و هسته مدیریت پایگاه داده هستند.
پرسوجوهای SQL در SQL Server
پرسوجوهای SQL یا همان SQL Queries یکی از مهمترین بخشهای کار با پایگاه داده SQL Server هستند.
هر زمان که بخواهیم اطلاعاتی را از پایگاه داده دریافت کنیم، دادهای را ثبت نماییم، رکوردی را ویرایش کنیم یا اطلاعاتی را حذف کنیم، از پرسوجوهای SQL استفاده میکنیم.
زبان SQL که مخفف Structured Query Language است، زبان استاندارد مدیریت و تعامل با پایگاههای داده رابطهای محسوب میشود و SQL Server مایکروسافت یکی از قدرتمندترین سیستمهای مدیریت پایگاه داده است که از این زبان پشتیبانی میکند.
پرسوجوها در SQL Server نقش واسط میان کاربران و دادهها را ایفا میکنند.
یک مدیر پایگاه داده، برنامهنویس یا تحلیلگر داده با استفاده از Queryها میتواند حجم عظیمی از اطلاعات را مدیریت کرده و گزارشهای متنوعی تولید کند.
SQL Query چیست؟
Query یا پرسوجو مجموعهای از دستورات SQL است که برای انجام عملیات روی دادهها مورد استفاده قرار میگیرد.
این عملیات میتواند شامل بازیابی اطلاعات، افزودن رکورد جدید، بروزرسانی دادهها یا حذف اطلاعات باشد.
به عنوان مثال:
SELECT * FROM Customers
این پرسوجو تمامی اطلاعات جدول Customers را نمایش میدهد.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
⇐همین حالا شروع کنید و به دنیای دادهها بپیوندید!
انواع پرسوجوها در SQL Server
پرسوجوهای SQL را میتوان به چند دسته اصلی تقسیم کرد:
-
پرسوجوهای بازیابی اطلاعات (SELECT)
پرکاربردترین نوع Query دستور SELECT است.
نمونه:
SELECT FirstName, LastName
FROM Employees
این دستور نام و نام خانوادگی کارکنان را نمایش میدهد.
-
پرسوجوهای درج اطلاعات (INSERT)
برای افزودن رکورد جدید به جدول استفاده میشود.
INSERT INTO Customers
(Name, City)
VALUES
('Ali Ahmadi', 'Tehran')
-
پرسوجوهای بروزرسانی (UPDATE)
برای تغییر اطلاعات موجود استفاده میشود.
UPDATE Customers
SET City = 'Mashhad'
WHERE CustomerID = 1
-
پرسوجوهای حذف (DELETE)
برای حذف رکوردها استفاده میشود.
DELETE FROM Customers
WHERE CustomerID = 1
دستور SELECT در SQL Server
SELECT قلب عملیات گزارشگیری و استخراج داده محسوب میشود.
نمونه:
SELECT *
FROM Products
نمایش ستونهای خاص:
SELECT ProductName,
Price
FROM Products
استفاده از WHERE در SQL Server
WHERE برای فیلتر کردن دادهها استفاده میشود.
SELECT *
FROM Employees
WHERE Salary > 10000
فقط کارمندانی نمایش داده میشوند که حقوق آنها بیشتر از 10000 باشد.
عملگرهای مقایسهای
در بخش WHERE میتوان از عملگرهای مختلف استفاده کرد:
=
<>
>
<
>=
<=
مثال:
SELECT *
FROM Products
WHERE Price >= 500
استفاده از AND و OR در SQL Server
برای ترکیب شروط مختلف:
SELECT *
FROM Employees
WHERE Department = 'IT'
AND Salary > 15000
یا:
SELECT *
FROM Employees
WHERE City = 'Tehran'
OR City = 'Karaj'
مرتبسازی اطلاعات با ORDER BY در SQL Server
برای مرتب کردن نتایج:
SELECT *
FROM Products
ORDER BY Price
مرتبسازی نزولی:
SELECT *
FROM Products
ORDER BY Price DESC
محدود کردن تعداد نتایج
در SQL Server از TOP استفاده میشود:
SELECT TOP 10 *
FROM Products
نمایش 10 رکورد اول جدول.
استفاده از DISTINCT در SQL Server
برای حذف رکوردهای تکراری:
SELECT DISTINCT City
FROM Customers
جستجو با LIKE در SQL Server
برای جستجوی بخشی از متن:
SELECT *
FROM Customers
WHERE Name LIKE '%Ali%'
نمایش مشتریانی که نام آنها شامل Ali باشد.
استفاده از BETWEEN در SQL Server
برای جستجو در بازه مشخص:
SELECT *
FROM Orders
WHERE Amount BETWEEN 1000 AND 5000
استفاده از IN در SQL Server
برای جستجوی چند مقدار:
SELECT *
FROM Customers
WHERE City IN ('Tehran','Shiraz','Tabriz')
توابع تجمیعی در SQL Server
SQL Server توابع قدرتمندی برای تحلیل دادهها ارائه میکند.
-
COUNT
شمارش رکوردها:
SELECT COUNT(*)
FROM Customers
-
SUM
محاسبه مجموع:
SELECT SUM(Amount)
FROM Orders
-
AVG
میانگین:
SELECT AVG(Salary)
FROM Employees
-
MAX
بیشترین مقدار:
SELECT MAX(Price)
FROM Products
-
MIN
کمترین مقدار:
SELECT MIN(Price)
FROM Products
گروهبندی دادهها با GROUP BY در SQL Server
برای دستهبندی اطلاعات:
SELECT City,
COUNT(*) TotalCustomers
FROM Customers
GROUP BY City
استفاده از HAVING در SQL Server
فیلتر کردن گروهها:
SELECT City,
COUNT(*) TotalCustomers
FROM Customers
GROUP BY City
HAVING COUNT(*) > 5
اتصال جداول با JOIN در SQL Server
در پایگاه دادههای رابطهای معمولاً اطلاعات در چند جدول ذخیره میشوند.
-
INNER JOIN
SELECT Customers.Name,
Orders.OrderDate
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
فقط رکوردهای مشترک نمایش داده میشوند.
-
LEFT JOIN
SELECT Customers.Name,
Orders.OrderDate
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
تمام مشتریان نمایش داده میشوند حتی اگر سفارشی نداشته باشند.
-
RIGHT JOIN
SELECT *
FROM Customers
RIGHT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
-
FULL JOIN
SELECT *
FROM Customers
FULL JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
SubQuery یا زیرپرسوجو در SQL Server
گاهی یک Query داخل Query دیگر قرار میگیرد.
SELECT *
FROM Employees
WHERE Salary >
(
SELECT AVG(Salary)
FROM Employees
)
نمایش کارمندانی که حقوق آنها بیشتر از میانگین است.
استفاده از EXISTS در SQL Server
بررسی وجود رکورد:
SELECT *
FROM Customers C
WHERE EXISTS
(
SELECT *
FROM Orders O
WHERE O.CustomerID = C.CustomerID
)
Common Table Expression (CTE)
برای خوانایی بهتر Queryها:
WITH EmployeeList AS
(
SELECT *
FROM Employees
WHERE Salary > 10000
)
SELECT *
FROM EmployeeList
View در SQL Server
View یک پرسوجوی ذخیره شده است.
CREATE VIEW ActiveCustomers
AS
SELECT *
FROM Customers
WHERE Status='Active'
استفاده:
SELECT *
FROM ActiveCustomers
Stored Procedure
برای ذخیره منطق SQL در سرور:
CREATE PROCEDURE GetCustomers
AS
BEGIN
SELECT *
FROM Customers
END
اجرا:
EXEC GetCustomers
پارامتردار کردن Queryها
CREATE PROCEDURE GetCustomer
@CustomerID INT
AS
BEGIN
SELECT *
FROM Customers
WHERE CustomerID=@CustomerID
END
بهینهسازی پرس و جوهای SQL در SQL Server
برای افزایش سرعت اجرای Queryها باید:
- از ایندکسها استفاده شود.
- فقط ستونهای مورد نیاز انتخاب شوند.
- از SELECT * کمتر استفاده شود.
- SubQueryهای غیرضروری حذف شوند.
- از Execution Plan برای تحلیل عملکرد استفاده شود.
- آمار پایگاه داده بهروز نگه داشته شود.
استفاده از ایندکس
ایندکس باعث افزایش سرعت جستجو میشود.
CREATE INDEX IX_Customers_Name
ON Customers(Name)
بررسی پلن اجرایی
در SQL Server Management Studio میتوان Execution Plan را فعال کرد تا نحوه اجرای Query مشاهده شود و نقاط ضعف عملکردی شناسایی شوند.
مزایای Query Store در SQL Server
یکی از قابلیتهای مهم SQL Server، Query Store است که اطلاعات مربوط به عملکرد پرسوجوها را ذخیره میکند و امکان تحلیل و بهینهسازی آنها را فراهم میسازد.
مزایای Query Store:
* شناسایی Queryهای کند
* مقایسه عملکرد Queryها
* بررسی تغییرات پلن اجرایی
* رفع مشکلات Performance
امنیت در Queryها
برای جلوگیری از حملات SQL Injection باید از Queryهای پارامتردار استفاده کرد.
نمونه ناامن:
SELECT *
FROM Users
WHERE UserName=' " + userName + " '
نمونه امن:
SELECT *
FROM Users
WHERE UserName=@UserName
بهترین روشهای نوشتن Query
-
استفاده از نامگذاری استاندارد
-
انتخاب ستونهای مورد نیاز
-
استفاده از ایندکس مناسب
-
پرهیز از Queryهای پیچیده غیرضروری
-
استفاده از Stored Procedureها
-
مستندسازی Queryهای مهم
-
تست عملکرد قبل از انتشار
جمعبندی
پرسوجوهای SQL در SQL Server هسته اصلی تعامل با پایگاه داده را تشکیل میدهند. از بازیابی اطلاعات با SELECT گرفته تا درج، ویرایش و حذف دادهها، همه عملیات توسط Queryها انجام میشود.
تسلط بر دستورات مختلف مانند WHERE، JOIN، GROUP BY، HAVING، CTE و Stored Procedure به توسعهدهندگان کمک میکند تا پایگاه دادههای بزرگ را بهصورت کارآمد مدیریت کنند.
همچنین استفاده از تکنیکهای بهینهسازی مانند ایندکسها، Query Store و Execution Plan نقش مهمی در افزایش سرعت و کارایی سیستمهای مبتنی بر SQL Server دارد.




کاربران ما
شما هم نظرتون با ما دریاره “پرس و جوهای SQL در SQL Server” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید