Professional Documents
Culture Documents
2.2. Thiết kế bảng (Table)
2.2. Thiết kế bảng (Table)
1
2.2. Thiết kế bảng (Table)
Tạo bảng
Create table tên_bảng1,2,…n
(
Tênthuộctính1 kieudl (độ dài dl) lk,rb,ch,
Tênthuộctính2 kieudl (độ dài dl) lk,rb,ch,
..
Tênthuộctính1 kieudl (độ dài dl) lk,rb,ch
)
Kiểu dữ liệu
N-Đ-T
3
Thực thể
Thuộc tính :4
Liên kết : 3
Biểu đồ E- R: 6
N-Đ-T
4
Tạo bảng
Kiểu dữ liệu
Chuẩn hóa
N-Đ-T
2.2. Thiết kế bảng (Table)
5
N-Đ-T
2.2.1. Tạo bảng mới
6
Cú pháp :
Create Table Tên_Bảng
(
Tên_Cột Kiểu_Dữ_Liệu(Kích cỡ),
Tên_Cột Kiểu_Dữ_Liệu(Kích
cỡ) , ,primary key (Khoá chính) ,
foreign key (Khoá ngoại) references
Bảng_Tham_Chiếu(Khoá ngoại)
)
N-Đ-T
7
N-Đ-T
qlnv
8
)
N-Đ-T
1. Các kiểu dữ liệu
Kiểu dữ liệu là một thuộc tính, nó chỉ định kiểu của dữ liệu
và dung lượng có thể lưu trữ của một đối tượng
Các kiểu dữ liệu ép buộc dữ liệu phải toàn vẹn
SQL Server hỗ trợ 3 kiểu dữ liệu:
Kiểu dữ liệu hệ thống : được cung cấp bởi SQL Server
N-Đ-T
Các kiểu dữ liệu hệ thống
numeric Một cột được khai báo kiểu dữ liệu này sẽ có độ chính xác cao
và có thể co dãn kích thước lưu trữ trong bộ nhớ.
money Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte
trong bộ nhớ máy tính. Biểu diễn giá trị dữ liệu tiền tệ từ (-
2^63/10000) đến (2^63-1).
Các kiểu dữ liệu hệ thống
Approximate float Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte
numerics trong bộ nhớ máy tính. Biễu diễn các số chấm động từ -
1.79E+308 đến 1.79E+308.
real Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 4 byte
trong bộ nhớ máy tính. Biễu diễn các số chấm động có độ
chính xác từ -3.4E+38 đến 3.40E+38.
datetime Biễu diễn ngày và giờ. Được lưu trữ như là 2 số integer,
Date and time chiếm 8 byte.
smalldatetime Biểu diễn ngày và time.
Các kiểu dữ liệu hệ thống
Character String char Lưu trữ dữ liệu kí tự, nó được cố định kích thước và
không hỗ trợ Unicode.
Varchar Lưu trữ dữ liệu kí tự, độ dài có thể thay đổi và không
hỗ trợ Unicode.
Text Lưu trữ dữ liệu kí tự, độ dài có thể thay đổi và không
hỗ trợ Unicode.
Unicode nchar Lưu trữ dữ liệu kí tự, nó được cố định kích thước và
Types có hỗ trợ Unicode.
nvarchar Lưu trữ dữ liệu kí tự, độ dài có thể thay đổi và có hỗ
trợ Unicode.
Các kiểu dữ liệu hệ thống
Mục Kiểu dữ liệu Mô tả
where,
schema_name là tên của giản đồ mà kiểu dữ liệu người dùng đang được tạo ra
type_name là tên kiểu dữ liệu người dùng
base_type là tên của kiểu dữ liệu hệ thống cơ sở
precision and scale -Chỉ ra độ chính xác và độ co dãn đối với kiểu dữ liệu numeric
NULL | NOT NULL - qui định kiểu dữ liệu có cho phép chứa giá trị null hay không
N-Đ-T
Kiểu dữ liệu người dùng
Ví dụ:
CREATE TYPE usertype FROM varchar(20) NOT NULL
Kết quả:
N-Đ-T
Ràng buộc – Constraint
Ràng buộc là thuộc tính được chỉ định
cho một cột hoặc một tập hợp các cột
trong bảng để ngăn ngừa các giá trị
không nhất quán được nhập vào
SQL Server 2014 hỗ trợ các loại ràng
buộc sau:
PRIMARY KEY
UNIQUE
FOREIGN KEY
CHECK
NOT NULL
N-Đ-T
Ràng buộc kiểm tra
Ràng buộc kiểm tra giới hạn giá trị có thể được
nhập vào trong cột
Ràng buộc kiểm tra đảm bảo toàn vẹn dữ liệu
Ví dụ:
CREATE TABLE Person.PhoneExpenses ( Expense_ID int PRIMARY
KEY, MobileNumber bigint FOREIGN KEY REFERENCES
Person.ContactPhone (MobileNumber), Amount bigint CHECK
(Amount >0))
N-Đ-T
Cột được phép null – Column
Nullability
Đặc trưng của khả năng Null của một cột quyết định các
hàng trong bảng có thể chứa một giá trị Null cho cột đó
Khả năng Null của một cột có thể được định nghĩa khi tạo
một bảng hoặc định dạng một bảng
Từ khóa NULL được sử dụng để chỉ ra rằng giá trị
null là được phép trong cột
Từ khóa NOT NULL được sử dụng để chỉ ra rằng
giá trị null là không được phép
Ví du:
CREATE TABLE StoreDetails
(StoreID int NOT NULL, Name varchar(40) NULL)
N-Đ-T
Ràng buộc NOT NULL
N-Đ-T
Primary Key – Khoá chính
Ràng buộc PRIMARY KEY được sử dụng để tạo một khóa
chính và đảm bảo toàn vẹn thực thể bảng:
CúCú pháp để thêm một khóa chính trong khi tạo bảng:
pháp:
CREATE TABLE <table_name> ( Column_name datatype PRIMARY KEY
[, column_list]
CREATE )
TABLE <table_name> (<column_name> <datatype>
[, column_list] CONSTRAINT constraint_name PRIMARY KEY)
Ví dụ:
CREATE TABLE Person.ContactPhone ( Person_ID int PRIMARY
KEY, MobileNumber bigint, ServiceProvider varchar(30),
Ví dụ:
LandlineNumber bigint)
INSERT INTO Person.ContactPhone VALUES (101,983345674,’Hutch’,
NULL)
GO
INSERT INTO Person.ContactPhone VALUES(101,989010002,’Airtel’,
NULL)
GO
N-Đ-T
UNIQUE - Khóa duy nhất
Ràng buộc khóa duy nhất được sử dụng để bảo đảm
rằng chỉ các giá trị duy nhất được nhập vào trong cột
hoặc một tập hợp các cột. Nó cho phép nhà phát triển
Cúchắc
pháp:
chắn rằng không có các giá trị trùng lặp được nhập
vào
CREATE TABLE <table_name> ([column_list, ] <column_name>
<data_type>
Khóa chínhUNIQUE [,column_list])
là hoàn toàn duy nhất
Ví dụ: buộc khóa duy nhất đảm bảo ràng buộc thực thể
Ràng
bởi vìTABLE
CREATE khi một ràng buộc được(Person_ID
Person.ContactPhone áp dụng,intkhông có hai
PRIMARY
hàng
KEY, trong bảngbigint
MobileNumber có thể UNIQUE,ServiceProvider
có cùng một giá trị đối với cột đó
varchar(30),LandlineNumber bigint UNIQUE)
Ràng buộc UNIQUE cho phép null
Ví dụ:
INSERT INTO Person.ContactPhone values (101, 983345674,
’Hutch’, NULL)
N-Đ-T
FOREIGN KEY – Khóa ngoại
Một khóa ngoại trong một bảng là một cột, nó chỉ đến một khóa
chính trong một bảng khác
Ràng buộc khóa ngoại được sử dụng để đảm bảo toàn vẹn
tham chiếu
Cú pháp:
CREATE TABLE <table_name1>([ column_list,] <column_name>
<datatype> FOREIGN KEY REFERENCES <table_name2>
(pk_column_name> [, column_list])
N-Đ-T
FOREIGN KEY – Khóa ngoại 2-2
Ví dụ:
Kết qua: (Expense_ID int PRIMARY
CREATE TABLE Person.PhoneExpenses
KEY, MobileNumber bigint FOREIGN KEY REFERENCES
Person.ContactPhone (MobileNumber), Amount bigint)
Ví dụ:
INSERT INTO Person.PhoneExpenses values(101, 993026654,
500)
SELECT * FROM Person.PhoneExpenses
N-Đ-T
Bài tập 1
25
N-Đ-T
Câu lệnh tạo bảng PHONGBAN
26
N-Đ-T
Câu lệnh tạo bảng NHANVIEN
27
N-Đ-T
Bài tập 2
28
PhanTram Int
N-Đ-T
NHACC
29
N-Đ-T
2.2.2. Tạo các cột (thuộc tính- Field)
30
N-Đ-T
;
N-Đ-T
Thêm nhiều cột vào bảng
32
Cú pháp:
ALTER TABLE ten_bang
ADD cot1 dinh_nghia_cot,
cot2 dinh_nghia_cot,
…
cot_n dinh_nghia_cot;
VD:
ALTER TABLE PHONGBAN
ADD Bientap VARCHAR(50),
Trangthai VARCHAR(50);
N-Đ-T
;
Chỉnh sửa cột trong bảng
33
Cú pháp:
ALTER TABLE ten_bang
ALTER COLUMN ten_cot kieu_cot;
VD:
ALTER TABLE PHONGBAN
ALTER COLUMN Trangthai VARCHAR(75) NOT NULL
N-Đ-T
Xóa cột của bảng
34
https://quantrimang.com/lenh-alter-table-trong-s
ql-server-148148
N-Đ-T
Xóa cột của bảng
35
Cú pháp:
Where Điều_Kiện
- From : xác định table.
- Where : xác định điều kiện.
N-Đ-T
Ví dụsự1: Xoá dữ liệu của những nhân viên thuộc phòng
nhân
36
Delete From NHANVIEN
Where TenPhong = N'Phòng nhân sự'
Ví dụ 2: Xóa những nhân viên có giới tính là Nữ, thuộc
phòng IT
Delete From NHANVIEN
WhereTenPhong = N'Phòng nhân sự’
andGioiTinh = N'Nữ’
N-Đ-T
2.2.4. Nhập dữ liệu cho bảng
37
N-Đ-T
Tạo Cơ sở dữ liệu bằng SQL Server có tên là
38
Thực tập nghề nghiệp:
N-Đ-T
39
Tạo Cơ sở dữ liệu bằng SQL Server có tên là
TTNN1 gồm các bảng quan hệ sau:
- Khoa (makhoa , tenkhoa, dienthoai)
- GiangVien (magv, hotengv, luong , makhoa)
- SinhVien (masv, hoten, namsinh, quequan,
gioitinh, magv, makhoa)
- DeTai (madt, tendetai , kinhphi , diadiemthuctap)
- HuongDan (masv, ketqua, madt, magv)
N-Đ-T
40
2.3. Tạo chỉ dẫn (Index)
2.3.1. Giới thiệu
Các chỉ mục hay index trong sql là các bảng
tra cứu đặc biệt mà công cụ tìm kiếm cơ sở
dữ liệu có thể sử dụng để tăng tốc độ truy
xuất dữ liệu.
Đơn giản chỉ cần thiết lập một chỉ số là một
con trỏ đến dữ liệu trong một bảng.
Một chỉ mục trong một cơ sở dữ liệu rất giống
với một chỉ mục ở mặt sau của một cuốn
sách.
N-Đ-T
41
Ví dụ: muốn tham chiếu tất cả các trang trong
một cuốn sách thảo luận về một chủ đề nhất
định.
tham chiếu chỉ mục, liệt kê tất cả các chủ đề
theo thứ tự bảng chữ cái và sau đó được gọi
đến một hoặc nhiều số trang cụ thể.
N-Đ-T
.
?
N-Đ-T
Bài tập
43
N-Đ-T
Bye bye
44
N-Đ-T