Presentation is loading. Please wait.

Presentation is loading. Please wait.

آموزش SQL Server 2005. مروری بر دستورات پرس و جوهای انتخاب TSQL.

Similar presentations


Presentation on theme: "آموزش SQL Server 2005. مروری بر دستورات پرس و جوهای انتخاب TSQL."— Presentation transcript:

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 FROM dbo.Employees;

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%'; SELECT CompanyName FROM dbo.Customers WHERE CompanyName LIKE '%S'; SELECT CompanyName FROM dbo.Customers WHERE CompanyName LIKE '%S%';

9 چندین نمونه از دستورات TSQL --Matching single characters SELECT CustomerID FROM dbo.Customers WHERE CustomerID LIKE 'B___P'; --Matching from a list SELECT CustomerID FROM dbo.Customers WHERE CustomerID LIKE 'FRAN[RK]';

10 چندین نمونه از دستورات TSQL SELECT CustomerID FROM dbo.Customers WHERE CustomerID LIKE 'FRAN[A-S]'; SELECT CustomerID FROM dbo.Customers 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 FROM dbo.Employees 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 SELECT LastName, City, PostalCode FROM dbo.Employees 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 FROM dbo.Employees 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 FROM dbo.Customers 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 SELECT LastName, City FROM dbo.Employees 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 ترکیب ستون های نام و نام خانوادگی از جدول Contact : الحاق ستون های FirstName و LastName با علامت + اختصاص دادن یک Alias Name با استفاده از کلمه کلیدی AS مرتب سازی رکوردهای به صورت الفبایی بر اساس نام با استفاده از دستور ORDER BY: ** با الحاق کردن ستون ها هیچ تغییری در ساختار بانک اطلاعاتی اتفاق نمی افتد. اتصال اطلاعات ستونها به یکدیگرConcatenation

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 = @City;

48 ایجاد و مدیریت Stored Procedures EXEC dbo.ListEmployeesByCity @City = 'London'; EXEC dbo.ListEmployeesByCity 'London';

49 ایجاد و مدیریت Stored Procedures CREATE PROC dbo.ListEmployeesOptionalCity @City varchar(25) = NULL AS SET NOCOUNT ON IF @City IS NULL SELECT LastName, FirstName, City FROM dbo.Employees; ELSE SELECT LastName, FirstName, City FROM dbo.Employees WHERE City = @City;

50 ایجاد و مدیریت Stored Procedures -- Lists employees in London EXEC dbo.ListEmployeesOptionalCity @City = '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 IF @CompanyName IS NULL SET @ShipperID = 0; ELSE BEGIN INSERT INTO dbo.Shippers(CompanyName, Phone) VALUES (@CompanyName, @Phone); SET @ShipperID = SCOPE_IDENTITY(); END

52 ایجاد و مدیریت Stored Procedures DECLARE @NewShipperID int EXEC dbo.InsertShipper @CompanyName = Fantazio', @Phone = NULL, @ShipperID = @NewShipperID OUTPUT; SELECT @NewShipperID AS ShipperID;

53 CREATE PROC dbo.InsertShipperReturn @CompanyName nvarchar(40) = NULL, @Phone nvarchar(24) = NULL AS SET NOCOUNT ON IF @CompanyName IS NULL RETURN 0; ELSE BEGIN DECLARE @NewID int; INSERT INTO dbo.Shippers (CompanyName, Phone) VALUES (@CompanyName, @Phone); SET @NewID = SCOPE_IDENTITY(); RETURN @NewID END ایجاد و مدیریت Stored Procedures

54 DECLARE @NewShipperID int; EXEC @NewShipperID = dbo.InsertShipperReturn @CompanyName = Fantazio', @Phone = NULL; SELECT @NewShipperID 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 موفق باشید


Download ppt "آموزش SQL Server 2005. مروری بر دستورات پرس و جوهای انتخاب TSQL."

Similar presentations


Ads by Google