اموزش صفر تا صد SQL - با مثال های عملی و کامل

hamidmotamedi66 6 views 63 slides Apr 16, 2025
Slide 1
Slide 1 of 63
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63

About This Presentation

دانلود رایگان کتاب اموزش sql
برای مطالعه کتاب های بیشتر به سایت شرکت جادوی فکر مراجعه نمایید
https://www.jadoosoft.com


Slide Content

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

0

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

1

رد یتاعلاطا کناب یحارط لوصا :لوا لصف SQL Server
Chapter 1: Principles of Database Design in Microsoft SQL Server

۱.۱ همدقم هداد هاگیاپ رب یا
هطبار هداد هاگیاپیا (Relational Database) هعومجم .تسا مه اب طبترم لوادج زا یا
رد SQL Serverهداد هاگیاپ ، بلاق رد اه سیباتیداه (Databases) یم هتخاس ره و دنوش
اهامن ،لوادج لماش سیباتید (Views)سکدنیا ،اه (Indexes)تسا ءایشا ریاس و ،.

۱.۲ هطبار هداد هاگیاپ یلصا یازجا یا


ءزج حیضوت
Table ( لودج ) هریخذ یلصا راتخاسهداد یزاس اه
Row ( رطس ) هداد زا دروکر کیاه
Column ( نوتس ) تیدوجوم زا یگژیو کی
Primary Key رطس ره یارب اتکی هسانش
Foreign Key رگید لودج اب طابترا داجیا یارب یدیلک

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

2


۱.۳ لوادج نیب طباور عاونا
هطبار عون لاثم
کی هب کی (1:1) دراد ییاسانش تراک کی طقف دنمراک ره
دنچ هب کی
(1:N)
یم یرتشم رهدشاب هتشاد روتکاف نیدنچ دناوت
دنچ هب دنچ
(M:N)
یم لااک ره طساو لودج اب( سکعلاب و دشاب روتکاف دنچ رد دناوت
هدایپ یم یزاس )دوش

۱.۴ هداد هاگیاپ یحارط لحارم
1. تیدوجوم ییاسانش اه: شورف روتکاف ،دیرخ روتکاف ،باسح فرط ،لااک
2. یگژیو ییاسانشاه: و باسح فرط عون ،یدوجوم ،تمیق ،لااک مان ...
3. تیدوجوم یارب لوادج داجیا اه
4. لوادج لاصتا یارب یجراخ و یلصا یاهدیلک داجیا
5. لامرن هب هجوت هداد یزاس یگنوزفا شهاک یارب اه

۱.۵ شورف و دیرخ متسیس لوادج یحارط

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

3
رد SQL Server هداد عون زا ،INT IDENTITY هدنیازفادوخ یاهدیلک داجیا یارب (auto-
increment) یم هدافتسادوش.
اهلااک لودج (Products)

CREATE TABLE Products (
ProductID INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(100) NOT NULL,
Price DECIMAL(18, 2) NOT NULL,
Stock INT DEFAULT 0
);
باسح فرط لودجاه (Accounts)
CREATE TABLE Accounts (
AccountID INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(100) NOT NULL,
Type NVARCHAR(10) CHECK (Type IN ('Customer', 'Supplier')) NOT NULL,
Phone NVARCHAR(20)
);
شورف یاهروتکاف لودج (SalesInvoices)
CREATE TABLE SalesInvoices (

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

4
InvoiceID INT IDENTITY(1,1) PRIMARY KEY,
AccountID INT NOT NULL,
InvoiceDate DATE DEFAULT GETDATE(),
FOREIGN KEY (AccountID) REFERENCES Accounts(AccountID)
);
متیآ لودجشورف یاه (SalesItems)
CREATE TABLE SalesItems (
ItemID INT IDENTITY(1,1) PRIMARY KEY,
InvoiceID INT NOT NULL,
ProductID INT NOT NULL,
Quantity INT NOT NULL,
UnitPrice DECIMAL(18, 2) NOT NULL,
FOREIGN KEY (InvoiceID) REFERENCES SalesInvoices(InvoiceID),
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);

۱.۶ لامرن یزاس (Normalization)
لامرنلوادج رتهب یهدراتخاس یارب تسا یدنیآرف یزاس:
• 1NF: دشاب هتشاد رادقم دنچ دیابن ینوتس چیه.

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

5
• 2NF: نوتس مامتدنشاب هتسباو یلصا دیلک لک هب دیاب یدیلکریغ یاه.
• 3NF: نوتس نیب میقتسمریغ یگتسباو دیابندشاب هتشاد دوجو یدیلکریغ یاه.

۱.۷ رد حیحص یحارط نیناوق SQL Server
زا هدافتساIDENTITY دیلک یارب یلصا
زا هدافتساNVARCHAR یسراف نابز زا ینابیتشپ یارب
نییعتDEFAULT ییادتبا ریداقم یارب
زا هدافتساCHECK ریداقم تحص لرتنک یارب
اب یجراخ دیلک فیرعتFOREIGN KEY لوادج لاصتا یارب

عمج لوا لصف یدنب
لصف نیا رد:
• انشآ سیباتید یحارط میهافم ابمیدش
• تیدوجوم نیب طباور میدرک یسررب ار اه
• میدرک یحارط ار شورف و دیرخ متسیس لماک راتخاس
• سکتنیس اب ار زاین دروم لوادج Microsoft SQL Server میدرک داجیا


هافم :مود لصف ی م اپ ی ه ا ی SQL ردMicrosoft SQL Server
Chapter 2: SQL Fundamentals in SQL Server

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

6

رد این اپ تاروتسد اب لصفیهای SQL Server (T-SQL) م انشآیوش یم ارب هکی اب راک
زاب ،هداد جرد ،لوادجیبای ناسرزورب ،تاعلاطای م هدافتسا اهدروکر فذح و یدنوش لاثم . اه
س لوادج ساسا ربیمتس رخید حارط لوا لصف زا شورف وی هدش.دنا

۲.۱ اب هداد جردINSERT INTO

-- اهلااک جرد
INSERT INTO Products (Name, Price, Stock)
VALUES
(N ب سوام'یسیم ,'850000 ,20 ,)
(N ک'یدروب ناکمی کی ,'1200000 ,15 ,)
(N پل'ا پاتیسوس ,'35000000 ,8 ;)


-- باسح فرط جرداه
INSERT INTO Accounts (Name, Type, Phone)
VALUES
(N هاگشورف'یاتک' ,'Supplier', '09121111111,)'

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

7
(N هداد تکرش'رآ زادرپی ا' ,'Customer', '09129999999 ;)'

-- ا رب ضرف( شورف روتکاف جردین هک تساAccountID = 2 رتشم هب طوبرمی )تسا
INSERT INTO SalesInvoices (AccountID)
VALUES (2;)

-- آ جردیمتاهی شورف روتکاف
INSERT INTO SalesItems (InvoiceID, ProductID, Quantity, UnitPrice)
VALUES
(1 ,1 ,2 ,850000 ,)-- ۲ ب سوامیسیم
(1 ,3 ,1 ,35000000 ;)-- ۱ پلا پاتیسوس
۲.۲ زابیبای هداد اب اهSELECT
-- امنیش اهلااک مامت
SELECT * FROM Products ;

-- امنیش ق و مانیتم اهلااک
SELECT Name, Price FROM Products ;

-- امنیش اهلااکیی ق ابیتم بیش زا۲ میلینو

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

8
SELECT * FROM Products
WHERE Price > 2000000;
۲.۳ ناسرزوربی هداد اب اهUPDATE
-- ازفایش دوجومی یک لااک
UPDATE Products
SET Stock = Stock + 10
WHERE Name = N ب سوام' یسیم;'

-- غتییر باسح فرط سامت هرامش
UPDATE Accounts
SET Phone = '09125555555 '
WHERE Name = N هداد تکرش'رآ زادرپیا;'
۲.۴ هداد فذح اب اهDELETE
-- فذحیک آیمت صاخ شورف
DELETE FROM SalesItems
WHERE ItemID = 2;
-- فذحیک صاخ لااک
DELETE FROM Products
WHERE Name = N ک'یدروب ناکمی کی ;'

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

9
۲.۵ ایداج هداد باختنا رد طرش اب اهWHERE
-- امنیش اهلااکیی دوجوم هکی نآ زا رتمک اه۱۰ تسا ددع
SELECT * FROM Products
WHERE Stock < 10 ;

-- امنیش باسح فرطاهیی رتشم هکی دنتسه
SELECT * FROM Accounts
WHERE Type = 'Customer ;'
۲.۶ زا هدافتساTOP اربی زاسدودحمی اتنیج
-- امنیش ۳ لااکی لوا
SELECT TOP 3 * FROM Products ;
۲.۷ رات نتفرگیخ لعفی ابGETDATE )(
-- امنیش اهروتکافی رات اب شورفی خ
SELECT InvoiceID, InvoiceDate
FROM SalesInvoices
WHERE InvoiceDate >= GETDATE() - 30 ;-- اهروتکافی ۳۰ خا زوریر
عمجدنبی مود لصف
رد این تخومآ لصفیم رد هنوگچSQL Server:
لمعی تا روتسد

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

10
جرد هداد INSERT INTO
زابیبای هداد SELECT
ناسرزوربی هداد UPDATE
فذح هداد DELETE
طرش راذگ ی WHERE
زاسدودحم ی TOP, GETDATE )(
رد ف دراو ،موس لصفیرتل هداد ندرک کرت طورش اب اهیبی (IN, BETWEEN, LIKE, AND,
ORم ) یوشیم .

هداد ندرک رتلیف :موس لصف رد طورش زا هدافتسا اب اه SQL Server
Chapter 3: Filtering Data with Conditions in SQL Server

۳.۱ زا هدافتساWHERE طرش لامعا یارب
روتسدWHERE فیدر ندرک رتلیف یارب یم هدافتسا صاخ طرش کی ساسا رب اهدوش.
-- نآ تمیق هک ییاهلااک زا رتشیب اه۲ تسا ناموت نویلیم
SELECT * FROM Products
WHERE Price > 2000000;

-- باسح فرطنآ عون هک ییاهاه Customer تسا

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

11
SELECT * FROM Accounts
WHERE Type = 'Customer';

۳.۲ اب طورش بیکرتAND وOR
• AND: دنشاب رارقرب دیاب طورش همه
• OR: دشاب رارقرب طورش زا یکی طقف تسا یفاک
-- تمیق هک ییاهلااک زا رتشیب ناش۲ زا رتمک یدوجوم و نویلیم۱۰ تسا
SELECT * FROM Products
WHERE Price > 2000000 AND Stock < 10;
-- تمیق ای هک ییاهلااک زا رتمک ناش۱ نآ مان ای تسا نویلیم تسا "سوام" لماش اه
SELECT * FROM Products
WHERE Price < 1000000 OR Name LIKE N'%سوام%';

۳.۳ زا هدافتساIN رادقم دنچ یسررب یارب

-- اب ییاهلااک شیامن ProductID اب ربارب1 ای3 ای5
SELECT * FROM Products
WHERE ProductID IN (1, 3, 5);

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

12
-- باسح فرطنآ عون هک ییاهاه Customer ای Supplier تسا
SELECT * FROM Accounts
WHERE Type IN ('Customer', 'Supplier');

۳.۴ زا هدافتساBETWEEN هزاب یسررب یارب اه

-- نیب تمیق اب ییاهلااک۵۰۰ ات رازه۳ ناموت نویلیم
SELECT * FROM Products
WHERE Price BETWEEN 500000 AND 3000000;

-- لاس رد هدش تبث ییاهروتکاف۲۰۲۴
SELECT * FROM SalesInvoices
WHERE InvoiceDate BETWEEN '2024-01-01' AND '2024-12-31';

۳.۵ اب اهوگلا یوجتسجLIKE
LIKE یوجتسج یارب هتشرهب وگلا زا هدافتسا اب یا یم راکدور.
دامن ینعم
% رتکاراک دادعت ره

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

13
دامن ینعم
_ رتکاراک کی طقف

-- نآ مان هک ییاهلااکپل" اب اه یم عورش "پات دوش
SELECT * FROM Products
WHERE Name LIKE N' پل پات%';

-- یب" یواح هک ییاهلااک دنتسه "میس
SELECT * FROM Products
WHERE Name LIKE N'% یبمیس%';

-- نآ مان هک ییاهلااک ًاقیقد اه۵ دراد فرح
SELECT * FROM Products
WHERE Name LIKE '_____';

۳.۶ اب یهت رادقم یسرربIS NULL وIS NOT NULL

-- باسح فرط دنراد هدشن تبث سامت هرامش هک ییاه

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

14
SELECT * FROM Accounts
WHERE Phone IS NULL;

-- باسح فرط دنراد سامت هرامش هک ییاه
SELECT * FROM Accounts
WHERE Phone IS NOT NULL;

عمج موس لصف یدنب
رگلمع دربراک
WHERE اهدروکر یور طرش لامعا
AND, OR طورش بیکرت
IN هعومجم رد تیوضع یسرربریداقم زا یا
BETWEEN ای یددع هزاب یسررب یخیرات
LIKE هتشر یوجتسج وگلا اب یا
IS NULL, IS NOT NULL رادقم ندوبن ای ندوب یهت یسررب

غارس ،دعب لصف رد بترمجیاتن یزاسدودحم و یزاس یم زا هدافتسا اب میورORDER BY و
TOP شور نینچمه و هحفص یاهیدنب (Pagination).

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

15

بترم :مراهچ لصف و یزاس رد جیاتن یزاسدودحم SQL Server
Chapter 4: Sorting and Limiting Results in SQL Server
بترم شرازگ تخاس یارب جیاتن ندرک دودحم و یزاس ،دراد تیمها رایسب یدربراک یاه
طقف دیهاوخب هک ینامز ًاصوصخم لااب نییاپ ای نیرتریداقم نیرت هداد ای دینیبب ار یارب ار اه
هحفص یدنب (Pagination) دینک تیریدم.

۴.۱ بترم اب یزاسORDER BY
روتسدORDER BY تروص هب ،نوتس دنچ ای کی ساسا رب ار جیاتن یدوعص (ASC) ای
یلوزن (DESC) یم بترمدنک.
-- هدب شیامن یدوعص تمیق ساسا رب ار اهلااک
SELECT * FROM Products
ORDER BY Price ASC;

-- نک بترم یلوزن یدوجوم ساسا رب ار اهلااک
SELECT * FROM Products
ORDER BY Stock DESC;

۴.۲ بترم نوتس دنچ ساسا رب یزاس

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

16
-- تمیق ساسا رب ،یواست تروص رد سپس ،یدوجوم ساسا رب ادتبا
SELECT * FROM Products
ORDER BY Stock DESC, Price ASC;

۴.۳ اب جیاتن یزاسدودحمTOP
رد SQL Serverفیدر زا یدودحم دادعت شیامن یارب ، یدیلک هملک زا ،اهTOP هدافتسا
یممینک.
-- شیامن۳ )بیترت رظن زا( لوا یلااک
SELECT TOP 3 * FROM Products
ORDER BY Price DESC;

۴.۴ هحفص اب یدنبOFFSET ... FETCH
رد SQL Server 2012 یم ،دعب هب زا ناوتOFFSET وFETCH هدایپ یارب یزاس
هحفصدرک هدافتسا یدنب.
-- فیدر( مود هحفص شیامن یاه۶ ات۱۰ ) ضرف اب۵ هحفص ره رد فیدر
SELECT * FROM Products
ORDER BY ProductID
OFFSET 5 ROWS
FETCH NEXT 5 ROWS ONLY;

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

17

۴.۵ بترم متیآ یزاس هب شورف یاه یشرافس تروص
-- متیآ شیامن یلوزن دحاو تمیق ساسا رب شورف یاه
SELECT * FROM SalesItems
ORDER BY UnitPrice DESC;

عمج مراهچ لصف یدنب
روتسد دربراک
ORDER BY بترم هاوخلد نوتس ساسا رب جیاتن یزاس
ASC / DESC یلوزن / یدوعص
TOP N دادعت یزاسدودحمجیاتن
OFFSET ... FETCH هحفص هتفرشیپ یدنب

عوضوم هب ،دعب لصف رد راعتسم مان (Alias) نوتس یارب زا هدافتسا اب لوادج و اهAS
یم هداس یارب هک ،میزادرپ یرئوک رتشیب ییاناوخ و یزاسشرازگ رد اهدراد دربراک رایسب اه.

راعتسم مان زا هدافتسا :مجنپ لصف (Alias) رد SQL Server
Chapter 5: Using Aliases with AS in SQL Server

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

18

راعتسم مان (Alias) رد SQL Server یم هزاجا امش هبنوتس یارب دهد ،لوادج و اه
مان هاتوک یاه هداس ،رت رتاناوخ ای رت هب تیلباق نیا .دینک فیرعت شرازگ رد هژیو و یریگ
زا هدافتساJOIN تسا دیفم رایسب.

۵.۱ نوتس یارب راعتسم مان اب اهAS
زا ،)لودج راتخاس رد رییغت نودب( یجورخ رد نوتس مان رییغت یاربAS یم هدافتسا دوش.
-- ناونع اب تمیق و لااک مان شیامن یشرافس یاه

SELECT Name AS ProductName, Price AS UnitPrice
FROM Products;
یم زا دیناوتAS )دنربتعم ود ره( دیراذگب هلصاف طقف و دینکن هدافتسا:
SELECT Name ProductName, Price UnitPrice
FROM Products;

۵.۲ زا هدافتسا Alias عباوت رد

-- شورف متیآ ره لک غلبم هبساحم
SELECT Quantity * UnitPrice AS TotalPrice

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

19
FROM SalesItems;

۵.۳ رد لوادج یارب راعتسم مان JOIN
یرئوک ،لوادج یارب راعتسم مان زا هدافتسا هاتوک ار اهیم رتاناوخ و رتهب ،دنک یتقو هژیو
رد لودج نیدنچJOIN یم هدافتسادوش.
-- رادقم و لااک مان شیامنهتخورف هدش
SELECT p.Name AS ProductName, si.Quantity
FROM SalesItems si
JOIN Products p ON si.ProductID = p.ProductID;



۵.۴ زا هدافتسا Alias رد Subquery
-- سرپریز راعتسم مان اب وجو
SELECT ProductName, TotalSales
FROM (
SELECT Name AS ProductName,
SUM(Quantity * UnitPrice) AS TotalSales
FROM Products p

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

20
JOIN SalesItems si ON p.ProductID = si.ProductID
GROUP BY Name
) AS SalesSummary;

عمج مجنپ لصف یدنب
هدافتسا حیضوت
AS نوتس یارب شیامن یجورخ رد هاوخلد ناونع
AS لودج یارب رد یگداسJOIN وSubquery
نودبAS لباق مهتسا هدافتسا یم هیصوت اما دوش هدافتسا ییاناوخ یارب دوش

غارس ،دعب لصف رد یعیمجت عباوت (Aggregate Functions) یممیور: SUM, COUNT,
AVG, MIN, MAX نآ هدافتسا هوحن و رد اهشرازگ هداد زا یریگاه.


یعیمجت عباوت :مشش لصف (Aggregate Functions) رد SQL Server
Chapter 6: Aggregate Functions in SQL Server

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

21
رد یعیمجت عباوت SQL Server یور تابساحم ماجنا یارب هعومجم فیدر زا یااه هدافتسا
یمتمیق عومجم :لثم ،دنوشفیدر شرامش ،ریداقم نیگنایم ،اه ای هنیشیب نتفای و اه
هنیمک.

۶.۱ عباتCOUNT() – فیدر دادعت شرامش اه

-- اهلااک لک دادعت
SELECT COUNT(*) AS TotalProducts
FROM Products;

-- یرتشم دادعتاه
SELECT COUNT(*) AS TotalCustomers
FROM Accounts
WHERE Type = 'Customer';

۶.۲ عباتSUM() – لک عمج
-- اهلااک تمیق عومجم
SELECT SUM(Price) AS TotalPrice
FROM Products;

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

22

-- صاخ شورف روتکاف کی غلبم عومجم
SELECT SUM(Quantity * UnitPrice) AS InvoiceTotal
FROM SalesItems
WHERE InvoiceID = 1;

۶.۳ عباتAVG() – نیگنایم
-- اهلااک تمیق نیگنایم
SELECT AVG(Price) AS AveragePrice
FROM Products;

۶.۴ عباتMIN() وMAX() – هنیشیب و هنیمک
-- تمیق نیرتمک
SELECT MIN(Price) AS CheapestProduct
FROM Products;

-- تمیق نیرتشیب
SELECT MAX(Price) AS MostExpensiveProduct
FROM Products;

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

23

۶.۵ طرش اب بیکرتWHERE
-- لاس زا دعب هک ییاهروتکاف شورف عومجم2024 هدش تبثدنا
SELECT SUM(Quantity * UnitPrice) AS RecentSales
FROM SalesItems si
JOIN SalesInvoices sih ON si.InvoiceID = sih.InvoiceID
WHERE sih.InvoiceDate >= '2024-01-01';

۶.۶ زا هدافتساDISTINCT یعیمجت عباوت رد
s-- هبرصحنم یاهلااک عاونا دادعت هدش هتخورف درف
SELECT COUNT(DISTINCT ProductID) AS UniqueProductsSold
FROM SalesItems;

عمج مشش لصف یدنب
عبات حیضوت
COUNT() فیدر شرامشاه
SUM() یددع ریداقم عمج
AVG() نیگنایم

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

24
عبات حیضوت
MIN() / MAX() کچوک گرزب / نیرترادقم نیرت
اب هارمهWHERE وJOIN لیلحت یارب قیقد یاهرت
DISTINCT شرامش رد رارکت فذح یارب

زا هدافتسا اب ،دعب لصف ردGROUP BY یم دای تروص هب ار عباوت نیا هنوگچ میریگ
هورگ یدنب هدش هداد یوریرتشم ای لااک کیکفت هب شورف عومجم ًلاثم ،مینک لامعا اه.
هورگ :متفه لصف هداد یدنب اب اهGROUP BY هورگ ندرک رتلیف و اب اهHAVING رد
SQL Server
Chapter 7: GROUP BY and HAVING in SQL Server
یم یتقو دننام یعیمجت عباوت میهاوخSUM() ایCOUNT() ار هداد زا هورگ ره یارباه
زا ،مینک هبساحم )یرتشم ره ای لااک ره یازا هب ًلاثم(GROUP BY یم هدافتسا رگا .مینک
هورگ نیمه یور میهاوخب زا ،مینک لامعا طرش اهHAVING یم هدافتسادوش.

۷.۱ زا هدافتساGROUP BY
-- لااک کیکفت هب شورف عومجم
SELECT ProductID, SUM(Quantity * UnitPrice) AS TotalSales
FROM SalesItems
GROUP BY ProductID;

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

25
دوش بیکرت لااک تاعلاطا اب تسا رتهب:
-- لااک مان ساسا رب شورف عومجم
SELECT p.Name AS ProductName, SUM(si.Quantity * si.UnitPrice) AS
TotalSales
FROM SalesItems si
JOIN Products p ON si.ProductID = p.ProductID
GROUP BY p.Name;

۷.۲ هورگ کیکفت هب شرامش اه
-- دادعتتبث یاهروتکاف یرتشم ره یارب هدش
SELECT a.Name AS CustomerName, COUNT(si.InvoiceID) AS InvoiceCount
FROM SalesInvoices sih
JOIN Accounts a ON sih.AccountID = a.AccountID
GROUP BY a.Name;

۷.۳ زا هدافتساHAVING هورگ یور رتلیف یارب اه
فلاخ ربWHERE فیدر یور هک یم لمع اه ،دنکHAVING ندرک رتلیف یارب جیاتن
هورگ یدنب هدش یم هدافتسادوش.
sql

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

26

-- نآ شورف عومجم هک ییاهلااک زا شیب اه۱۰ تسا نویلیم
SELECT p.Name AS ProductName, SUM(si.Quantity * si.UnitPrice) AS
TotalSales
FROM SalesItems si
JOIN Products p ON si.ProductID = p.ProductID
GROUP BY p.Name
HAVING SUM(si.Quantity * si.UnitPrice) > 10000000;

۷.۴ توافتWHERE وHAVING
یگژیو WHERE HAVING
زا لبق ارجاGROUP BY
زا دعب ارجاGROUP BY
یم درک هدافتسا یعیمجت عباوت زا ناوت

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

27
یگژیو WHERE HAVING
رتلیف صوصخم فیدراه
هورگ رتلیف صوصخماه

عمج متفه لصف یدنب
موهفم دربراک
GROUP BY هتسدفیدر یدنبو ،نیگنایم ،عمج هبساحم یارب اه ...
HAVING هورگ جیاتن یور رتلیف یدنب هدش
اب بیکرتJOIN هب ...و یرتشم ،لااک مان شیامن یاربهسانش طقف یاجاه
عباوت یهورگ شرازگ رد یعیمجت یرتشم ای لااک کیکفت هب شورف لثم

یطرش راتخاس زا هدافتسا :متشه لصفCASE رد SQL Server
Chapter 8: Conditional Logic with CASE in SQL Server
راتخاسCASE رد SQL Server یم ناکما امش هب طرش ساسا رب دهد ،صخشم ییاه
دیهد شیامن یجورخ رد ار یتوافتم ریداقم. روتسد هباشم تیلباق نیاIF...ELSE رد

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

28
نابزهمانرب یاه هتسد یارب و تسا یسیونشرازگ داجیا ،یدنب تابساحم و یشرافس یاه
تسا یدربراک رایسب یطرش.

۸.۱ یلک راتخاسCASE
CASE
WHEN طرش THEN رادقم
[WHEN طرش THEN رادقم]
[ELSE رادقمشیپضرف ]
END

۸.۲ هتسد :لاثم اهلااک تمیق یدنب

SELECT Name,
Price,
CASE
WHEN Price < 1000000 THEN N'نازرا'
WHEN Price BETWEEN 1000000 AND 5000000 THEN N'طسوتم'
ELSE N'نارگ'
END AS PriceCategory

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

29
FROM Products;

۸.۳ زا هدافتساCASE شورف تابساحم رد

-- متیآ ره شورف تمیق ساسا رب تایلام شیامن
SELECT si.Quantity, si.UnitPrice,
si.Quantity * si.UnitPrice AS TotalPrice,
CASE
WHEN si.UnitPrice > 10000000 THEN N' تایلام لماش'
ELSE N' تایلام نودب'
END AS TaxStatus
FROM SalesItems si;

۸.۴ زا هدافتساCASE بترم رد اب یزاسORDER BY
-- بترمنازرا :موس ،طسوتم :مود ،نارگ :لوا بیترت هب اهلااک یزاس
SELECT Name, Price
FROM Products
ORDER BY
CASE

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

30
WHEN Price >= 5000000 THEN 1
WHEN Price BETWEEN 1000000 AND 4999999 THEN 2
ELSE 3 END;

۸.۵ زا هدافتساCASE ردUPDATE
-- نآ تمیق ساسا رب اهلااک یدوجوم شیازفااه
UPDATE Products
SET Stock = Stock +
CASE
WHEN Price < 1000000 THEN 10
WHEN Price BETWEEN 1000000 AND 5000000 THEN 5
ELSE 2
END;

عمج متشه لصف یدنب
دربراکCASE لاثم
هتسدهداد یدنباه هتسدنارگ/طسوتم/نازرا هب اهلااک یدنب
نوتس رد طرش یجورخ یاه تیعضو شیامن تایلام

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

31
دربراکCASE لاثم
بترم یشرافس یزاس بترم هتسد ساسا رب یزاستمیق یدنب
رد طرشUPDATE طرش ساسا رب ریداقم یناسرزورب
راتخاسCASE شخب رتشیب رد و تسا فطعنم رایسبیاه SQL ( نوردSELECT,
ORDER BY, UPDATEتسا هدافتسا لباق )... و ،.

یایند دراو ،دعب لصف رد لوادج لاصتا (Joins) یم مهم زا یکی هک میوشرد اهرازبا نیرت
SQL شرازگ تخاس یاربتسا یبیکرت یاه.


اب لوادج لاصتا :مهن لصفJOIN رد SQL Server
Chapter 9: Joining Tables in SQL Server
رد SQL یم هریخذ هناگادج لوادج رد ًلاومعم تاعلاطا ، شرازگ تخاس یارب .دنوش یاه
مه هب ار لوادج نیا دیاب ،طبترم تاعلاطا یبایزاب ای لماک مینک لصو. زا هدافتسا اب راک نیا
JOIN یم ماجنادوش.

۹.۱ عاوناJOIN رد SQL Server

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

32
عونJOIN حیضوت
INNER JOIN طقفیمرب ار لودج ود نیب کرتشم یاهدروکر دنادرگ
LEFT JOIN تسار لودج زا طبترم یاهدروکر + پچ لودج یاهدروکر همه
RIGHT JOIN پچ لودج زا طبترم یاهدروکر + تسار لودج یاهدروکر همه
FULL JOIN )کرتشمریغ و کرتشم( لودج ود ره یاهدروکر همه
CROSS JOIN نیزتراک برض– بیکرت همه یاهدروکر ود لودج اب مه

۹.۲ اب لاثمINNER JOIN
-- روتکاف متیآ ره رد نآ شورف دادعت و لااک مان شیامن
SELECT si.InvoiceID,
p.Name AS ProductName,
si.Quantity
FROM SalesItems si
INNER JOIN Products p ON si.ProductID = p.ProductID;

۹.۳ اب لاثمLEFT JOIN
-- شورف دادعت و اهلااک همه شیامن)دوجو تروص رد( ناش
SELECT p.Name,

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

33
si.Quantity
FROM Products p
LEFT JOIN SalesItems si ON p.ProductID = si.ProductID;
رادقم ،دشاب هدشن هتخورف نونکات ییلااک رگا ،لاثم نیا ردQuantity اب رباربNULL
دوب دهاوخ.

۹.۴ اب لاثمRIGHT JOIN
-- متیآ همه شیامن )لااک دوجو تروص رد( لااک تاعلاطا هارمه هب شورف یاه
SELECT si.InvoiceID, si.Quantity, p.Name AS ProductName
FROM SalesItems si
RIGHT JOIN Products p ON si.ProductID = p.ProductID;

۹.۵ اب لاثمFULL JOIN
-- متیآ و اهلااک همه شیامننآ یتح ،شورف یاهدنرادن طابترا هک ییاه
SELECT p.Name AS ProductName, si.Quantity
FROM Products p
FULL JOIN SalesItems si ON p.ProductID = si.ProductID;

۹.۶ اب لاثمCROSS JOIN

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

34
-- باسح فرط همه اب اهلااک همه بیکرتهداد تخاس ای تست یارب( اه )یضرف یاه
SELECT p.Name AS ProductName, a.Name AS AccountName
FROM Products p
CROSS JOIN Accounts a;

۹.۷ مه لودج دنچ لاصتا نامز
-- شورف غلبم و ،دادعت ،لااک مان ،یرتشم مان شیامن
SELECT a.Name AS CustomerName,
p.Name AS ProductName,
si.Quantity,
si.Quantity * si.UnitPrice AS TotalPrice
FROM SalesItems si
JOIN Products p ON si.ProductID = p.ProductID
JOIN SalesInvoices sih ON si.InvoiceID = sih.InvoiceID
JOIN Accounts a ON sih.AccountID = a.AccountID;

عمج مهن لصف یدنب

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

35
عونJOIN دربراک
INNER JOIN هداد طقف کرتشم یاه
LEFT JOIN دشابن یطابترا رگا یتح ،لوا لودج یاهدروکر مامت
RIGHT JOIN مود لودج یاهدروکر مامت
FULL JOIN لودج ود ره یاهدروکر همه
CROSS JOIN لماک بیکرت دیلوت یارب نیزتراک برض
زا یساسا شخب لوادج لاصتا SQL رد تراهم و تساJOINهفرح لیلحت یارب اه یا
هدادتسا یرورض اه.

موهفم اب ،دعب لصف رد تساوخردریز اه (Subqueries) یم انشآ ناکما امش هب هک میوش
یم یرئوک دهد کی یجورخ زا و دیزاسب وت رد وت یاه رگید یرئوک یدورو ناونع هب یرئوک
دینک هدافتسا.
تساوخردریز :مهد لصف اه (Subqueries) رد SQL Server
Chapter 10: Subqueries in SQL Server
ای تساوخردریز Subquery یرئوک هک تسا یا رگید یرئوک نورد یم رارق نآ یجورخ و دریگ
یمدوش هدافتسا یلصا یرئوک رد یهدرادقم ای هبساحم ،ندرک رتلیف یارب دناوت.
Subquery یرئوک تخاس یارب یدنمتردق رایسب رازبا اهدنتسه ایوپ و هدیچیپ یاه.

۱۰.۱ عاونا Subquery

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

36
عون دربراک
ردSELECT فیدر ره یارب رادقم هبساحم یارب
ردWHERE جیاتن ندرک رتلیف یارب
ردFROM ای یتقوم لودج داجیا View یزاجم
مههتسب (Correlated) ینوریب یرئوک زا فیدر ره هب هتسباو

۱۰.۲ Subquery ردWHERE
-- نآ تمیق هک ییاهلااک شیامن تساهلااک همه تمیق نیگنایم زا رتشیب اه
SELECT Name, Price
FROM Products
WHERE Price > (
SELECT AVG(Price) FROM Products
);

۱۰.۳ Subquery ردSELECT
-- اهلااک همه تمیق نیگنایم اب هارمه اهلااک شیامن
SELECT Name, Price,
(SELECT AVG(Price) FROM Products) AS AveragePrice

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

37
FROM Products;

۱۰.۴ Subquery ردFROM
-- زا رتشیب تمیق اب ییاهلااک شیامن۲ یتقوم لودج زا هدافتسا اب نویلیم
SELECT *
FROM (
SELECT Name, Price FROM Products
) AS Temp
WHERE Temp.Price > 2000000;

۱۰.۵ Subquery مه هتسب (Correlated)
-- کی لقادح هک ییاهلااک شیامن هدش هتخورف رابدنا
SELECT Name
FROM Products p
WHERE EXISTS (
SELECT 1
FROM SalesItems si
WHERE si.ProductID = p.ProductID
);

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

38
نیا Subquery رادقم هبProductID فیدر ره یارب و ،تسا هتسباو ینوریب یرئوک زا
یم ارجادوش.

۱۰.۶ زا هدافتسا Subquery ابIN, NOT IN, EXISTS
-- چیه هک ییاهلااک شیامن هدشن هتخورف هاگدنا
SELECT Name
FROM Products
WHERE ProductID NOT IN (
SELECT ProductID FROM SalesItems
);

عمج مهد لصف یدنب
دربراک Subquery هنومن
ردSELECT یتابساحم نوتس ندوزفا
ردWHERE ساسا رب ندرک رتلیفرگید جیاتن
ردFROM یتقوم لودج نتخاس
مههتسب فیدر ره یازا هب صاخ طرش ای دوجو یسررب
ابIN, EXISTS, NOT IN جیاتن زا یتسیل اب قیبطت

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

39
Subqueryلیلحت هیاپ اهرد هتفرشیپ یاه SQL یم موادم نیرمت اب و دنتسهنآ ناوت ار اه
هب یبوخ هبتفرگ راک.

اب ،دعب لصف ردViews ( اهامن) وIndexes ( هیامن اه) یم انشآ هداس یارب هک میوش یزاس
شرازگهنیهب و اه یرئوک تعرس یزاسدنراد دربراک اه.






اهامن :مهدزای لصف (Views) هیامن واه (Indexes) رد SQL Server
Chapter 11: Views and Indexes in SQL Server
نیا رد انشآ هداد هاگیاپ رتلااب درکلمع و رتهب یهدنامزاس یارب مهم رایسب رازبا ود اب لصف
یممیوش:
• View: کی هجیتن زا هک یزاجم لودج کیSELECT یم هتخاس دوش
• Index: یرئوک یارجا و وجتسج تعرس شیازفا یارب یراتخاساه

لوا شخب: View ( امن )

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

40

۱۱.۱ View ؟تسیچ
VIEW کی یارجا هجیتن زا هک تسا یزاجم لودج کیSELECT یم هتخاس تاعلاطا .دوش
یم هتفرگ یعقاو لوادج زا نآ هداد شدوخ و دوش یمن هریخذ یادنک.

۱۱.۲ زا هدافتسا یایازم View
هداسشرازگ یزاساه
یرئوک رارکت زا یریگولج هدیچیپ یاه
نوتس هب یسرتسد یزاسدودحم( تینما شیازفا)اه
مرن رد ناسآ هدافتسا یجراخ یاهرازفا

۱۱.۳ کی داجیا View هداس
CREATE VIEW vw_SalesReport AS
SELECT si.InvoiceID,
p.Name AS ProductName,
si.Quantity,
si.UnitPrice,
si.Quantity * si.UnitPrice AS TotalPrice
FROM SalesItems si
JOIN Products p ON si.ProductID = p.ProductID;

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

41

۱۱.۴ زا هدافتسا View

SELECT * FROM vw_SalesReport;

-- یور رب رتلیف View
SELECT * FROM vw_SalesReport
WHERE TotalPrice > 10000000;

۱۱.۵ کی فذح View
DROP VIEW vw_SalesReport;

مود شخب: Index هیامن

۱۱.۶ Index ؟تسیچ
INDEX هداد هب یسرتسد هک تسا یراتخاسعیرس ار اهیم رت کی تسرهف دننام .دنک
یم لمع باتک ،سکدنیا اب .دنکSQL Server یمفیدر دناوتعیرس ار طبترم یاه ادیپ رت
دنک.

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

42
۱۱.۷ بیاعم و ایازم Index
ایازم بیاعم
وجتسج تعرس شیازفا رتشیب یاضف فرصم
درکلمع دوبهبJOIN وWHERE تایلمع ندش دنکINSERT, UPDATE, DELETE

۱۱.۸ داجیا Index رد SQL Server
-- لااک مان یور سکدنیا داجیا
CREATE INDEX idx_ProductName
ON Products(Name);

-- هدیچیپ یاهوجتسج یارب( یبیکرت سکدنیا )رت
CREATE INDEX idx_SalesInvoice_Product
ON SalesItems(InvoiceID, ProductID);

۱۱.۹ فذح Index
DROP INDEX idx_ProductName ON Products;

عمج مهدزای لصف یدنب

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

43
رازبا دربراک
VIEW تخاس شرازگشیپ زا یاهفیرعتاب هدش SELECT
INDEX هداد هب یسرتسد تعرس شیازفا گرزب لوادج رد ًاصوصخم ،اه
ویو شرازگ رازباتسا یزاس.
سکدنیا هنیهب رازباتسا تعرس یزاس.

اب ،دعب لصف رد هتشر عباوتیا (String Functions) یم انشآ شزادرپ یارب هک میوش
نتم ،مان لثم اهدنتسه دیفم رایسب ...و لیمیا ،هرامش.

هتشر عباوت :مهدزاود لصف یا (String Functions) رد SQL Server
Chapter 12: String Functions in SQL Server
هتشر عباوتیا (String Functions) یارب هداد ندرک ادج ای بیکرت ،حلاصا ،یسررب یاه
ینتم یم هدافتسا ...و لیمیا ،سامت هرامش ،لااک مان لثمرد عباوت نیا .دنوش SQL
Server دنتسه دنمتردق و عونتم رایسب.

۱۲.۱ عباتLEN() – هتشر لوط
-- لااک مان یاهرتکاراک دادعت
SELECT Name, LEN(Name) AS Length
FROM Products;

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

44

۱۲.۲ عباتUPPER() وLOWER() – کچوک/گرزب فورح هب لیدبت
-- گرزب فورح اب لااک مان
SELECT UPPER(Name) AS UpperName
FROM Products;
-- کچوک فورح اب یرتشم مان
SELECT LOWER(Name) AS LowerName
FROM Accounts;

۱۲.۳ عباتLTRIM() وRTRIM() – هتشر یاهتنا و ادتبا زا هلصاف فذح
-- یفاضا هلصاف فذحپچ تمس
SELECT LTRIM(' دروبیک') AS Result;
-- تسار تمس یفاضا هلصاف فذح
SELECT RTRIM('سوام ') AS Result;

۱۲.۴ عباتTRIM() – رد SQL Server 2017 دعب هب
SELECT TRIM(' پل پات ') AS Cleaned;

۱۲.۵ عباتREPLACE() – هتشرریز ینیزگیاج

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

45
-- پل" ینیزگیاج تون" اب "پات کوب"
SELECT REPLACE(Name, N' پل پات', N' تونکوب') AS NewName
FROM Products;

۱۲.۶ عباتSUBSTRING() – هتشر زا یشخب جارختسا
-- نتفرگ۳ لااک مان زا لوا رتکاراک
SELECT SUBSTRING(Name, 1, 3) AS ShortName
FROM Products;

۱۲.۷ هتشر لاصتا اب اه+
-- باسح فرط عون و مان لاصتا
SELECT Name + ' - ' + Type AS FullDescription
FROM Accounts;

۱۲.۸ عباتCHARINDEX() – رگید هتشر رد هتشر کی تیعقوم
-- یب" هملک تیعقوم ندرک ادیپلااک مان رد "میس
SELECT Name, CHARINDEX(N' یبمیس', Name) AS Position
FROM Products;

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

46
عمج مهدزاود لصف یدنب
عبات دربراک
LEN() هتشر لوط
UPPER() / LOWER() کچوک/گرزب فورح هب لیدبت
LTRIM() / RTRIM() تسار/پچ هلصاف فذح
TRIM() اهتنا و ادتبا هلصاف فذح (2017+)
REPLACE() نتم ینیزگیاج
SUBSTRING() نتم زا شخب ندرک ادج
CHARINDEX() هتشر رد هملک کی لحم نتفای
+ نوتم لاصتا

غارس هب ،دعب لصف رد یضایر و یددع عباوت یم ،فیفخت ،تمیق تابساحم یارب هک میور
دنراد دربراک یفداصت ددع دیلوت و ،ندرک درگ.
رد یضایر و یددع عباوت :مهدزیس لصف SQL Server
Chapter 13: Numeric and Mathematical Functions in SQL Server
رد یضایر عباوت SQL Server یم هزاجا امش هب یور ار یددع تابساحم عاونا دنهد
نوتستمیق رد عباوت نیا .دیهد ماجنا ریداقم و اهلیلحت و ،تایلام ،فیفخت ،یراذگ یاه
دنراد یدایز دربراک یرامآ.

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

47

۱۳.۱ عباتROUND() – ندرک درگ ددع
-- راشعا مقر ود هب تمیق ندرک درگ
SELECT Name, ROUND(Price, 2) AS RoundedPrice
FROM Products;

۱۳.۲ عباتCEILING() – لااب هب ندرک درگ
SELECT CEILING(3.14) AS CeilValue; -- :یجورخ4

۱۳.۳ عباتFLOOR() – نییاپ هب ندرک درگ
SELECT FLOOR(3.99) AS FloorValue; -- :یجورخ3

۱۳.۴ عباتABS() – قلطم ردق
SELECT ABS(-2500) AS AbsoluteValue; -- :یجورخ2500

۱۳.۵ عباتPOWER() – ددع ناوت
SELECT POWER(2, 3) AS Result; -- :یجورخ8

۱۳.۶ عباتSQRT() – )مود هشیر( رذج

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

48

SELECT SQRT(144) AS SquareRoot; -- :یجورخ12

۱۳.۷ عباتRAND() – یفداصت ددع دیلوت
SELECT RAND() AS RandomValue; -- نیب یددع :یجورخ0 و1

۱۳.۸ رد یددع تابساحم SELECT
-- متیآ ره شورف لک غلبم هبساحم
SELECT Quantity, UnitPrice,
Quantity * UnitPrice AS TotalPrice
FROM SalesItems;

۱۳.۹ رد یضایر عباوت زا هدافتسا UPDATE
-- نازیم هب اهلااک تمیق شیازفا۱۰٪
UPDATE Products
SET Price = ROUND(Price * 1.10, 2);

عمج مهدزیس لصف یدنب

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

49
عبات دربراک
ROUND() ندرک درگ
CEILING() / FLOOR() نییاپ / لااب هب ندرک درگ
ABS() قلطم ردق
POWER() / SQRT() رذج / ناوت
RAND() نیب یفداصت ددع۰ ات۱
اب تابساحم+, -, *, / یضایر میقتسم لامعا

اب ،دعب لصف ردنامز و خیرات عباوت رد SQL Server یم انشآلیلحت رد هک میوش یاه
،ینامزشرازگ هرود یاهدنراد دربراک رایسب یخیرات دانسا تیریدم و ،یا.



رد نامز و خیرات عباوت :مهدراهچ لصف SQL Server
Chapter 14: Date and Time Functions in SQL Server
هداد هاگیاپ رد نامز تیریدممتسیس رد ًاصوصخم ؛تسا مهم رایسب اه رودص دننام ییاه
،روتکاف شرازگ ،تخادرپ دیسررسهریغ و هنلااس ای هناهام یاه. SQL Server هعومجم زا یا
اب راک یارب عباوتنامز و خیرات تسا هدرک مهارف.

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

50

۱۴.۱ عباتGETDATE() – متسیس یراج نامز و خیرات
SELECT GETDATE() AS CurrentDateTime;

۱۴.۲ عباتGETUTCDATE() – یناهج نامز و خیرات (UTC)
SELECT GETUTCDATE() AS UtcNow;

۱۴.۳ شخب جارختسا اب خیرات زا ییاهDATEPART()
-- روتکاف خیرات زا لاس جارختسا
SELECT InvoiceDate,
DATEPART(YEAR, InvoiceDate) AS Year,
DATEPART(MONTH, InvoiceDate) AS Month,
DATEPART(DAY, InvoiceDate) AS Day
FROM SalesInvoices;

۱۴.۴ بلاق اب خیرات یدنبFORMAT() (زا SQL Server 2012 دعب هب)
-- هب خیرات شیامن یشرافس تروص
SELECT FORMAT(InvoiceDate, 'yyyy/MM/dd') AS FormattedDate
FROM SalesInvoices;

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

51
-- هقیقد و تعاس طقف شیامن
SELECT FORMAT(GETDATE(), 'HH:mm') AS CurrentTime;

۱۴.۵ اب خیرات ود نیب فلاتخا هبساحمDATEDIFF()
زورما و روتکاف خیرات نیب زور دادعت
SELECT InvoiceDate,
DATEDIFF(DAY, InvoiceDate, GETDATE()) AS DaysSinceInvoice
FROM SalesInvoices;

۱۴.۶ اب نامز ندوزفاDATEADD()
-- خیرات شیامن۳۰ هدنیآ زور
SELECT DATEADD(DAY, 30, GETDATE()) AS DueDate;

۱۴.۷ اب خیرات شخب طقف نتفرگCAST ایCONVERT
-- خیرات طقف شیامن و نامز فذح
SELECT CAST(GETDATE() AS DATE) AS TodayOnly;
ای:
SELECT CONVERT(DATE, GETDATE()) AS TodayOnly;

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

52
۱۴.۸ خیرات ساسا رب ندرک رتلیف
-- لاس رد هک ییاهروتکاف۲۰۲۴ هدش رداصدنا
SELECT * FROM SalesInvoices
WHERE YEAR(InvoiceDate) = 2024;

-- زا ییاهروتکاف۳ هتشذگ هام
SELECT * FROM SalesInvoices
WHERE InvoiceDate >= DATEADD(MONTH, -3, GETDATE());

عمج مهدراهچ لصف یدنب
عبات دربراک
GETDATE() یلعف نامز و خیرات
DATEPART() شخب جارختسا )...و تعاس ،زور ،هام ،لاس( خیرات یاه
FORMAT() بلاقنامز/خیرات یجورخ یدنب
DATEDIFF() خیرات ود نیب هلصاف هبساحم
DATEADD() ندوزفاینامز هلصاف
CAST / CONVERT هب عون لیدبتDATE نامز فذح یارب

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

53
عبات دربراک
خیرات ساسا رب رتلیف شرازگ یریگ ینامز یاه

غارس هب ،دعب لصف رد هتشر قیبطت و اهوگلا یوجتسجاه زا هدافتسا ابLIKE,
PATINDEX, CHARINDEX رد ینتم یوجتسج یاهرازبا رگید و SQL Server یممیور.
لصف هتشر قیبطت و اهوگلا یوجتسج :مهدزناپ رد اه SQL Server
Chapter 15: Pattern Matching in SQL Server

یم دای لصف نیا رد دننام ینتم عباوت و اهرگلمع زا هدافتسا اب روطچ میریگLIKE,
PATINDEX, CHARINDEX, هدعاقاب تارابع یتح و (رد SQL Server 2022) ، یاهوگلا
ینتم مینک لیلحت و وجتسج ار.

۱۵.۱ اب وجتسجLIKE
رگلمعLIKE یارب هتشر یور هداس یقیبطت یوجتسجاه یم هدافتسادوش.
دامن حیضوت
% هاوخلد رتکاراک دنچ ای رفص
_ هاوخلد رتکاراک کی طقف
لاثم اه:
-- پل" اب هک ییاهلااک یم عورش "پات دنوش

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

54
SELECT * FROM Products
WHERE Name LIKE N' پل پات%';

-- یب" یواح هک ییاهلااک دنتسه "میس
SELECT * FROM Products
WHERE Name LIKE N'% یبمیس%';

-- یفرحراهچ مان اب ییاهلااک
SELECT * FROM Products
WHERE Name LIKE '____';

۱۵.۲ اب وجتسجCHARINDEX
عباتCHARINDEX یمرب هتشر کی رد ار هتشرریز کی عوقو نیلوا ناکمدنادرگ.

-- هملک ناکم ندرک ادیپ "USB" لااک مان رد
SELECT Name, CHARINDEX('USB', Name) AS USB_Position
FROM Products
WHERE CHARINDEX('USB', Name) > 0;

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

55
۱۵.۳ اب وجتسجPATINDEX
عباتPATINDEX هباشمCHARINDEX زا اما تسا یاهوگلاLIKE اب% و_ ینابیتشپ
یمدنک.

-- هملک نیلوا تیعقوم یم عورش "دروبیک" اب هک یا دوش
SELECT Name, PATINDEX(N'%دروبیک%', Name) AS Position
FROM Products
WHERE PATINDEX(N'%دروبیک%', Name) > 0;

۱۵.۴ هسیاقمLIKE, CHARINDEX وPATINDEX
رگلمع/عبات قیبطت تردق فورح هب ساسح
زا ینابیتشپ
وگلا
LIKE لماک قیبطت
هب یگتسب collation
دراد
هلب
CHARINDEX هتشرریز طقف هلب ریخ
PATINDEX
زا یبیکرتLIKE و
CHARINDEX
هلب هلب

۱۵.۵ زا هدافتساCOLLATE هب تیساسح میظنت یارب کچوک/گرزب فورح

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

56
-- فورح هب ساسح ریغ یوجتسج
SELECT * FROM Products
WHERE Name COLLATE Latin1_General_CI_AI LIKE '%usb%';
CI = Case Insensitive
AI = Accent Insensitive

۱۵.۶ هدیچیپ یوجتسج رت ( زا SQL Server 2022) ابREGEXP_LIKE
زا رگا SQL Server 2022 یم هدافتسا دعب هب یم ،دینکزا دیناوت Regex دیربب هرهب زین:
-- مان رد ددع لماش هک ییاهلااک دنتسه ناش
SELECT * FROM Products
WHERE REGEXP_LIKE(Name, '[0-9]');
هخسن زا رگانییاپ یاه یم هدافتسا رت ،دینکREGEXP_LIKE دوب دهاوخن سرتسد رد.

عمج مهدزناپ لصف یدنب
رازبا دربراک
LIKE اب وگلا یوجتسج% و_
CHARINDEX هتشرریز کی ناکم نتفای
PATINDEX نتم رد وگلا نتفای

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

57
رازبا دربراک
COLLATE فورح هب تیساسح لرتنک
REGEXP_LIKE هدعاق اب یوجتسج (طقف SQL Server 2022+)

غارس هب ،)باتک زا شخب نیا ینایاپ لصف( دعب لصف رد هداد عون لیدبت اه (Type
Conversion) یمنتم هب خیرات ای ،خیرات هب ددع ،ددع هب هتشر لیدبت لثم ،میور.


هداد عون لیدبت :مهدزناش لصف رد اه SQL Server
Chapter 16: Data Type Conversion in SQL Server
رد SQL Serverمیهد رییغت رگید یعون هب ار هداد کی عون تسا مزلا یهاگ ،—for
example عباوت اب تایلمع نیا .هتشر هب ددع ای ،نتم هب خیرات ،ددع هب هتشر لیدبت ،
CAST(), CONVERT(), یهاگ وPARSE() یم ماجنادوش.

۱۶.۱ عباتCAST() – هداد عون درادناتسا لیدبت
-- ددع هب هتشر لیدبت
SELECT CAST('12345' AS INT) AS NumberValue;

-- هتشر هب ددع لیدبت

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

58
SELECT CAST(250000 AS VARCHAR(20)) + ' ناموت' AS LabeledPrice;

۱۶.۲ عباتCONVERT() – صوصخم تمرف اب لیدبت
-- صاخ تمرف اب هتشر هب خیرات لیدبت
SELECT CONVERT(VARCHAR(10), GETDATE(), 120) AS FormattedDate; --
:یجورخ2025-04-13

-- تمرف۳ (dd/mm/yy)
SELECT CONVERT(VARCHAR(10), GETDATE(), 3) AS PersianStyleDate; --
:یجورخ13/04/25
یارب فلتخم تمرف یاهدکCONVERT:
دک یجورخ خیرات تمرف
1 mm/dd/yy
3 dd/mm/yy
104 dd.mm.yyyy
120 yyyy-mm-dd hh:mi:ss (ISO)

۱۶.۳ عباتPARSE() – رتدنمشوه لیدبت (SQL Server 2012 دعب هب)

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

59

-- خیرات هب هتشر لیدبت
SELECT PARSE('2025-04-13' AS DATE USING 'en-US') AS ParsedDate;
زا هدافتسا یاربPARSE() دیابUSING گنهرف نابز هارمه ار (culture) درک دراو.

۱۶.۴ ینتم ای یضایر تایلمع رد راکدوخ لیدبت
-- هب هتشر و ددع عمج یم لیدبت راکدوخ تروص دوش
SELECT 'غلبم: ' + CAST(1000000 AS VARCHAR(20)) + ' ناموت' AS PriceText;

۱۶.۵ اب هداد عون یسرربSQL_VARIANT_PROPERTY() هتفرشیپ
-- رادقم کی یعقاو هداد عون یسررب
SELECT SQL_VARIANT_PROPERTY(CAST(123.45 AS DECIMAL(10,2)),
'BaseType') AS DataType;

عمج مهدزناش لصف یدنب
عبات دربراک
CAST() هداد عاونا نیب هداس لیدبت
CONVERT() تمرف اب هارمه لیدبتخیرات یارب ًاصوصخم ،صوصخم

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

60
عبات دربراک
PARSE() هتفرشیپ لیدبت ینابز گنهرف اب رت
ینمض لیدبت ،ددع و هتشر بیکرت ردSQL Server یم لیدبت شدوخ دنک

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

61
رکف یوداج هناروآون یاهراکهار هعسوت هنیمز رد ورشیپ تکرش کی شوه ،لاتیجید ی
نامزاس هب ،هرواشم و ،قیقحت ،شزومآ رب زکرمت اب ام .تسا ینامزاس لوحت و یعونصم اه
یم کمکیروانف زا ات مینکمیمصت و رتشیب ییاراک ،دشر یارب روهظون یاه یریگ
هرهب هنادنمشوهدنوش دنم.
لیلحت ،یروانف ناصصختم زا لکشتم ام میت بسک نارگ لاتیجید لوحت نارواشم و راکو
یلمع و عماج ییاهراکهار ،رازاب یاهزاین زا قیمع کرد و ینف شناد زا یبیکرت اب هک تسا
یم هئارادنهد.
هئارا فده اب باتک نیاشنیب یهدنیآ و یدربراک یاه هرابرد رگن یلماع یعونصم شوه ی
هقلاع و ،نانیرفآراک ،ناریدم یارب رثؤم ییامنهار ات تسا هدش فیلأت و یروآدرگ هب نادنم
دشاب یروانف.
تامدخ اب رتشیب ییانشآ یارب بو هب ،امدینزب رس رکف یوداج تیاس:
www.jadoosoft.com

راسی-خینابا پیزوری- پ شبنیزوری ۱۴ -روانف و ملع کراپ نامتخاسی ناردنزام ناتسا-
موس هقبط-تسپ دکی:۴۸۱۸۷۶۵۷۶۷
۰۱۱۳۳۲۵۹۶۵۹ – ۰۲۱۸۸۱۷۸۶۰۵ تشپ(ینابی تعاس زا اهرصع۱۶ ات۲۰ ،۰۹۱۰۱۰۰۹۰۰۷)

رکف یوداج یرازفا مرن تکرش www.jadoosoft.com
امراک یرادباسح رازفا مرن هدننک دیلوت

62