Presentation is loading. Please wait.

Presentation is loading. Please wait.

آموزش SQL Server 2005.

Similar presentations


Presentation on theme: "آموزش SQL Server 2005."— 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

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 موفق باشید


Download ppt "آموزش SQL Server 2005."

Similar presentations


Ads by Google