Download presentation
Presentation is loading. Please wait.
1
آموزش SQL Server 2005
2
مروری بر دستورات پرس و جوهای انتخاب
TSQL
3
چندین نمونه از دستورات TSQL
Use Northwind GO SELECT FirstName, LastName FROM dbo.Employees; SELECT * FROM dbo.Employees; --Concatenating SELECT LastName + ', ' + FirstName FROM dbo.Employees;
4
چندین نمونه از دستورات TSQL
-- Aliasing column names SELECT LastName + ‘ , ‘ + FirstName AS [Full Name] FROM dbo.Employees;
5
چندین نمونه از دستورات TSQL
-- AS is optional SELECT LastName + ', ' + FirstName FullName FROM dbo.Employees; -- Another aliasing option SELECT FullName = LastName + ', ' + FirstName
6
چندین نمونه از دستورات TSQL
-- This is deprecated: SELECT 'FullName' = LastName + ', ' + FirstName FROM dbo.Employees; --SELECT and SELECT DISTINCT SELECT Title FROM dbo.Employees; SELECT DISTINCT Title FROM dbo.Employees;
7
چندین نمونه از دستورات TSQL
--WHERE SELECT CompanyName, City FROM dbo.Customers WHERE City = 'Paris';
8
چندین نمونه از دستورات TSQL
--LIKE and wildcard characters SELECT CompanyName FROM dbo.Customers WHERE CompanyName LIKE 'S%'; WHERE CompanyName LIKE '%S'; WHERE CompanyName LIKE '%S%';
9
چندین نمونه از دستورات TSQL
--Matching single characters SELECT CustomerID FROM dbo.Customers WHERE CustomerID LIKE 'B___P'; --Matching from a list WHERE CustomerID LIKE 'FRAN[RK]';
10
چندین نمونه از دستورات TSQL
SELECT CustomerID FROM dbo.Customers WHERE CustomerID LIKE 'FRAN[A-S]'; WHERE CustomerID LIKE 'FRAN[^R]';
11
چندین نمونه از دستورات TSQL
--BETWEEN SELECT LastName, FirstName, PostalCode FROM dbo.Employees WHERE PostalCode BETWEEN '98103' AND '98999'; --Testing for Null SELECT LastName, FirstName, Region WHERE Region IS NULL;
12
چندین نمونه از دستورات TSQL
--AND requires both conditions to be true SELECT LastName, City, PostalCode FROM dbo.Employees WHERE City = 'Seattle' AND PostalCode LIKE '9%'; --OR only requires one condition to be true WHERE City = 'Seattle' OR PostalCode LIKE '9%';
13
چندین نمونه از دستورات TSQL
--NOT negates the expression SELECT LastName, City, PostalCode FROM dbo.Employees WHERE City NOT LIKE 'Seattle'; --Operator Precedence: NOT, AND, OR SELECT LastName, FirstName, City WHERE LastName LIKE '%S%' AND City NOT LIKE 'Seattle';
14
چندین نمونه از دستورات TSQL
--IN SELECT CustomerID, Country FROM dbo.Customers WHERE Country IN ('France', 'Spain'); --IN with a subquery SELECT CustomerID WHERE CustomerID NOT IN(SELECT CustomerID FROM dbo.Orders);
15
چندین نمونه از دستورات TSQL
--ORDER BY SELECT LastName, City FROM dbo.Employees ORDER BY City;
16
چندین نمونه از دستورات TSQL
--Sorting in descending order SELECT LastName, City FROM dbo.Employees ORDER BY City DESC; --Sorting on multiple columns ORDER BY City DESC, LastName ASC;
17
چندین نمونه از دستورات TSQL
--Sorting on an expression SELECT LastName FROM dbo.Employees ORDER BY LEN(LastName);
18
چندین نمونه از دستورات TSQL
--Counting rows SELECT COUNT(*) AS تعداد FROM dbo.Employees;
19
چندین نمونه از دستورات TSQL
--Counting values in a column SELECT COUNT(*) AS NumEmployees, COUNT(Region) AS NumRegion FROM dbo.Employees;
20
چندین نمونه از دستورات TSQL
--Counting with WHERE SELECT COUNT(*) AS NumEmployeeSeattle FROM dbo.Employees WHERE City = 'Seattle';
21
چندین نمونه از دستورات TSQL
--Gives an error (no grouping) SELECT City, COUNT(*) AS NumEmployees FROM dbo.Employees;
22
چندین نمونه از دستورات TSQL
--Using Grouping SELECT City, COUNT(*) AS NumEmployees FROM dbo.Employees GROUP BY City;
23
چندین نمونه از دستورات TSQL
--ORDER BY with GROUP BY SELECT City, COUNT(*) AS NumEmployees FROM dbo.Employees GROUP BY City ORDER BY COUNT(*) DESC, City;
24
چندین نمونه از دستورات TSQL
--HAVING SELECT City, COUNT(*) AS NumEmployees FROM dbo.Employees GROUP BY City HAVING COUNT(*) > 1 ORDER BY NumEmployees DESC, City;
25
چندین نمونه از دستورات TSQL
--TOP SELECT TOP 3 City, COUNT(*) AS NumEmployees FROM dbo.Employees GROUP BY City ORDER BY COUNT(*) DESC;
26
چندین نمونه از دستورات TSQL
--TOP WITH TIES SELECT TOP 3 WITH TIES City, COUNT(*) AS NumEmployees FROM dbo.Employees GROUP BY City ORDER BY COUNT(*) DESC;
27
چندین نمونه از دستورات TSQL
--TOP WITH PERCENT SELECT TOP 25 PERCENT WITH TIES City, COUNT(*) AS NumEmployees FROM dbo.Employees GROUP BY City ORDER BY COUNT(*) DESC;
28
چندین نمونه از دستورات TSQL
--A Cartesian Product SELECT ProductName, CategoryName FROM dbo.Products, dbo.Categories;
29
چندین نمونه از دستورات TSQL
SELECT ProductName, CategoryName FROM dbo.Products CROSS JOIN dbo.Categories;
30
چندین نمونه از دستورات TSQL
--Joining in the WHERE clause SELECT ProductName, CategoryName FROM dbo.Products, dbo.Categories WHERE dbo.Products.CategoryID = dbo.Categories.CategoryID;
31
چندین نمونه از دستورات TSQL
--Using JOIN SELECT dbo.Products.ProductName, dbo.Categories.CategoryName FROM dbo.Products JOIN dbo.Categories ON dbo.Products.CategoryID = dbo.Categories.CategoryID;
32
چندین نمونه از دستورات TSQL
-- save typing with table aliases SELECT P.ProductName, C.CategoryName FROM dbo.Products AS P JOIN dbo.Categories AS C ON P.CategoryID = C.CategoryID;
33
چندین نمونه از دستورات TSQL
--JOIN with WHERE and ORDER BY SELECT dbo.Products.ProductName, dbo.Categories.CategoryName, dbo.Products.UnitPrice FROM dbo.Products INNER JOIN dbo.Categories ON dbo.Products.CategoryID = dbo.Categories.CategoryID WHERE UnitPrice > 50 ORDER BY ProductName;
34
چندین نمونه از دستورات TSQL
--Multiple table join SELECT OrderID, convert(varchar(10), OrderDate,101) AS Date,CompanyName, LastName FROM dbo.Orders INNER JOIN dbo.Customers ON Orders.CustomerID = Customers.CustomerID INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID WHERE OrderDate BETWEEN '9/1/1996' AND '9/10/1996' ORDER BY OrderDate;
35
خروجی دستور
36
چندین نمونه از دستورات TSQL
SELECT CompanyName, SUM([Order Details].UnitPrice * [Order Details].Quantity) AS TotalSold FROM dbo.Customers INNER JOIN dbo.Orders ON Customers.CustomerID = Orders.CustomerID INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID WHERE Orders.OrderDate BETWEEN '9/1/1996' AND '9/10/1996' GROUP BY CompanyName ORDER BY TotalSold DESC;
37
خروجی دستور
38
چندین نمونه از دستورات TSQL
--Left outer join to find unmatched values SELECT CompanyName as [No Orders] FROM dbo.Customers LEFT JOIN dbo.Orders ON Customers.CustomerID = Orders.CustomerID WHERE Orders.OrderID IS NULL ORDER BY CompanyName;
39
چندین نمونه از دستورات TSQL
--Right outer join to find unmatched values SELECT CompanyName as [No Orders] FROM dbo.Orders RIGHT JOIN dbo.Customers ON Customers.CustomerID = Orders.CustomerID WHERE Orders.OrderID IS NULL ORDER BY CompanyName;
40
اتصال اطلاعات ستونها به یکدیگرConcatenation
ترکیب ستون های نام و نام خانوادگی از جدول Contact : الحاق ستون های FirstName و LastName با علامت + اختصاص دادن یک Alias Name با استفاده از کلمه کلیدی AS مرتب سازی رکوردهای به صورت الفبایی بر اساس نام با استفاده از دستور ORDER BY: ** با الحاق کردن ستون ها هیچ تغییری در ساختار بانک اطلاعاتی اتفاق نمی افتد.
41
ایجاد و مدیریت روالهای ذخیره شده
Stored Procedures
42
آشنایی با پروسیجرهای ذخیره شده
هر پروسیجر ذخیره شده ، مجموعه ای از دستورات است که به جای اجرا در کامپیوتر سرویس گیرنده در سروری که بانک اطلاعاتی روی آن قرار دارد اجرا میشود. مزایای استفاده از پروسیجرهای ذخیره شده: برنامه نویسی ماژولار دسترسی محدود و تابعی به جداول کاهش ترافیک شبکه اجرای سریع کاهش اشتباهات برنامه نویسی
43
آشنایی با ایجاد یک پروسیجر ذخیره شده ساده
CREATE PROCEDURE [dbo].[GetAllConcat] AS BEGIN SET NOCOUNT ON; SELECT * FROM [AdventureWorks].[Person].[Contact]; END GO
44
آشنایی با اجرای یک پروسیجر ذخیره شده ساده
45
ایجاد و مدیریت Stored Procedures
CREATE PROCEDURE dbo.ListEmployees AS Begin SET NOCOUNT ON SELECT EmployeeID, LastName, FirstName FROM dbo.Employees; End
46
ایجاد و مدیریت Stored Procedures
EXECUTE dbo.ListEmployees; EXEC dbo.ListEmployees;
47
ایجاد و مدیریت Stored Procedures
CREATE PROC dbo.ListEmployeesByCity @City varchar(25) AS SET NOCOUNT ON SELECT LastName, FirstName, City FROM dbo.Employees WHERE City
48
ایجاد و مدیریت Stored Procedures
EXEC = 'London'; EXEC dbo.ListEmployeesByCity 'London';
49
ایجاد و مدیریت Stored Procedures
CREATE PROC dbo.ListEmployeesOptionalCity @City varchar(25) = NULL AS SET NOCOUNT ON IS NULL SELECT LastName, FirstName, City FROM dbo.Employees; ELSE FROM dbo.Employees WHERE City
50
ایجاد و مدیریت Stored Procedures
-- Lists employees in London EXEC = 'London'; -- Lists all employees EXEC dbo.ListEmployeesOptionalCity;
51
CREATE PROC dbo.InsertShipper
@CompanyName nvarchar(40) = NULL, @Phone nvarchar(24) = NULL, @ShipperID int = NULL OUTPUT AS SET NOCOUNT ON IS NULL = 0; ELSE BEGIN INSERT INTO dbo.Shippers(CompanyName, Phone) = SCOPE_IDENTITY(); END
52
ایجاد و مدیریت Stored Procedures
int EXEC dbo.InsertShipper @CompanyName = ‘Fantazio', @Phone = NULL, @ShipperID OUTPUT; AS ShipperID;
53
ایجاد و مدیریت Stored Procedures
CREATE PROC dbo.InsertShipperReturn @CompanyName nvarchar(40) = NULL, @Phone nvarchar(24) = NULL AS SET NOCOUNT ON IS NULL RETURN 0; ELSE BEGIN int; INSERT INTO dbo.Shippers (CompanyName, Phone) VALUES = SCOPE_IDENTITY(); END
54
ایجاد و مدیریت Stored Procedures
int; = dbo.InsertShipperReturn @CompanyName = ‘Fantazio', @Phone = NULL; AS ShipperID;
55
ویرایش و حذف Stored Procedures
-- ALTER ویرایش روالهای ذخیره شده با کلمه کلیدی ALTER PROCEDURE dbo.ListEmployees AS SET NOCOUNT ON SELECT EmployeeID, LastName, FirstName FROM dbo.Employees; -- DROP حذف روالهای ذخیره شده با کلمه کلیدی DROP PROC dbo.ListEmployees
56
نماها Views
57
CREATE VIEW dbo.vwEmployeeAddressLabels
AS SELECT FirstName + SPACE(1) + LastName + Char(13) + Char(10) + Address + Char(13) + Char(10) + City + CASE WHEN Region IS NULL THEN ' ' + PostalCode ELSE ', ' + Region + ' ' + PostalCode END + Char(13) + Char(10) + Country AS Address FROM dbo.Employees;
58
ایجاد و مدیریت Views SELECT * FROM dbo.vwEmployeeAddressLabels;
59
ویرایش و حذف Views -- ALTER ویرایش نماهابا کلمه کلیدی
ALTER VIEW dbo.ListEmployees SELECT EmployeeID, LastName, FirstName FROM dbo.Employees; -- DROP حذف نماها با کلمه کلیدی DROP VIEW dbo.ListEmployees
60
موفق باشید
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.