CHƯƠng 1: TỔng quan về sql server và csdl quan hệ i-giới thiệu sql server



tải về 457.4 Kb.
trang8/12
Chuyển đổi dữ liệu27.07.2016
Kích457.4 Kb.
#7139
1   ...   4   5   6   7   8   9   10   11   12

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.

  • Các hạn chế :

    • 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






  1. 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



  1. 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



tải về 457.4 Kb.

Chia sẻ với bạn bè của bạn:
1   ...   4   5   6   7   8   9   10   11   12




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương