SQL Server - Bài 2: Các đối tượng trong CSDL

Database dùng để

− Chứa các bảng, bảng ảo, thủ tục nội,

− Mỗi database có một danh sách các người dùng

• Người dùng phải có quyền truy cập database

• Có thể phân nhóm người dùng để cấp quyền

• Tử phiên bản SQL Server 2000 hỗ trợ Application Role

• Các database hệ thống

− Master, Model, Tempdb, msdb

• Các database ví dụ

− AdventureWorks

− AdventureWorkDWs

pdf46 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 3682 | Lượt tải: 1download
Tóm tắt nội dung SQL Server - Bài 2: Các đối tượng trong CSDL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
thể là giá trị từ 1 
 4000; max biểu thị 
rằng kích thước lưu 
trữ tối đa 2 GB
Unicode và độ dài biến 
đổi
Mặc định n=1
18
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cách sử dụng các kiểu dữ liệu cơ sở
• Kiểu chuỗi ký tự 
− text và ntext và image (Đây là các kiểu dữ liệu được Microsoft 
khuyến cáo không nên sử dụng bởi lẻ trong tương lai nó sẽ bị loại 
bỏ. Thay thế vào đó là varchar(max), nvarchar(max), varbinary(max))
Kiểu dữ liệu Miền giá trị Ghi chú
text 231- 1 non-Unicode và độ dài biến 
đổi
ntext 230 - 1 Unicode và độ dài biến đổi
image 0–2 GB (16-byte 
pointer) 
Dữ liệu binary biến đổi từ 0 
 231 - 1
19
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cách sử dụng các kiểu dữ liệu cơ sở
• Kiểu chuỗi nhị phân 
Kiểu dữ liệu Miền giá trị Kích thước Ghi chú
binary [ ( n ) ] n là giá trị từ 1 8000 n bytes Độ dài cố định
varbinary [ ( n | max) ] n có thể là giá trị từ 1 
8000; max biểu thị 
rằng kích thước lưu trữ 
tối đa 2 GB
Độ dài biến đổi
20
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cách sử dụng các kiểu dữ liệu cơ sở
• Các kiểu dữ liệu khác 
−
Cursor : 
• kiểu dữ liệu cho khai báo biến hoặc khai báo tham số 
loại OUTPUT cho stored procedure chứa tham chiếu 
tới một cursor. 
• Column của table không thể được chỉ định với kiểu 
cursor. 
21
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cách sử dụng các kiểu dữ liệu cơ sở
• Timestamp : 
−
Là kiểu dữ liệu tự động phát sinh số nhị duy nhất bên 
trong một database. 
−
Giá trị phát sinh mang tính “đóng dấu phiên bản” các 
dòng của table. 
−
Kích thước 8 bytes
22
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cách sử dụng các kiểu dữ liệu cơ sở
• uniqueidentifier 
−
Một column hoặc biến cục bộ kiểu dữ liệu uniqueidentifier 
có thể được khởi tạo giá trị theo các cách sau: 
• Sử dụng hàm hệ thống NEWID
• Chuyển đổi từ một hằng chuỗi dạng xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx, trong đó mỗi x là một ký số hexadecimal trong 
miền 0-9 hoặc a-f. Ví dụ, 6F9619FF-8B86-D011-B42D-
00C04FC964FF là một giá trị uniqueidentifier hợp lệ.
− Khi tiến hành đồng bộ dữ liệu, sử dụng các column kiểu 
uniqueidentifier để bảo đảm rằng các dòng được nhận 
dạng duy nhất qua nhiều bản sao chép của table.
23
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cách sử dụng các kiểu dữ liệu cơ sở
• xml 
−
Là kiểu dữ liệu lưu trữ dữ liệu XML. Bạn có thể lưu trữ 
dữ liệu xml trong một column, hoặc biến kiểu xml 
• sql_variant 
− Là kiểu dữ liệu lưu trữ các giá trị của nhiều kiểu dữ liệu 
khác nhau được SQL Server hỗ trợ , ngoại trừ text, ntext, 
image, timestamp và sql_variant
• table 
− Là kiểu dữ liệu đặc biệt có thể được sử dụng để lưu trữ 
tập kết quả cho việc xử lý ở thời điểm sau đó. Kiểu table 
chủ yếu được sử dụng cho việc khai báo kiểu kết quả trả 
về của hàm loại table-valued
24
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tạo cấu trúc bảng đơn giản 
CREATE TABLE Tên_schema.Tên_bảng
(
Tên_cột1 Kiểu_dữ_liệu [NOT NULL] , 
Tên_cột2 Kiểu_dữ_liệu [NOT NULL] [, ...]
) 
• Từ khóa NOT NULL chỉ định không cho phép 
dữ liệu tại cột bị bỏ trống. 
25
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tạo cấu trúc bảng có cột định danh 
CREATE TABLE Tên_bảng
(
Tên_cột1 Kiểu_dữ_liệu_số 
IDENTITY [(Số_bắt_đầu, Chỉ_số_tăng)] , 
Tên_cột2 Kiểu_dữ_liệu [NOT NULL] [, ...]
) 
• Kiểu dữ liệu số: dạng số nguyên (int, smallint, tinyint, numeric và 
decimal)
− Với numeric và decimal thì phải chỉ định không lấy số lẻ.
• Số bắt đầu: SQL Server sử dụng để cấp phát cho mẩu tin đầu tiên. 
Mặc định là 1.
• Chỉ số tăng: số cộng lên để cấp phát cho những mẩu tin kế tiếp. 
Mặc định là 1.
26
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thay đổi cấu trúc bảng 
• Dùng SSMS
−
Nhanh, đơn giản
−
Dùng giao diện, không dùng lệnh
• Dùng script
−
Phức tạp, phải thuộc cú pháp lệnh
−
Cần thiết khi
• Sử dụng lại nhiều lần để cập nhật cho CSDL trên máy khác
• Cập nhật CSDL qua nhiều giai đoạn
27
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm một cột mới trong bảng 
ALTER TABLE Tên_bảng
ADD Tên_cột Kiểu_dữ_liệu [, ...]
• Tên cột: tên của cột mới được thêm vào bảng.
• Kiểu dữ liệu: kiểu dữ liệu tương ứng của cột 
mới. 
ALTER TABLE DONDH
ADD Ngaydknh DATETIME 
28
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Hủy bỏ cột hiện có bên trong bảng 
ALTER TABLE Tên_bảng
DROP COLUMN Tên_cột [, ...]
• Tên cột: tên cột sẽ bị hủy bỏ ra khỏi bảng
ALTER TABLE DONDH
DROP COLUMN Ngaydknh 
29
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sửa đổi kiểu dữ liệu của cột 
ALTER TABLE Tên_bảng
ALTER COLUMN Tên_cột Kiểu_dữ_liệu_mới 
ALTER TABLE VATTU
ALTER COLUMN Dvtinh VARCHAR(20) 
30
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Đổi tên cột, tên bảng dữ liệu 
EXEC sp_rename 'Tên_bảng[.Tên_cột]', 'Tên_mới' 
[,'COLUMN']
• EXEC: dùng để thực thi các thủ tục nội tại của SQL Server
• Tên bảng: tên bảng sẽ đổi tên hoặc chứa tên cột muốn đổi tên
• Tên cột: tên cột muốn đổi tên
• Tên mới: tên mới của cột hoặc bảng sau khi đổi
• COLUMN: sử dụng khi thay đổi tên cột
EXEC sp_rename 'NHACC.Tennhacc', 'Hotenncc', 'COLUMN‘
EXEC sp_rename 'NHACC', 'NHACCAP' 
31
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Đối tượng Schema
32
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm 
• Là khái niệm mới có trong SQL SERVER 2005
• Có thể hiểu schema là một namespace đối với các đối 
tượng database. 
• Một schema định nghĩa một ranh giới mà trong đó tất cả 
các tên là duy nhất.
• Bên trong một database, tên của schema là duy nhất  
luôn có tên với đường dẫn đầy đủ dạng 
server.database.schema.object là duy nhất. 
33
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Giải quyết vấn đề tên đối tượng user 
làm việc
• Nếu user có schema mặc định, SQL Server cố gắng 
tìm đối tượng trong schema mặc định.
• Nếu không tìm thấy đối tượng trong schema mặc định 
của user hoặc user không có schema mặc định  
SQL Server cố gắng để tìm đối tượng trong schema 
có tên dbo. 
34
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tạo schema
• Có thể tạo bằng SSMS
• Cú pháp lệnh
CREATE SCHEMA Tên_schema_mới
CREATE SCHEMA QLNS
35
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xóa schema
• Có thể xóa bằng SSMS
• Cú pháp lệnh
DROP SCHEMA Tên_schema
DROP SCHEMA QLNS
36
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Kiểu dữ liệu do người dùng
định nghĩa (Alias Data Type)
37
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm 
• Dựa trên kiểu dữ liệu định sẵn
• Ưu điểm
− Giúp thống nhất các cột dữ liệu trong CSDL theo một 
kiểu
− Dễ thay đổi, chỉnh sửa
38
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tạo kiểu dữ liệu người dùng định nghĩa 
• Có thể tạo bằng SSMS
• Cú pháp lệnh
CREATE TYPE Tên_kiểu_dl_mới
FROM 'Kiểu_dl_cơ_sở'
[NULL]
CREATE TYPE DiaChi
FROM NVARCHAR(50)
NULL
39
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xóa kiểu dữ liệu người dùng định nghĩa 
DROP TYPE Tên_kiểu_dl
DROP TYPE DiaChi
40
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bảng ảo (Virtual table – View) 
41
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về bảng ảo 
• Được xây dựng từ câu truy vấn SELECT để hiển thị dữ 
liệu từ một hay nhiều bảng
− Tập hợp dữ liệu, thể hiện cùng một dữ liệu nhưng theo nhiều cách 
khác nhau
− Làm việc tương tự như một bảng nhưng không lưu trữ dữ liệu
− Cho phép thêm/xoá/sửa
− Bảo mật dữ liệu, bảo mật nội dung câu truy vấn dữ liệu
• Một số hạn chế trong câu lệnh SELECT
− Order By
− Compute, Compute By
− …
42
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tạo bảng ảo bằng SSMS
• Đơn giản, công cụ tự động phát sinh câu lệnh
• Có thể chuyển về dạng viết lệnh SQL
43
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tạo mới bảng ảo bằng CREATE VIEW 
• Tên các cột: sử dụng trong bảng ảo khi tham chiếu đến các cột
• WITH ENCRYPTION: mã hóa nội dung câu lệnh SELECT 
• WITH CHECK OPTION: không cho cập nhật dữ liệu không thoả 
điều kiện của mệnh đề WHERE trong câu lệnh SELECT
CREATE VIEW vw_DONDH_NHACC
AS
SELECT DONDH.*, NHACC.Diachi AS Diachi, NHACC.Tennhacc AS Hoten 
 FROM DONDH INNER JOIN NHACC ON DONDH.Manhacc = 
NHACC.Manhacc
CREATE VIEW Tên_bảng_ảo
 [(Tên_các_cột)]
 [WITH ENCRYPTION]
AS Câu_lệnh_SELECT
 [WITH CHECK OPTION]
44
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xem và cập nhật dữ liệu bảng ảo 
• Làm việc như một bảng thông thường
− Sử dụng câu SELECT để xem dữ liệu
Select * From vw_DonDH
• Sử dụng INSERT/UPDATE để cập nhật dữ liệu
− Chỉ có thể cập nhật vào một bảng
− Để INSERT dữ liệu vào bảng, bảng ảo phải thỏa mãn các yêu cầu 
về khóa, ràng buộc khóa ngọai, các cột NOT NULL, các cột tính 
toán, order by, group by, distinct
• Sử dụng Delete để xoá dữ liệu
− Bảng ảo tạo từ hai hay nhiều bảng không thể xoá
• Có thể xây dựng các trigger trên bảng ảo (sẽ đề cập sau)
45
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cập nhật dữ liệu qua bảng ảo sử 
dụng trigger INSTEAD OF 
• Bảng ảo có nhiều hạn chế khi thực hiện cập nhật 
dữ liệu
− Group By, Order By, Distinct
− Thiếu cột khoá
− Ràng buộc toàn vẹn
• SQL Server cung cấp loại trigger INSTEAD OF
− Cơ chế tương tự như trigger thông thường
− Mở rộng khả năng cập nhật, tính toán dữ liệu, đặc biệt 
với bảng ảo
− Xem thêm phần TRIGGER
46
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sửa đổi nội dung bảng ảo 
ALTER VIEW Tên_bảng_ảo
 [(Tên_các_cột)]
 [WITH ENCRYPTION]
AS
Câu_lệnh_SELECT_mới
 [WITH CHECK OPTION] 
• Tương tự như xoá bảng rồi tạo lại
DROP VIEW Tên_bảng_ảo
Go
CREATE VIEW Tên_bảng_ảo
 [(Tên_các_cột)]
 [WITH ENCRYPTION]
AS
Câu_lệnh_SELECT_mới
 [WITH CHECK OPTION]

File đính kèm:

  • pdfSQL Server - Bài 2_Các đối tượng trong CSDL.pdf
Tài liệu liên quan