Tổng hợp những câu hỏi cần thiết và quan trọng của môn Hệ quản trị cơ sở dữ liệu (KMA). Tài liệu này giúp các bạn sinh viên có thể vượt qua các bài kiểm tra giữa kỳ, cuối kỳ và đạt kết quả cao nhất. Xin cảm ơn các bạn đã xem và tải tài liệu.
Trang 1Các kiểu dữ liệu trong T – SQL
trợ Unicode nên viết
được tiếng Việt Bộ
nhớ cấp phát tĩnh Ví dụ:
Khai báo: Truong Nếu khai báo bằng Unicode nên viết
được tiếng Việt Bộ nhớ cấp phát động
text Lưu văn bản lớn Cấp phát bộ nhớ động theo chiều dài
• Khởi tạo Database trong SQL Server:
- Cách 1: Tạo Database bằng giao diện (UI): Chuột phải vào Database/ New Database - Cách 2: Tạo Databse bằng code
Trang 2Bước 1: Kết nối SQL Server với SQL Server 2019 Management Studio Bước 2: Chọn New Query hoặc (Ctrl + N)
Bước 3: Gõ code
o Tạo Database theo yêu cầu: Cú pháp
create database tên_csdl on primary Tạo file data
Ví dụ Tạo Database QLSV với tập tin dữ liệu chính là QLSV.mdf, đặt tại thư
mục D:\ với dung lượng khởi tạo là 5MB, tối đa là 50MB và độ gia tăng kích
Trang 3➢ Đổi tên Database
ALTER DATABASE <ten_Database> MODIFY NAME = <ten_moi>
Ví dụ Đổi tên CSDL “QLSV” thành “QL_SV”
ALTER DATABASE QLSV MODIFY NAME = QL_SV
➢ Xóa Database Khi sử dụng lệnh xóa, CSDL sẽ bị xóa khỏi vùng lưu trữ, muốn
tạo thì phải thực thi lại lệnh
Cú pháp DROP DATABASE <ten_Database>
<Tên trường 1> <Kiểu dữ liệu> [RBTV] [, ], <Tên trường 2> <Kiểu dữ liệu> [RBTV] [, ], <Tên trường n> <Kiểu dữ liệu> [RBTV] [, ]
MaSV char(10) primary key, HotenSV nvarchar(50) not null,
GioiTinh nchar(7) check (Gioitinh = N'Nam' or Gioitinh = N'Nữ'),
Trang 4NgaySinh date not null,
ALTER TABLE Tên_bảng
ADD Tên_cột Kiểu_dữ_liệu [RBTV] [, ]
Ví dụ
alter table sinhvien add email char(30) unique
Chú ý Cột mới luôn được thêm vào cuối bảng 2 Xoá một cột khỏi bảng
Cú pháp
ALTER TABLE Tên_bảng DROP COLUMN Tên_cột
Ví dụ
alter table sinhvien drop column lop
Lưu ý: Muốn xóa được cột thì phải xóa ràng buộc của cột đó trước 3 Sửa đổi kiểu dữ liệu của cột
Cú pháp
ALTER TABLE Tên_bảng ALTER COLUMN Tên_cột
SP_RENAME 'Tên_bảng_cũ', 'Tên_bảng_mới'
Lưu ý Có dấu nháy hoặc không đều được 6 Xem cấu trúc của bảng
Trang 5Ví dụ:
create table SINHVIEN (
MaSV char(10) primary key, HotenSV nvarchar(50) not null,
GioiTinh nchar(7) check (Gioitinh = N'Nam' or
Các bảng lưu trữ dữ liệu theo các dòng;
Câu lệnh INSERT INTO dùng để thêm một dòng mới vào bảng
➢ Cú pháp
INSERT INTO tenbang(cot1, cot2, cot3, ,) VALUES (gt1, gt2, gt3, )
➢ Ví dụ
insert into SINHVIEN values ('AT1', N'Cao Thu Huyền', N'Nữ’,'AT16A', N'Hà Nội', '10/10/1998','abc@gmail.com')
➢ Lưu ý
- Nếu dữ liệu kiểu text và kiểu Date, khi chèn phải có ‘ ’, nếu là kiểu
nvachar thì phải có tiếp đầu ngữ N’
- Dữ liệu kiểu Date yêu cầu nhập tháng/ngày/năm hoặc năm/tháng/ngày hoặc nhập dưới dạng chuỗi
- Dữ liệu dạng tự tăng thì không cần nhập
- Cột nhập dữ liệu có thể thay đổi nhưng phải tương ứng với cột đưa giá trị vào
Xem dữ liệu trên bảng
➢ Cú pháp SELECT * FROM <tenbang> SELECT * FROM Sinhvien
Trang 6Cập nhật dữ liệu trên bảng – UPDATE
➢ Ý nghĩa
1 UPDATE là truy vấn được sử dụng để chỉnh sửa những bản ghi đã tồn tại trong bảng
2 Có thể sử dụng mệnh đề WHERE với lệnh UPDATE để cập nhật các hàng được chọn, nếu không muốn tất cả các hàng trong bảng bị ảnh hưởng
DELETE FROM SINHVIEN WHERE MaSV = ‘DT1’
➢ Yêu cầu So sánh DROP, DELETE VÀ TRUNCATE
- Câu lệnh Drop Table không thể thực hiện nếu bảng cần xóa được tham chiếu
bởi một Foreign Key
- Các ràng buộc, chỉ mục, trigger, đều bị xóa, nếu tạo lại bảng thì cũng phải tạo lại các đối tượng này
- Sau khi xóa không thể khôi phục lại bảng và dữ liệu bảng
Trang 7Cách khai báo RBTV
➢ Cú pháp
1 Khai báo ở mức cột
✓ Khai báo không đặt tên cho ràng buộc
<Tencot> <kieudulieu> <loairangbuoc>
✓ Khai báo đặt tên cho ràng buộc
<Tencot> <kieudulieu> constraint <tenrangbuoc> <loairangbuoc>
2 Khai báo ở mức bảng
constraint <tenrangbuoc> <loairangbuoc> (dscot)
Thêm ràng buộc mới vào bảng
➢ Ý nghĩa
✓ Dùng để thêm ràng buộc (constraint) mới vào bảng đã được tạo sẵn ✓ Sử dụng từ khóa Alter table\
➢ Cú pháp:
ALTER TABLE <tenbang>
ADD CONSTRAINT <tenrangbuoc> <loairangbuoc> (dscot)
Default
➢ Ý nghĩa
DEFAULT là ràng buộc mặc định Khi nhập dữ liệu cho bảng mà cột đó không được cung cấp giá trị thì giá trị mặc định sẽ được sử dụng
Cách 1: Không đặt tên cho ràng buộc
create table MONHOC (
MaMH char(4) primary key,
TenMH nvarchar(40) default 'Tên môn học', DVHT tinyint
)
Cách 2: Đặt tên cho ràng buộc
create table MONHOC (
MaMH char(4) primary key,
TenMH nvarchar(40) constraint default_MH default('Tên môn học'), DVHT tinyint,
)
Trang 8Check
➢ Ý nghĩa: CHECK là ràng buộc kiểm tra Yêu cầu cột tương ứng phải thỏa mãn một biểu
thức logic
Khai báo ràng buộc CHECK ở mức cột:
create table KETQUA (
MaSV char(3) not null, MaMH char(4) not null,
MaSV char(3) not null, MaMH char(4) not null,
Khai báo ràng buộc CHECK ở mức bảng:
khi muốn đặt tên cho ràng buộc và định nghĩa ràng buộc CHECK trên nhiều cột CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
Khai báo ràng buộc CHECK sau khi tạo bảng (ràng buộc mức bảng)
alter table KETQUA add constraint Chk_KQ check(diem>=0 and diem <=10)
Khoá chính
Tạo khoá chính sau khi tạo bảng thành công:
alter table KETQUA
add constraint PK_KQ primary key (MaSV, MaMH)
Trang 9Khoá ngoại
Cách tạo khoá ngoại:
➢ Tạo khóa ngoại trong lúc tạo bảng
create table KETQUA (
MaSV char(3) foreign key references SINHVIEN, MaMH char(4) foreign key references MONHOC , Diem tinyint check(diem>=0 and diem <=10), constraint PK_KQ primary key (MaSV, MaMh) )
➢ Tạo khóa ngoại sau khi tạo bảng
alter table KETQUA add constraint FK_SV foreign key (MaSV) references
alter table KETQUA drop constraint PK_KQ alter table SINHVIEN drop constraint Unique_SV
Identity
Cú pháp
IDENTITY(seed, increment)
Trong đó seed là giá trị khởi tạo increment là giá trị tăng cho mỗi lần
Khi không khởi tạo thì seed và increment đều có giá trị bằng 1
Ví dụ ID int IDENTITY(1000,5)
ID int IDENTITY(-10,-5)