bài 2 : các đối tượng trong csdl - sql server

46
1 1 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC SQL Server

Upload: hoc-lap-trinh-web

Post on 25-Jun-2015

7.899 views

Category:

Documents


5 download

DESCRIPTION

Khái niệm về cơ sở dữ liệu • 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

TRANSCRIPT

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

11

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

SQL Server

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

22

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Các đối tượng trong CSDL

2

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

33

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Cơ sở dữ liệu của SQL Server

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

44

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Khái niệm về cơ sở dữ liệu Khái niệm về cơ sở dữ liệu • 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

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

55

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

• Một database bao gồm tối thiểu hai file− .mdf: lưu trữ các đối tượng trong database như table, view, …

• Có thể bổ sung thêm các tập tin lưu trữ khác

• Tổ chức tốt các tập tin lưu trữ giúp tăng tốc độ xử lý

− .ldf: lưu trữ quá trình cập nhật/thay đổi dữ liệu• Hỗ trợ phục hồi dữ liệu

• Hỗ trợ backup/restore dữ liệu

• Các thông số về kích thước− Initial size

− File growth

− Maximum file size

Các tập tin vật lý lưu trữ cơ sở dữ liệuCác tập tin vật lý lưu trữ cơ sở dữ liệu

.mdf .ndf .ldf

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

66

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

• Ví dụ lệnh tạo một database đơn giảnTạo databaseTạo database

CREATE DATABASE QLNHANSU ON PRIMARY (NAME = QLNHANSU, FILENAME=‘D:\SQLDATA\QLNHANSU.MDF’, SIZE=50MB, MAXSIZE=200MB, FILEGROWTH=10%)LOG ON (NAME=QLNHANSU_Log, FILENAME=‘D:\SQLDATA\QLNHANSU_LOG.LDF’, SIZE=10, MAXSIZE=UNLIMITED, FILEGROWTH=5MB)

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

77

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Bảng dữ liệu (Table)

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

88

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 Khái niệm về bảng • Bảng dùng để lưu trữ các thông tin của một đối

tượng trong thực tế− Gồm có các dòng và các cột

− Bảng trong CSDL thường có khoá chính (primary key)

− Các bảng thường liên hệ với nhau bằng các mối quan hệ

− Bảng được tạo trong các Schema (mặc định là schema dbo)

• Bảng có thể có các ràng buộc (constraint), trigger [Sẽ tìm hiểu kỹ trong các chương sau]

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

99

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Các thuộc tính của bảng Các thuộc tính của bảng • Tên bảng

• Tên cột

• Kiểu dữ liệu− Độ dài dữ liệu

− Số ký số lưu trữ

− Số số lẻ lưu trữ

• Thuộc tính trên cột− Allow null

− Identity

− Default value

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

1010

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Giới thiệu các kiểu dữ liệu cơ sởLoại Các kiểu dữ liệu

Numeric Integer int, bigint, smallint, tinyintExact decimal, numericApproximate

float, real

Monetary money, smallmoneyDate and time datetime, smalldatetimeCharacter

Non-Unicode

char, varchar, varchar(max), text

Unicode nchar, nvarchar, nvarchar(max), ntextBinary binary, varbinary, varbinary(max)Image imageGlobal identifier uniqueidentifierXML xmlSpecial bit, cursor, timestamp, sysname, table,

sql_variant

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

1111

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 số nguyênKiểu dữ liệu Miền giá trị Kích thước Chú ýbigint -263 263 - 1 8 bytes

int -231 231 - 1 4 bytes

smallint -215 215 – 1 2 bytes

tinyint 0 255 1 byte

bit 0 hoặc 1 hoặc null n byte -Tùy theo số cột kiểu bit trong 1 bảng mà SQL Server tối ưu hóa lưu trữ đối với kiểu này theo cách 1 8 1 byte; 9 16 2 byte)- Giá trị chuỗi TRUE và FALSE có thể được chuyển đổi tới 1 và 0

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

1212

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 số thập phân : Decimal và numeric:

• decimal[ (p[ , s] )] và numeric[ (p[ , s] )] : Dùng cho các số mà độ chính xác được cố định và có thứ tự. Miền giá trị - 1038 + 1 1038 - 1.

• p (precision) : Chỉ định tổng số ký số (digits) tối đa có thể được lưu trữ (tính cho cả hai phía dấu chấm động). Giá trị này tuân thủ từ 138, mặc định là 18.

• s (scale) : Số ký số tối đa bên phải dấu chấm động (phần thập phân). Giai chia này phải có một giá trị từ 0 p. Giai chia chỉ có thể được chỉ định nếu precision được chỉ định. Mặc định là 0

• Kích thước lưu trữ tùy thuộc vào số ký số được chỉ định tại phần Precision

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

1313

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 tiền tệ : money và smallmoney

Kiểu dữ liệu Miền giá trị Số byte lưu trữ

money - 922,337,203,685,477.5808 922,337,203,685,477.5807

8

smallmoney - 214,748.3648 214,748.3647 4

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

1414

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 số thực : float(n) và real

Kiểu dữ liệu Miền giá trị Số byte lưu trữ

float - 1.79E+308 -2.23E-308, 0 và 2.23E-308 1.79E+308

Phụ thuộc vào n. Mặc định n=53

real - 214,748.3648 214,748.3647 4

Giá trị n Số ký số Kích thước

1-24 7 4 bytes25-53 15 8 bytes

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

1515

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 ngày giờ

− Sử dụng datetime để trình bày dữ liệu ngày giờ từ 1/1/1753 31/12/9999.

− Sử dụng smalldatetime để trình bày dữ liệu ngày giờ từ 1/1900 6/6/2079.

− Lưu ý: Bạn có thể sử dụng smalldatetime khi bạn không cần lưu thời điểm chính xác [tức là không cần chính xác đến giây, milli giây], ví dụ như ngày hết hạn (expiration dates).

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

1616

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ự − char và varchar

Kiểu dữ liệu Miền giá trị Số byte lưu trữ

Ghi chú

Char[(n)] n phải là giá trị từ 1 8000

n bytes non-Unicode và độ dài cố định

Varchar[( 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 gigabytes (GB)

non-Unicode và độ dài biến đổiMặc định n=1

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

1717

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ự : − nchar và nvarchar

Kiểu dữ liệu Miền giá trị Số byte lưu trữ

Ghi chú

nchar[(n)] n phải là giá trị từ 1 4000

n bytes Unicode và độ dài cố định

nvarchar[( n | max )] n có 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 đổiMặc định n=1

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

1818

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 đổiimage 0–2 GB (16-byte

pointer) Dữ liệu binary biến đổi từ 0 231 - 1

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

1919

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ố địnhvarbinary [ ( 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

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

2020

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.

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

2121

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

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

2222

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.

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

2323

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

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

2424

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

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

2525

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

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

2626

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

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

2727

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 Thêm một cột mới trong bảng

ALTER TABLE Tên_bảngADD 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 DONDHADD Ngaydknh DATETIME

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

2828

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 Hủy bỏ cột hiện có bên trong bảng

ALTER TABLE Tên_bảngDROP 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

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

2929

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 Sửa đổi kiểu dữ liệu của cột

ALTER TABLE Tên_bảngALTER COLUMN Tên_cột Kiểu_dữ_liệu_mới

ALTER TABLE VATTUALTER COLUMN Dvtinh VARCHAR(20)

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

3030

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 Đổ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ộtEXEC sp_rename 'NHACC.Tennhacc', 'Hotenncc', 'COLUMN‘

EXEC sp_rename 'NHACC', 'NHACCAP'

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

3131

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Đối tượng Schema

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

3232

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Khái niệm 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.

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

3333

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.

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

3434

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Tạo schemaTạo schema

• Có thể tạo bằng SSMS

• Cú pháp lệnh

CREATE SCHEMA Tên_schema_mới

CREATE SCHEMA QLNS

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

3535

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Xóa schemaXóa schema

• Có thể xóa bằng SSMS

• Cú pháp lệnh

DROP SCHEMA Tên_schema

DROP SCHEMA QLNS

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

3636

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)

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

3737

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Khái niệm 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

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

3838

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 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ệnhCREATE TYPE Tên_kiểu_dl_mớiFROM 'Kiểu_dl_cơ_sở'[NULL]

CREATE TYPE DiaChiFROM NVARCHAR(50)NULL

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

3939

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 Xóa kiểu dữ liệu người dùng định nghĩa

DROP TYPE Tên_kiểu_dl

DROP TYPE DiaChi

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

4040

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)

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

4141

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

− …

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

4242

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 SSMSTạ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

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

4343

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ạ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_NHACCASSELECT 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]

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

4444

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 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)

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

4545

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ử Cập nhật dữ liệu qua bảng ảo sử dụng trigger INSTEAD OF 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

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

4646

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 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ạiDROP VIEW Tên_bảng_ảoGoCREATE 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]