You are on page 1of 48

BỘ GIÁO DỤC VÀ ĐÀO TẠO

Trường Cao đẳng Công Nghệ Thông Tin


Tp.HCM

CHƯƠNG 2
TẠO VÀ QUẢN TRỊ CSDL
(DATABASE)

GV: Nguyễn Trung Kiên 1


NỘI DUNG

 Các cơ sở dữ liệu được SQL hỗ trợ

 Bảng (Table)

 Tạo các ràng buộc

 Chỉ mục

2
Các cơ sở dữ liệu được SQL hỗ trợ
 SQL Server hỗ trợ hai loại cơ sở dữ liệu:
Cơ sở dữ liệu hệ thống
Được sử dụng để lưu thông tin về SQL
Server.
Được sử dụng để quản lý các cơ sở dữ liệu
người dùng

Cơ sở dữ liệu người dùng định nghĩa


Người sử dụng SQL Server có thể tạo các
cơ sở dữ liệu người dùng định nghĩa
Mục đích của các cơ sở dữ liệu này là để
lưu dữ liệu của người sử dụng
3
Các cơ sở dữ liệu hệ thống
Cơ sở dữ liệu Mô tả
Cơ sở dữ liệu này lưu trữ các tất cả các thông tin về
master hệ thống của SQL Server.

Cơ sở dữ liệu này được sử dụng bởi dịch vụ SQL


msdb Server Agent để nhắc nhở các thực hiện công việc
theo lịch biểu và các công việc khác.

Cơ sở dữ liệu này được sử dụng như là cơ sở dữ liệu


model mẫu cho tất cả các cơ sở dữ liệu được người dùng
tạo ra sau này trong SQL Server.

Các kết quả tạm thời, đối tượng tạm thời được tạo ra
tempdb trong quá trình xử lý tính toán được lưu trong cơ sở
dữ liệu này

4
CSDL người dùng định nghĩa
 Để tạo một cơ sở dữ liệu người dùng, cần
các thông tin sau:

Tên của cơ sở dữ liệu

Người sở hữu hoặc người tạo cơ sở dữ liệu

Kích thước của cơ sở dữ liệu

Các tập tin và nhóm các tập tin được sử


dụng để lưu trữ cơ sở dữ liệu
5
CSDL người dùng định nghĩa

 Cấu trúc lưu trữ của một CSDL

Một CSDL trong SQL Server tối thiểu sẽ

dùng hai tập tin vật lý để lưu trữ dữ liệu:

Một dùng lưu trữ dữ liệu (Data file)

Một dùng để lưu trữ các vết giao tác


(Transaction log file)
6
CSDL người dùng định nghĩa

 Thường được tổ chức lưu trữ trong 3


tập tin:

CSDL

Data Files Log Files

Primary Secondary Log file


DataFile Data Fie (*.LDF)
(*.MDF) (*.NDF)

7
Tạo mới CSDL trong SQL Server
 Cách 1:
Sử dụng tiện ích EnterPriseManager:
Click chuột phải vào Databases chọn
”New Database”

8
 Xuất hiện hộp thoại:

Nhập tên CSDL

9
 Cách 2: Tạo CSDL bằng cách viết lệnh
Cú pháp

10
 Cách 2: Tạo CSDL bằng cách viết lệnh

Ví dụ:

11
 Lệnh Xóa CSDL

Ví dụ:

 Lệnh gọi CSDL để làm việc

Ví dụ:

 Lệnh đổi tên CSDL

Ví dụ:

12
 Thay đổi kích thước các tập tin của CSDL

Tăng kích thước tập tin dữ liệu lên 60MB

Giảm kích thước tập tin dữ liệu xuống 20MB

Chỉnh sửa kích thước tăng trưởng 5% mỗi


khi database bị đầy

13
Bảng (table)

 Khái niệm.

 Kiểu dữ liệu.

 Cấu trúc tạo bảng.

 Thay đổi cấu trúc bảng.

 Tính toàn vẹn trong cơ sở dữ liệu.

 Tạo các ràng buộc.

14
Khái niệm
 Dùng để lưu trữ các thông tin dữ liệu của
những đối tượng, thực thể trong thế giới
thực vào máy tính
Tên bảng (table name): Dài tối đa 128 ký
tự và phải duy nhất bên trong trong một
CSDL
Tên cột (column name): Tên của các cột
bên trong bảng phải duy nhất trong bảng

Kiểu dữ liệu (Data type): Quy định kiểu dữ


liệu mà cột sẽ lưu trữ bên trong bảng
15
Khái niệm
 Cột định danh (Identity):
Giá trị của cột định danh là số nguyên không
trùng lắp do hệ thống Microsoft SQL Server tự
động cấp phát.

 Các kiểu dữ liệu của cột định danh:


Int, SmallInt, TinyInt, Decimal, Numeric

Thuộc tính Identity Seed: Số đầu tiên

Thuộc tính Identity Increment: Giá trị


tăng
16
Khái niệm
 Cho phép để trống dữ liệu (Allow Null):
Quy định dữ liệu có thể được phép để trống
hay là phải nhập.

 Giá trị mặc định (Default Value):


Là giá trị mặc nhiên sẽ được gán vào cột dữ
liệu khi người sử dụng thêm mới một mẫu tin
nhưng lại để trống giá trị tại cột dữ liệu đó.
17
Các kiểu dữ liệu trong SQL Server
Kiểu dữ liệu Kích thước Miền giá trị dữ liệu lưu trữ
Các kiểu dữ liệu dạng số nguyên
Từ -2^63 (-9,223,372,036,854,775,808)
BigInt 8 bytes
đến 2^63-1 (9,223,372,036,854,775,807)
Int 4 bytes Từ -2,147,483,648 đến +2,147,483,647

SmallInt 2 bytes từ -32768 đến +32767

TinyInt 1 byte từ 0 đến 255

Bit 1 byte 0, 1 hoặc Null

Các kiểu dữ liệu dạng số thập phân

Decimal, Numeric 17 bytes Từ -10^38 đến +10^38

Các kiểu dữ liệu dạng số thực

Float 8 bytes Từ -1.79E+308 đến +1.79E+308

Real 4 bytes Từ -3.40E+38 đến +3.40E+38 18


Các kiểu dữ liệu trong SQL Server
Kiểu dữ liệu Kích thước Miền giá trị dữ liệu lưu trữ
Các kiểu dữ liệu dạng chuỗi có độ dài cố định

Char N bytes Từ 1 đến 8000 ký tự, mỗi ký tự là 1byte

Các kiểu dữ liệu dạng chuỗi có độ dài biến đổi

VarChar N bytes Từ 1 đến 8000 ký tự, mỗi ký tự là 1byte


Từ 1 đến 2,147,483,647 ký tự, mỗi ký tự
Text N bytes
là 1byte
Các kiểu dữ liệu dạng chuỗi dùng font chữ Unicode

NChar 2*N bytes Từ 1 đến 4000 ký tự, mỗi ký tự là 2byte

NVarChar 2*N bytes Từ 1 đến 4000 ký tự, mỗi ký tự là 2byte


Từ 1 đến 1,073,741,823 ký tự, mỗi ký tự
NText 2*N bytes
là 2byte

19
Các kiểu dữ liệu trong SQL Server
Kiểu dữ liệu Kích thước Miền giá trị dữ liệu lưu trữ
Các kiểu dữ liệu dạng tiền tệ
Từ -922,337,203,685,477.5808
Money 8 bytes
đến +922,337,203,685,477.5807
SmallMoney 4 bytes Từ -214,748.3648 đến + 214,748.3647

Các kiểu dữ liệu dạng ngày và giờ

DateTime 8 bytes Từ 01/01/1753 đến 31/12/9999

SmallDateTime 4 bytes Từ 01/01/1900 đến 06/06/2079

Các kiểu dữ liệu dạng chuỗi nhị phân (Binary String)

Binary N bytes Từ 1 đến 8000 bytes

VarBinary N bytes Từ 1 đến 8000 bytes

Image N bytes Từ 1 đến 2,147,483,647 bytes

20
Các kiểu dữ liệu trong SQL Server
 Xem thông tin các kiểu DL trong SQL

21
Tạo Bảng trong Sql Server

 Cách 1: Sử dụng tiện ích EnterPrise


Manager: Mở CSDL Click chuột phải
Tables chọn “New Table”

22
 Màn hình thiết kế bảng xuất hiện

23
 Cách 2: Tạo Table bằng cách viết lệnh
Tạo cấu trúc bảng đơn giản

Ví dụ:

24
Tạo cấu trúc bảng có giá trị mặc định
Cú pháp:

• Giá trị: là giá trị cụ thể sẽ được gán vào cột.


• Hàm: là tên hàm cùng với các tham số (nếu
có), tuy nhiên kiểu dữ liệu mà hàm trả về
phải là cùng với kiểu dữ liệu mà cột sẽ lưu
trữ.
25
Tạo cấu trúc bảng có giá trị mặc định
Ví dụ 1:

26
Tạo cấu trúc bảng có giá trị mặc định
Ví dụ 2:

27
Tạo cấu trúc bảng có cột định danh(Identity)
Cú pháp:

Trong một bảng chỉ có tối đa một cột được


chỉ định làm cột định danh.
Số bắt đầu: là số mà 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: là chỉ số mà SQL Server cộng
lên để cấp phát cho từng mẫu tin kết tiếp.
Mặc định là 1. 28
Tạo cấu trúc bảng có cột định danh(Identity)
Ví dụ:Tạo Identity bắt đầu 1000 và tăng 1

29
Thay đổi cấu trúc bảng
 Thêm một cột mới vào bảng

Ví dụ:

 Sửa đổi kiểu dữ liệu cột trong bảng

Ví dụ:

 Xóa một cột trong bảng

Ví dụ:

30
 Sửa tên bảng trong CSDL

Ví dụ:Đổi tên bảng KHACH_HANG thành KhachHang

 Xóa bảng trong CSDL

Ví dụ: Xóa bảng KhachHang

 Xem thông tin các cột trong bảng

 Xem thông tin các bảng trong CSDL hiện tại

Chú ý :Muốn thay đổi cấu trúc của cột phải xoá tất cả các Constraint liên quan
31
Tính toàn vẹn trong cơ sở dữ liệu
 Các ràng buộc trong SQL Server được
quản lý bởi hai đối tượng: CONSTRAINT
và TRIGGER
Constraint: Quản lý các ràng buộc như:
Ràng buộc dữ liệu duy nhất

Ràng buộc dữ liệu tồn tại

Ràng buộc miền giá trị


Trigger: Quản lý các ràng buộc phức tạp,
liên quan đến dữ liệu trên nhiều bảng

32
Ràng buộc dữ liệu duy nhất

 Kiểm tra duy nhất dữ liệu: Có hai loại

Primary Key (khoá chính):


Dữ liệu khác rỗng và duy nhất.

Unique:
Dữ liệu có thể rỗng và dữ liệu tồn tại duy
nhất

33
 Định nghĩa ràng buộc khoá chính

Tạo khóa chính trong khi tạo bảng


CREATE TABLE Tên_bảng
(
Tên_cột_1 Kiểu_dữ_liệu [NOT NULL],
Tên_cột_2 Kiểu_dữ_liệu [NOT NULL] [,...]
[CONSTRAINT PK_Tên_bảng_TenCot ] PRIMARY
KEY (D.sách_cột_khóa_chính)
)

Tạo khóa chính sau khi tạo bảng

34
 Định nghĩa ràng buộc duy nhất
 Cách tạo ra Unique Constraint cũng tương tự như
Primary Key Constraint chỉ việc thay chữ Primary
Key thành Unique.
CREATE TABLE Tên_bảng
(
Tên_cột_1 Kiểu_dữ_liệu [NOT NULL],
Tên_cột_2 Kiểu_dữ_liệu [NOT NULL] [,...]
[CONSTRAINT UQ_Tên_bảng_TenCot ]
UNIQUE (D.sách_cột_tạo_duy_nhất)
)
 Trong một bảng chỉ định nghĩa một ràng
buộc khoá chính nhưng có thể định nghĩa
nhiều ràng buộc dữ liệu duy nhất.
35
 Ví dụ 1:

 Ví dụ 2:

36
 Kiểm tra tồn tại Dữ liệu
Định nghĩa khóa ngoại trong khi tạo bảng
CREATE TABLE Tên_bảng
(
Tên_cột_1 Kiểu_dữ_liệu [NOT NULL],
Tên_cột_2 Kiểu_dữ_liệu [NOT NULL] [,...]
[CONSTRAINT FK_Tên_bảng_TenCot ] FOREIGN
KEY (Cột_Khóa_Ngoại) REFERENCES
Tên_bảng_tham_chiếu(cột_tham_chiếu)
)

Định nghĩa khóa ngoại sau khi tạo bảng

37
 Ví dụ: Tạo khóa ngoại tham
chiếu tới bảng
Tạo khóa ngoại tham
NhanVien.chiếu
Trongtớikhi tạo
bảng
bảng Sau khi đã tạo
Khachhang.
bảng HOADON

38
 Kiểm tra ràng buộc miền giá trị(CHECK)
Định nghĩa CHECK trong khi tạo bảng

Định nghĩa CHECK sau khi tạo bảng

39
 Ví dụ 1: Kiểm tra DONGIA > 1000

 Ví dụ 2: Kiểm tra SOLUONG > 0

40
 Thao tác ràng buộc Constraint trên bảng.

Hủy một Constraint:

Tắt các Constraint:

Bật các Constraint:

41
 Kiểm tra ràng buộc miền giá trị (RULE)
Tạo RULE.

Tên_Rule: Kiểm tra miền giá trị dữ liệu


được tạo mới Biểu_thức.
Biểu_thức: Có 3 thành phần:
o Tên biến hình thức phải bắt đầu bằng @
o Toán tử so sánh
o Giá trị so sánh

Ví dụ 1: Tạo Rule kiểm tra miền giá trị DL>0.

42
 Kiểm tra ràng buộc miền giá trị (RULE)
Ví dụ 2: Tạo Rule kiểm tra miền giá trị chỉ thuộc
trong các từ: cái, bộ, thùng, hộp.

Áp dụng RULE kiểm tra vào bảng


Cú pháp:

Ví dụ: Áp dụng Rule có tên rule_DonViTinh cho cột


đơn vị tính trong bảng HangHoa.

43
 Kiểm tra ràng buộc miền giá trị (RULE)
Hủy áp dụng RULE kiểm tra trong bảng

Ví dụ: Hủy bỏ Rule kiểm tra DonViTinh trong bảng


HangHoa

Xóa RULE

Ví dụ: Xóa Rule rule_DonViTinh vừa tạo

Chú ý: Phải hủy bỏ áp dụng Rule mới xóa được Rule


44
Chỉ mục(Index)
 Khái niệm: Index là một đối tượng trong
Datatable (hệ quản trị cơ sở dữ liệu) – là 1
cấu trúc dữ liệu được sử dụng nhằm tăng
tốc độ tìm kiếm trong 1 table, nó giống như
phần mục lục của mỗi cuốn sách.

45
Chỉ mục(Index)
 Cấu trúc: Chỉ mục bao gồm ít nhất 2 phần
là Khóa tìm kiếm và con trỏ trỏ tới mẫu tin
tương ứng trong bảng dữ liệu.

46
Chỉ mục(Index)
 Index có thể được chia làm 2 loại:
Clustered Index: Chỉ có thể tạo một cluster
index duy nhất cho một bảng dữ liệu.
Mặc định khóa chính sẽ thành cluster index
Dữ liệu của bảng sắp xếp theo thứ tự của cluster
index

Non Cluster Index: Có thể tạo 249 non


cluster index cho một bảng dữ liệu.

47
Chỉ mục(Index)
 Cú pháp tạo Index:

 Ví dụ:Tạo Index cho cột TenMH trong bảng HangHoa

 Cú pháp xóa Index:

 Ví dụ: Xóa Index trong bảng HangHoa

48

You might also like