SQL Server/MySQL

Bài tập - Quản lý nhân khẩu - Lập trình SQL Server - MySQL

1. Database Creation

  • Tạo database tên: QuanLyNhanKhau

  • Sử dụng database vừa tạo.

2. Table Creation

Bảng QuanHuyen

ColumnDatatypeConstraint
MaQHINT IDENTITY(1,1)NOT NULL
TenQHNVARCHAR(100)

Bảng DuongPho

ColumnDatatypeConstraint
DuongIDINTNOT NULL
MaQHINTNOT NULL
TenDuongNVARCHAR(MAX)NOT NULL
NgayDuyetTenDATETIMENULL

Bảng NhaTrenPho

ColumnDatatypeConstraint
NhaIDINTNOT NULL
DuongIDINTNOT NULL
ChuHoNVARCHAR(50)NULL
DienTichMONEYNULL

3. Index and Table Alternation

  • Tạo CLUSTERED INDEX tên là [CI_NhaTrenPho_NhaID] trên cột [NhaID] của bảng [NhaTrenPho].

  • Tạo Unique Non-Clustered Index tên là [UI_QuanHuyen_TenQH] trên cột [TenQH] của bảng [QuanHuyen].

  • Thay đổi bảng [NhaTrenPho], thêm cột mới tên là [SoNhanKhau] với kiểu dữ liệu INT.


4. Constraint Creation

  • Tạo Primary Key cho các bảng:

    • Bảng QuanHuyen: Khóa chính là MaQH.

    • Bảng DuongPho: Khóa chính là DuongID.

    • Bảng NhaTrenPho: Khóa chính là NhaID.

  • Tạo Foreign Key cho các bảng:

    • Bảng DuongPho nối với bảng QuanHuyen qua cột MaQH.

    • Bảng NhaTrenPho nối với bảng DuongPho qua cột DuongID.

  • Tạo Check Constraint cho cột DienTich trong bảng NhaTrenPho phải lớn hơn 0.


5. View Creation

Tạo một View tên là [v_NhaTrenPho] hiển thị danh sách các ngôi nhà bao gồm: MaQH, TenQH, DuongID, TenDuong, NhaID, ChuHo, DienTich.


6. Stored Procedure

Tạo một Stored Procedure tên là [sp_GetNhaByDuong] truyền vào tham số @TenDuong. Hiển thị tất cả các ngôi nhà thuộc con đường đó.


7. Stored Procedure

Tạo một Stored Procedure tên là [sp_InsertDuongPho] để thêm mới một con đường vào bảng DuongPho.


8. Stored Procedure

Tạo một Stored Procedure tên là [sp_UpdateSoNhanKhau] để cập nhật số nhân khẩu cho một ngôi nhà dựa vào NhaID.


9. Stored Procedure & Variable

  • Khai báo một biến.

  • Sử dụng Convert (datetime, 'dd/mm/yyyy', 103).

  • Thực thi (Execute) store procedure với tham số là biến cục bộ đã khai báo ở trên.


10. Trigger

Tạo một FOR trigger cho sự kiện UPDATE với tên [FOR_UPDATE_NHA_TREN_PHO] để kiểm tra giá trị của cột [SoNhanKhau]:

  • Nếu giá trị cột [SoNhanKhau] = 0 thì việc cập nhật trên bảng [Nha_Tren_pho] bị lỗi (rollback).

  • Nếu giá trị cột [SoNhanKhau] > 0 thì cho phép cập nhật trên bảng [Nha_Tren_pho].

11. Trigger

Tạo một INSTEAD OF trigger cho sự kiện DELETE với tên [InsteadOf_Delete_DuongPho] trên bảng [DuongPho] để thay thế cho hành động xóa mặc định trên bảng này.



Phản hồi từ học viên

5

Tổng 0 đánh giá

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó