IX-XÓA TABLE :
Cú pháp:: DROP TABLE <tên bảng> [, …]
Ví dụ:
A. Xóa table trong database hiện hành: DROP TABLE titles1
B. Xóa table trong database khác : DROP TABLE pubs.dbo.authors2
Chú ý: Không thể xóa Table cha được tham chiếu bởi Table khác.
X-ĐỔI TÊN BẢNG:
Cú pháp: EXEC SP_RENAME 'OldName', 'NewName'
Ví dụ: Đổi tên table customers thành custs.
EXEC sp_rename 'customers', 'custs'
XI-XÓA CÁC DÒNG TRÊN TABLE VÀ GIẢI PHÓNG VÙNG NHỚ:
Cú pháp: TRUNCATE TABLE <TableName>
Ngữ nghĩa: Khác với DELETE FROM <tên bảng> được sử dụng để xóa bản ghi khỏi bảng nhưng vùng nhớ trên bộ nhớ thứ cấp (đĩa từ hoặc vật mang tin từ tính khác) vẫn không được giải phóng để dùng lại. Lệnh TRUNCATE sau khi đã xóa bỏ các bản ghi khỏi bảng thì vùng nhớ của các bản ghi này sẽ được thu hồi và cho phép các bảng khác sử dụng.
Ghi chú: Chỉ có người tạo ra bảng hoặc những người quản trị CSDL mới có quyền hạn TRUNCATE bảng.
Chương IV : TẠO VIEW (BẢNG ẢO) I-Khái niệm :
View là đối tượng dùng truy xuất dữ liệu trên các Table tạo ra bảng ảo chứa dữ liệu được yêu cầu. Thông qua
II-SỬ DỤNG T-SQL: -1Tạo View bằng T-SQL:
CREATE VIEW ViewName [(ColName1, ...)]
[WITH ENCRYPTION]
AS
select>
[WITH CHECK OPTION]
|
Ví dụ:
USE BanHang
CREATE VIEW vwTienHD (MaHD, NgayLap, TienHD)
AS SELECT a.MaHD, NgayHD, SUM(SL*DG)
FROM HoaDon a, CTHD b
GROUP BY a.MaHD, NgayHD
HAVING SUM(SL*DG) > 0
Go
EXEC sp_helptext vwTienHD
SELECT * FROM vwTienHD
|
Ví dụ: CREATE VIEW vwTienHD (MaHD, NgayLap, TienHD)
AS
SELECT a.MaHD, NgayHD, SUM(SL*DG)
FROM HoaDon a, CTHD b WHERE Year(NgayHD) =2004
GROUP BY a.MaHD, NgayHD HAVING SUM(SL*DG) > 0
Union
SELECT a.MaHD, NgayHD, SUM(SL*DG)
FROM HoaDon a, CTHD b WHERE Year(NgayHD) =2005
GROUP BY a.MaHD, NgayHD HAVING SUM(SL*DG) > 0
Go
EXEC SP_HelpText vwTienHD
-2Các hạn chế khi tạo Views -
Views không thực hiện trên các bảng tạm.
-
Lệnh CREATE VIEW không thể kết hợp với các phát biểu T-SQL khác trong một gói
-
Views không có hơn 1024 columns.
-
Không chứa mệnh đề INTO.
-3Mã hóa View:
Để tránh trường sao chép định nghĩa View, bạn có thể mã hóa View bằng cách thêm từ khóa WITH ENCRIPTION trước từ khóa AS.
Ví dụ: CREATE VIEW vwTienHD (MaHD, NgayLap, TienHD)
WITH ENCRIPTION
AS
SELECT a.MaHD, NgayHD, SUM(SL*DG)
FROM HoaDon a, CTHD b
GROUP BY a.MaHD, NgayHD
HAVING SUM(SL*DG) > 0
GO
EXEC SP_HELPTEXT vwTienHD
Kết quả là: The Object comments have been encription.
Chú ý: View đã mã hóa vẫn có thể sửa hoặc xóa nó.
-4Sử Dụng VIEW Để Thay Đổi Dữ Liệu:
Bạn có thể sử dụng View trong các phát biểu Insert, Update, Delete để thay đổi dữ liệu trên Table nguồn của View.
-
Không thể sử dụng lệnh INSERT hay DELETE trên View có sử dụng phát biểu INNER JOIN. (Trừ khi có sử dụng INSTEAD OF Trigger)
-
Không thể sử dụng lệnh INSERT nếu View có khai báo cột tính toán hoặc chứa những cột có ràng buộc NOT NULL mà không khai báo giá trị mặc định
Ví dụ : CREATE VIEW vwCTHD (MaHD, MaMH, SoLuong)
AS
SELECT MaHD, MaSP, SL
FROM CTHD
Where MaHD = 10248
Go
Insert vwCTHD(MaHD,MaMH,SoLuong) Values(10248,1,20)
Insert vwCTHD(MaHD,MaMH,SoLuong) Values(10249,1,20)
-
Bạn có thể ràng buộc dữ liệu được cập nhật phải thỏa mãn điều kiện Where của View bằng cách khai báo thêm Từ khóa : WITH CHECK OPTION
CREATE VIEW vwCTHD (MaHD, MaMH, SoLuong)
AS
SELECT MaHD, MaSP, SL
FROM CTHD
Where MaHD = 10248
WITH CHECK OPTION
Go
UPDATE vwCTHD SET soluong = soluong + 10
INSERT vwCTHD(MaHD,MaMH,SoLuong) VALUES(10248,1,20)
/* lệnh chèn sau đây sẽ bị lỗi : The attempted insert or update failed because the target view either specifies WITH CHECK OPTION or spans a view that specifies WITH CHECK OPTION and one or more rows resulting from the operation did not qualify under the CHECK OPTION constraint.
INSERT vwCTHD(MaHD,MaMH,SoLuong) VALUES(10249,1,20)
-5Thay đổi định nghĩa View:
Sử dụng phát biểu ALTER VIEW để thay đổi định nghĩa của View nhưng vẫn duy trì giấy phép cho View. Nếu bạn xóa View, sau đó tạo lại nó, bạn phải cấp lại các giấy phép cho nó.
Syntax
ALTER VIEW ViewName [(column , ...)]
[WITH ENCRYPTION]
AS
select_statement
[WITH CHECK OPTION]
| -6Xóa View: DROP VIEW
Ví dụ:
USE SieuThi
Go
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_NAME = 'vwCTHD')
DROP VIEW vwCTHD
GO
CREATE VIEW vwCTHD (MaHD, MaMH, SoLuong)
AS
SELECT MaHD, MaSP, SL
FROM CTHD
Where MaHD = 10248
III-SỬ DỤNG ENTERPRISE MANAGER
Click phải vào đối tượng Views trên khung trái và chọn New View…
Click nút để chọn Table|View nguồn.
Click nút để thêm cột Group By
Tạo và khai báo thuộc tính cho các Field
Click nút để thực hiện truy vấn
Click nút để lưu và đặt tên View
Click nút để mở cửa sổ thuộc tính của View
|
| -
WITH CUBE
Tổng hợp theo từng nhóm các cột trong GROUP BY. Đồng thời tổng hợp trên tất cả mẫu tin.
Ví dụ:
SELECT MaNV, NgayHD, SUM(SL * DGBan) AS TienHD,
COUNT(HoaDon.MaHD) AS SoHD
FROM HoaDon INNER JOIN CTHD ON HoaDon.MaHD = CTHD.MaHD
WHERE (NgayHD = CONVERT(DATETIME, '1995-09-25 00:00:00', 102))
GROUP BY MaNV, NgayHD WITH CUBE
ORDER BY MaNV, NgayHD
-
WITH ROLLUP
WITH ROLLUP tương tự WITH CUBE, nhưng chỉ tổng hợp từng nhóm các cột từ trái sang phải không tổng hợp chéo các cột.
Ví dụ:
SELECT MaNV, NgayHD, SUM(SL * DGBan) AS TienHD,
COUNT(HoaDon.MaHD) AS SoHD
FROM HoaDon INNER JOIN CTHD ON HoaDon.MaHD = CTHD.MaHD
WHERE (NgayHD = CONVERT(DATETIME, '1995-09-25 00:00:00', 102))
GROUP BY MaNV, NgayHD WITH ROLLUP
ORDER BY MaNV, NgayHD
Chia sẻ với bạn bè của bạn: |