Bài tập 1: Sử dụng truy vấn nâng cao SQL
Tham khảo thêm
Đề hoàn thành các bài tập phía dưới, các bạn tham nên đọc các bài viết vể sử dụng câu lệnh SQL:
Yêu cầu
Sử dụng hệ quản trị CSDL SQL Server thực hiện các công việc sau:
- Tạo một CSDL mới có tên QLKhachHang (sử dụng SQL Management Studio (SMS) hoặc Query Editor (QE))
- Tạo 2 bảng dữ liệu và chèn dữ liệu vào các bảng như ở bên dưới (sử dụng SMS hoặc QE):
Bảng KhachHang
IdKhachHang (Int) |
TenKH (nVarChar(50)) |
1 | Nguyễn Tuấn Anh |
2 | Trần Văn Biên |
3 | Nguyễn Đức Dũng |
4 | Trần Hiếu |
5 | Lê Đức Chiến |
6 | Trần Hài Hả |
Bảng DatHang
IdDatHang (Int) |
IdKhachHang (Int) |
TenSP (nvarchar(50)) |
NgayXL
(datetime) |
1 | 2 | Iphone 7 | ‘2002-12-01’ |
2 | 3 | Samsung Note 5 | ‘2000-03-02’ |
3 | 2 | Ipad 2 mini | ‘2003-08-03’ |
4 | 1 | Lenovo | ‘2001-05-12’ |
5 | 4 | Asus | ‘2002-10-04’ |
6 | 7 | Mac Pro | ‘2002-03-08’ |
7 | 8 | Sony Vio | ‘2002-05-02’ |
- Truy vấn dữ liệu sử dụng câu lệnh Select cùng với sử dụng JOIN (sử dụng QA)
- Inner Join
- Left Outter Join
- Right Outer Join
- Full Outer Join
- Cross Join
Kế quả của câu truy vấn phải được hiển thị theo định dạng sau
IdDatHang | TenKH | TenSP | NgayXL |
- Sử dụng câu lệnh “Select * Into…From” để tạo một bảng mới đặt tên là “XuLyDH” và chứa dữ liệu trong bảng này với dữ liệu lấy từ bảng DatHang thoả mãn điều kiện NgayXL trước ngày ‘2002-10-05’. (sử dụng QE)
- Sử dụng câu lệnh “Insert Into…Select” để lấy 1 bản ghi TOP từ “DatHang” và chèn vào bảng “XuLyDH” (sử dụng QE)
- Delete một bản ghi từ bảng XyLyDH thoả mãn điều kiện NgayXL là ‘2002-10-04’. (sử dụng QE)
- Sử dụng Union để hợp dữ liệu từ hai tập dữ liệu DatHang và XuLyDH thành một tập dữ liệu. (sử dụng QA)
- Áp dụng Constraints (sử dụng SSM hoặc QE)
- Áp dụng Primary Constraint cho các cột “Id” trong các bảng trên.
- Áp dụng Foreign Key Constraint cho bảng DatHang.
- Áp dụng Check Constraint để cột NgayXL có dữ liệu ngày trong khoảng ‘1970-01-01’ – ‘2050-01-01’ và thử chèn một bản ghi không hợp lệ với điều kiện trên để xem SQL có chạy không.
- Áp dụng Unique Constraint cho cột TenKH của bảng KhachHang
- Back up cơ sở dữ liệu và Restore tới một chỗ khác (có thể trên một server khác hoặc trên cùng một server nhưng với tên CSDL khác) (sử dụng SSM hoặc QE)
- Truncate và Drop bảng XuLyDH (sử dụng QE)
KO CO LOI GIA .
có gợi ý trong câu hỏi đó luôn bạn 😀
câu 5 giải như thế nào ạ
Em tham khảo đáp án này:
Câu 4:
SELECT *
INTO XuLyDH
FROM DatHang
WHERE NgayXL > ‘2002-10-05’;
Câu 5:
INSERT INTO XuLyDH
FROM TOP 1 * FROM DatHang
Câu 4 phải là SELECT chứ sao lại INSERT INTO được cậu
Theo bạn với câu hỏi số 4 thì phương án của bạn như thế nào? Bạn up lên cho mọi người tham khảo
câu 9 làm sao ạ
Liên quan đến tạo Primary Contrainsts, trước khi làm phần này bạn cần hiểu rõ thế nào gọi là Primary Key Contraints?
1. Ràng buộc PRIMARY KEY xác định duy nhất mỗi bản ghi trong bảng.
2. Các primary keys phải chứa các giá trị duy nhất và không chứa các giá trị NULL.
3. Một bảng chỉ có thể có MỘT khoá chính (primary key), và trong một bảng, khoá chính này có thể là một cột hoặc nhiều cột (fields)
Theo định nghĩa trên, bạn có thể sử dụng câu lệnh SQL để cập nhật cho các bảng ví dụ:
--Với bảng Khách Hàng khoá chính chỉ có 1 cột
ALTER TABLE KhachHang
ADD PRIMARY KEY (IdKhachHang);
--Với bảng Đặt Hàng khoá chính sẽ là 2 cột IDDatHang và IdKhachHang
ALTER TABLE Persons
ADD CONSTRAINT PK_DatHang PRIMARY KEY (IdDatHang, IdKhachHang);
cho e hỏi về việc truy vấn ạ! e muốn viết 1 câu truy vấn mà có thể xem hết tất cả các bảng của database ấy ạ
Em xem thêm bài này: https://timoday.edu.vn/sql-server-cau-lenh-sql-hien-thi-tat-ca-cac-bang/