Bạn sử dụng từ khóa TOP để chỉ truy xuất N hàng đầu tiên từ một phát biểu SELECT. Chẳng hạn, phát biểu SELECT sau sử dụng từ khóa TOP để truy xuất 10 hàng đầu tiên từ bảng những sản phẩm, được sắp xếp bởi cột ProductID: SELECT TOP 10 ProductID, ProductName, UnitsInStock, ReorderLevel FROM Products ORDER BY ProductID;
Hình 3.14: Sử dụng từ khóa DESC ASC để xếp sản phẩm với giảm dần UnitsInStock tăng lên ReorderLevel TRUY XUẤT N DÒNG ĐẦU TIÊN: Bạn sử dụng từ khóa TOP để truy xuất N hàng từ phát biểu SELECT Chẳng hạn, phát biểu SELECT sau sử dụng từ khóa TOP để truy xuất 10 hàng từ bảng sản phẩm, xếp cột ProductID: SELECT TOP 10 ProductID, ProductName, UnitsInStock, ReorderLevel FROM Products ORDER BY ProductID; Hình 3.15 cho thấy kết phát biểu SELECT Hình 3.15: Sử dụng từ khóa TOP để truy xuất 10 sản phẩm ProductID LỌAI TRỪ NHỮNG HÀNG TRÙNG LẶP: Bạn sử dụng từ khóa DISTINCT để loại trừ hàng trùng lặp truy xuất phát biểu SELECT Chẳng hạn, phát biểu sau sử dụng từ khóa DISTINCT để truy xuất giá trị cột Country phân biệt từ bảng khách hàng : SELECT DISTINCT Country FROM Customers; Hình 3.16 cho thấy kết phát biểu SELECT Figure 3.16: Using the DISTINCT keyword to retrieve distinct Country column values Như bạn thấy, Phát biểu SELECT trình bày giá trị cột Country có ý nghĩa riêng biệt nhất: giá trị trùng lặp khác loại trừ Nếu bạn không bao gồm từ khóa DISTINCT, tất giá trị cột Country hiển thị bao gồm giá trị trùng lặp SỰ KẾT HỢP NHỮNG HÀNG ĐƯỢC TRUY XUẤT TỪ PHÁT BIỂU SELECT: Bạn sử dụng tóan tử UNION để kết hợp hàng xuất từ phát biểu SELECT vào dòng Thí dụ : phát biểu SELECT sử dụng tóan tử UNION để kết hợp hàng truy xuất từ phát biểu SELECT Sử dụng tóan tử UNION để kết hợp hàng truy xuất từ bảng Products ; hàng truy xuất lần thứ có ProducID nhỏ hay 5, nhũng cột truy xuất lần hai có ProductName khỡi đầu với “Queso”: (SELECT ProductID, ProductName, QuantityPerUnit, UnitPrice FROM Products WHERE ProductID 4; Hình 3.19 trình bày kết phát biểu SELECT CHỈ ĐỊNH HIỂN THỊ TÊN MỘT CỘT VÀ ĐỊNH BIỆT DANH CHO MỘT BẢNG: Bạn sử dụng mệnh đề AS để định tên cho cột hiển thị bảng trả từ phát biểu SELECT Bạn muốn thực điều cần hiển thị tên thân thiện hay mô tả tên cột thí dụ , phát biểu SELECT sau sử dụng mệnh đề AS để định tên hiển thị cột ProductName thành Product, and cột UnitPrice thành Price cho đơn vị: SELECT ProductName AS Product, UnitPrice AS 'Price for each unit' FROM products; Hình 3.20 trình bày kết phát biểu Bạn sử dụng mệnh đề AS để đặt tên đại diện cho bảng bạn muốn thực điều tên bảng bạn dài Thí dụ sau sử dụng mệnh đề AS để đặt tên đại diện cho bảng Customers Orders tương ứng với Cust Ord SELECT Cust.CustomerID, CompanyName, Address, OrderID, ShipAddress FROM Customers AS Cust, Orders AS Ord WHERE Cust.CustomerID = Ord.CustomerID AND Cust.CustomerID = 'ALFKI'; THỰC HIỆN NHỮNG TÍNH TÓAN DỰA VÀO NHỮNG CỘT CHỨA GIÁ TRỊ: Bạn điển hình sử dụng cột tính tóan để thực tính tốn dựa giá trị cột thí dụ , bạ muốn sử dụng trường tính tóan để tính tóan kết việc tăng giá trị cột UnitPrice bảng Products lên 20% Thí dụ: SELECT UnitPrice * 1.20 FROM Products WHERE ProductID = 1; Kết trả 21.600000 ( 18000000*1.2) Thí dụ liên kết giá trị cột ContactName ContactTitle từ bảng Customers nơi dịng có CustomerID ALFKI: SELECT ContactName + ', ' + ContactTitle FROM Customers WHERE CustomerID = 'ALFKI'; Kết trả Maria Anders, Sales Representive TRUY XUẤT NHỮNG HÀNG TỪ NHIỀU BÃNG: Cho đến lúc bạn nhìn thấy phát biểu SELECT truy xuất hàng từ bảng cho lần thực thi Bạn luôn cần truy xuất hàng từ nhiều bảng sử dụng mộtphát biểu SELECT Thí dụ: bạn muốn thấy tất đơn đặt khách hàng Để thực kiện điều ,bạn phải định hai bảng Customers Orders sau từ khóa FROM phát biểu SELECT sử dụng a table join mệnh đề WHERE Bạn phải định tên bảng tham chiếu đến cột tên hai bảng phát biểu SELCET Sau trinh bày truy xuất đơn đặt khách hàng với CustomerID ALFKI: SELECT Customers.CustomerID, CompanyName, Address, OrderID, ShipAddress FROM Customers, Orders WHERE Customers.CustomerID = Orders.CustomerID AND Customers.CustomerID = 'ALFKI'; Chú ý bảng Customers Orders định sau từ khóa FROM, hai bảng chứa cột có tên CustomerID, tên bảng đặt trước tham chiếu đến cột tương ứng bảng nối bảng thự cột CustomerID cho bảng (Customers.CustomerID = Orders.SustomerID ) Hình 3.21 trình bày kết phát biểu SELECT Phát biểu SELECT trước sử dụng định dạng tiêu chuẩn SQL cho việc liên kết bảng với SQL Server, bạn sử dụng từ khóa JOIN cho việc liên kế bảng lợi từ khóa JOIN bạn sử dụng để thực kết nối ngịai Bạn học đến sau Đây thí dụ viết lại phát biểu SELECT trước sử dụng từ khóa JOIN : SELECT Customers.CustomerID, CompanyName, Address, OrderID, ShipAddress FROM Customers JOIN Orders ON Customers.CustomerID = Orders.CustomerID AND Customers.CustomerID = 'ALFKI'; Phát biểu SELECT trả kết thí dụ trước Sự bất lợi hai phát biểu SELECT trước chúng trả hàng hai cột liên kết có giá trị Nghĩa , Không cột chứa giá trị NULL Đều gây lỗi bạn có hàng có giá trị NULL cột sử dụng liên kết bạn muốn thực truy xuất hàng liên kết ngòai (Outer Jions) giải vấn đề sau ba kiểu Outer Joins : LEFT OUTER JOIN: (luôn rút ngắn tới LIÊN KẾT TRÁI ) trả tất hàng từ bảng phía bên trái liên kết, bao gồm hàng có cột chứa giá trị NULL RIGHT OUTER JOIN : (luôn rút ngắn tới LIÊN KẾT PHẢI ) trả tất hàng từ bảng phía bên phải liên kết, bao gồm hàng có cốt chứa giá trị NULL FULL OUTER JOIN : (luôn rút ngắn tới LIÊN KẾT ĐẦY ) trả tất hàng từ bảng phía phải phía trái cua liên kết, bao gồm hàng có cột có giá trị NULL xem cặp thí dụ Đầu tiên thực phát biểu INSERT để thêm hàng vào bảng Products: INSERT INTO Products (ProductName, SupplierID) VALUES ('DVD Player', NULL); Chú thích : bạn học chi tiết phát biểu INSERT sau chương Bạn không cần phải định cột ProducID SQL Server tự động cung cấp giá trị sử dụng phương thức đặt mã khoá tự động Sự nhận dạnh thành lập bảng Products tạo ra, phương thức đặt mã khoá tự động phát sinh loạt giá trị ,giá trị phát sinh lần gọi tăng lên đơn vị với mội lần gọi Thí dụ ,cột ProductID từ lúc đầu nhập liệu đến chứa loạt giá trị từ đến 77 ( 77 hàng) phát biểu INSERT thêm hàng vào bảng Products phương thức đặt mã khoá tự động đặt giá trị cho cột ProductID dòng 78 Bạn ý cột SupplierID phát biểu INSERT NULL Nếu bạn thực phát biểu SELECT tiếp sau, bạn khơng nhìn thấy hàng vừa INSERT boởi cột SupplierID hàng NULL từ khố JOIN phát biểu không thực : SELECT ProductID FROM Products JOIN Suppliers ON Products.SupplierID = Suppliers.SupplierID; Để thấy hàng , bạn sử dụng LEFT JOIN phát biểu SELECT để truy xuất tất hàng từ bảng bên trái từ khoá LEFT JOIN ( trường hợp , bảng Products): SELECT ProductID FROM Products LEFT JOIN Suppliers ON Products.SupplierID = Suppliers.SupplierID; Bạn sử dụng LEFT JOIN với từ khoá IS NULL phát biểu SELECT để truy xuất hàng này: SELECT ProductID FROM Products LEFT JOIN Suppliers ON Products.SupplierID = Suppliers.SupplierID WHERE Products.SupplierID IS NULL; TRUY XUẤT NHỮNG HÀNG TỪ MỘT BẢNG VIEW: Bạn sử dụng bảng VIEW để truy xuất cột từ hoặ nhiều bảng bạn xemmột View cách linh hoạt để xem xét hàng lưu trữ bảng thí dụ , bảng view sở liệu NorthWind truy xuất danh sách sản phấm (products) xếp theo thứ tự abc Và truy xuất tên sản phẩm (product name) , loaị sản phẩm (Categories name), số cột khác Những thông tin rút từ hai bảng Products Categories Bảng view đặt tên Alphabetical list of products phát biểu SELECT tạo nên bảng View sau: SELECT Products.*, Categories.CategoryName FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID WHERE (((Products.Discontinued)=0)); Bạn truy xuất tất cột hàng từ bảng tham chiếu View cách sữ dụng phát biểu SELECT đây: SELECT * FROM [Alphabetical list of products]; Bạn truy xuất cột riêng biệt từ view Thí dụ : SELECT ProductName, CategoryName FROM [Alphabetical list of products]; THÊM MỘT HÀNG MỚI VÀO MỘT BẢNG: Bạn dử dụng phát biểu INSERT để thêm hàng vào bảng thêm hàng , bạn định tên bảng, tên cuả cột tuỳ chọn , giá trị cho cột thí dụ : INSERT INTO Customers ( CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax) VALUES ( 'JPCOM', 'Jason Price Company', 'Jason Price', 'Owner', '1 Main Street', 'New York', NULL, '12345', 'USA', '(800)-555-1212', NULL); Cột CustomerID khố bảng Customers, hàng phải chứa giá trị cho cột Bạn ý phát biểu INSERT định giá trị NULL cho cột Region Fax ( định sử dụng từ khố NULL) Bạn sử dụng Query Analyzer nhập phát biểu INSERT Hình 3.22 trinh bày phát biểu INSERT trước theo sau phát biểu SELECT truy xuất hàng INSERT Chú ý : bạn phải cung cấp giá trị cho tất cột mà định nghiã NOT NULL bảng số lượng INSERT danh sách VALUES phải phù hợp, kiểu liệu cột phải phù hợp Khi cung cấp giá trị cho tất cột hàng, bạn bỏ qua tên cột cung cấp giá trị cho cột thí dụ: INSERT INTO Customers VALUES ( 'CRCOM', 'Cynthia Red Company', 'Cynthia Red', 'Owner', '2 South Street', 'New York', NULL, '12345', 'USA', '(800)-555-1212', NULL ); SỬA ĐỔI NHỮNG HÀNG TRONG MỘT BẢNG: Bạn sử dụng phát biểu UPDATE để cập nhật hàng bảng thực cập nhật hàng, bạn định tên cuả bảng , tên cột cần cập nhật, giá trị cho cột Cảnh báo: cách điển hình , bạn phải sử dụng mệnh đề WHERE để hạn chế hàng cập nhật bạn khơng cung cấp mệnh đề WHERE , tất hàng bảng định bị cập nhật nhiều trường hợp bạn bạn phải định giá trị cho khố mệnh đề WHERE Phát biểu UPDATE sau sửa đổi cột điạ cho hàng bảng Customers với CustomerID = JPCOM : UPDATE Customers SET Address = '3 North Street' WHERE CustomerID = 'JPCOM'; hình 2.23 trình bày phát biểu UPDATE , theo sau với phát biểu SELECT truy xuất hàng sưả đổi Bạn sử dụng phát biểu UPDATE để sửa đổi nhiều cột thí dụ, phát biểu sau sửa đổi giá trị cột Address ContactTitle : UPDATE Customers SET Address = '5 Liberty Street', ContactTitle = 'CEO' WHERE CustomerID = 'JPCOM'; XOÁ NHỮNG HÀNG TỪ MỘT BẢNG: Bạn sử dụng phát biểu DELETE để xoá hàng từ bảng thực xoá hàng, bạn định tên bảng hàng cần xoá sử dụng mệnh đề WHERE Cảnh báo : bạn bỏ qua mệnh đề WHERE phát biểu DELETE , tất hàng bảng bị xoá bảo đảm bạn có cung cấp mệnh đề WHERE bạn khơng muốn xoá hết hàng bảng Phát biểu DELETE sau xố hàng Customers với hàng có CustomerID = CRCOM : DELETE FROM Customers WHERE CustomerID = 'CRCOM'; Hình 3.24 trình bày phát biểu DELETE , với phát biểu SELECT chứng minh hàng bị xoá Trong phần học phần mềm sở liệu trì tính tồn vẹn thơng tin lưu trữ trongcơ sở SỰ DUY TRÌ TÍNH TỒN VẸN CHO CƠ SỞ DỮ LIỆU: Phần mềm sở liệu bảo đảm thông tin lưu trữ bảng quán điều kiện kỷ thuật, trì tính tồn vẹn thơng tin Hai thí dụ điều sau : ● khố cuả hàng ln ln chứa diá trị ● khoá phu cuả hàng bảng tham chiếu giá trị hữu bảng cha Hãy xem sảy bạn cố gán hàng vào bảng với khố tồn bảng phát biểu INSERT sau cố thử thêm hàng vào bảng Customers với CustomerID = ALFKI ( khoá tồn bảng Customers) INSERT INTO Customers ( CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax ) VALUES ( 'ALFKI', 'Jason Price Company', 'Jason Price', 'Owner', '1 Main Street', ... minh hàng bị xoá Trong phần học phần mềm sở liệu trì tính tồn vẹn thơng tin lưu trữ trongcơ sở SỰ DUY TRÌ TÍNH TỒN VẸN CHO CƠ SỞ DỮ LIỆU: Phần mềm sở liệu bảo đảm thông tin lưu trữ bảng quán điều... với hàng có CustomerID = CRCOM : DELETE FROM Customers WHERE CustomerID = 'CRCOM'; Hình 3.24 trình bày phát biểu DELETE , với phát biểu SELECT chứng minh hàng bị xoá Trong phần học phần mềm sở. .. thành lập bảng Products tạo ra, phương thức đặt mã khoá tự động phát sinh loạt giá trị ,giá trị phát sinh lần gọi tăng lên đơn vị với mội lần gọi Thí dụ ,cột ProductID từ lúc đầu nhập liệu đến