Tổng hợp 10 bài tập truy vấn SQL có lời giải hay cho Học sinh – Sinh viên

Bạn đang muốn tìm các tập truy vấn SQL có lời giải để tham khảo và học tập dựa vào đó để lấy thêm cách giải bài tập SQL khác ? Hôm nay daydore.com xin tổng hợp các bài tập SQL có lời giải để chúng ta tham khảo nhé .

bai tap sql co loi giai - Tổng hợp 10 bài tập truy vấn SQL có lời giải hay cho Học sinh - Sinh viên
bài tập truy vấn SQL có lời giải hay

Tổng hợp bài tập truy vấn SQL có lời giải hay :

Câu hỏi 1 : Để quản lý Thực tập nghề nghiệp của sinh viên, người ta xây dựng một cơ sở dữ liệu có tên là ThucTap gồm các sơ đồ quan hệ sau:

Khoa(makhoa char(10), tenkhoa char(30), dienthoai char(10))
GiangVien(magv int, hotengv char(30), luong decimal(5,2), makhoa char(10))
SinhVien(masv int, hotensv char(30), makhoa char(10), namsinh int, quequan char(30))
DeTai(madt char(10), tendt char(30), kinhphi int, NoiThucTap char(30))
HuongDan(masv int, madt char(10), magv int, ketqua decimal(5,2))

Đáp án :

Các lệnh SQL tạo bảng 

Đầu tiên bạn cần thực hiện lệnh tạo Data Base trước như sau :

CREATE DATABASE ThucTap;
USE ThucTap;
Tạo bảng Khoa :

CREATE
TABLE TBLKhoa
(Makhoa char(10)primary key,
Tenkhoachar(30),
Dienthoaichar(10));
Tạo bảng Giảng Viên :
CREATE TABLE TBLGiangVien(
Magv int primary key,
Hotengv char(30),
Luong decimal(5,2),
Makhoa char(10) references TBLKhoa);
Tạo bảng Sinh Viên :
CREATE TABLE TBLSinhVien(
Masv int primary key,
Hotensv char(40),
Makhoa char(10)foreign key references TBLKhoa,
Namsinh int,
Quequan char(30));
Tạo bảng Đề Tài :
CREATE TABLE TBLDeTai(
Madt char(10)primary key,
Tendt char(30),
Kinhphi int,
Noithuctap char(30));
Tạo bảng Hướng Dẫn :
CREATE TABLE TBLHuongDan(
Masv int primary key,
Madt char(10)foreign key references TBLDeTai,
Magv int foreign key references TBLGiangVien,
KetQua decimal(5,2));
Nhập dữ liệu cho từng bảng  :
Thêm dữ liệu vào bảng Khoa :
INSERT INTO TBLKhoa VALUES
(‘Geo’,‘Dia ly va QLTN’,3855413),
(‘Math’,‘Toan’,3855411),
(‘Bio’,‘Cong nghe Sinh hoc’,3855412);
Thêm dữ liệu vào bảng Giảng Viên :
INSERT INTO TBLGiangVien VALUES
(11,‘Thanh Xuan’,700,‘Geo’),
(12,‘Thu Minh’,500,‘Math’),
(13,‘Chu Tuan’,650,‘Geo’),
(14,‘Le Thi Lan’,500,‘Bio’),
(15,‘Tran Xoay’,900,‘Math’);
Thêm dữ liệu vào bảng SInh Viên :
INSERT INTO TBLSinhVien VALUES
(1,‘Le Van Sao’,‘Bio’,1990,‘Nghe An’),
(2,‘Nguyen Thi My’,‘Geo’,1990,‘Thanh Hoa’),
(3,‘Bui Xuan Duc’,‘Math’,1992,‘Ha Noi’),
(4,‘Nguyen Van Tung’,‘Bio’,null,‘Ha Tinh’),
(5,‘Le Khanh Linh’,‘Bio’,1989,‘Ha Nam’),
(6,‘Tran Khac Trong’,‘Geo’,1991,‘Thanh Hoa’),
(7,‘Le Thi Van’,‘Math’,null,‘null’),
(8,‘Hoang Van Duc’,‘Bio’,1992,‘Nghe An’);
Thêm dữ liệu vào bảng Đề Tài :
INSERT INTO TBLDeTai VALUES
(‘Dt01’,‘GIS’,100,‘Nghe An’),
(‘Dt02’,‘ARC GIS’,500,‘Nam Dinh’),
(‘Dt03’,‘Spatial DB’,100, ‘Ha Tinh’),
(‘Dt04’,‘MAP’,300,‘Quang Binh’ );
Thêm dữ liệu vào bảng Hướng Dẫn  :
INSERT INTO TBLHuongDan VALUES
(1,‘Dt01’,13,8),
(2,‘Dt03’,14,0),
(3,‘Dt03’,12,10),
(5,‘Dt04’,14,7),
(6,‘Dt01’,13,Null),
(7,‘Dt04’,11,10),
(8,‘Dt03’,15,6);
Câu hỏi 2 : Cũng cùng nội dung câu hỏi trên bạn hãy đưa ra thông tin gồm mã số, họ tên và tên khoa của tất cả các giảng viên .
Đáp án  :
SELECT GV.Magv, GV.Hotengv, K.Tenkhoa
FROM TBLGiangVien GV join TBLKhoa K
ON GV.Makhoa = K.Makhoa
Câu hỏi 3 : Sử dụng lệnh xuất ra mã số, họ tên, tên khoa của các giảng viên hướng dẫn từ 3 sinh viên trở lên.
Đáp án : 
SELECT GV.Magv,GV.Hotengv,K.Tenkhoa
FROM TBLGiangVien GV JOIN TBLKhoa K
ON GV.Makhoa = K.Makhoa
WHERE GV.Magv IN (
SELECT HD.Magv
FROM TBLHuongDan HD
GROUP BY HD.Magv
HAVING COUNT(HD.Magv)>3)
Câu hỏi 4 : Sử dụng lệnh SQL để xuất ra thông tin về những sinh viên chưa có điểm thực tập .
Đáp án  :
SELECT *
FROM TBLSinhVien SV JOIN TBLHuongDan HD
ON HD.Masv = SV.Masv
WHERE HD.KetQua is Null
Câu hỏi 5 : Thực hiện lệnh SQL xuất ra số điện thoại của khoa mà sinh viên có tên ‘Le van son’ đang theo học .
Đáp án :
SELECT k.Dienthoai
FROM TBLKhoa K join TBLSinhVien SV
ON K.Makhoa = SV.Makhoa
WHERE SV.Hotensv = ‘Le Van Son’
Câu hỏi 6 : Sử dụng lệnh truy vấn SQL lấy ra mã số và tên các đề tài có nhiều hơn 2 sinh viên tham gia thực tập .
Đáp án  :
SELECT DT.Madt,DT.Tendt
FROM TBLDeTai DT
WHERE DT.Madt in (
SELECT HD.Madt
FROM TBLHuongDan HD
GROUP BY HD.Madt
HAVING COUNT(HD.Madt) > 2)
Câu hỏi 7 : Sử dụng câu lệnh truy vấn SQL lấy ra mã số, tên đề tài của đề tài có kinh phí cao nhất .
Đáp án : 
SELECT DT.Madt,DT.Tendt
FROMTBLDeTaiDT
WHERE DT.Kinhphi = (
SELECT MAX(DT.Kinhphi)
FROM TBLDeTai DT)
Câu hỏi 8 : Sử dụng câu lệnh SQL xuất ra Tên khoa, Số lượng sinh viên của mỗi khoa .
Đáp án :
SELECT K.Tenkhoa, COUNT(SV.Masv) AS Số_SV
FROM TBLSinhVien SV JOIN TBLKhoa K
ON SV.Makhoa = K.Makhoa
GROUP BY K.Tenkhoa
Câu hỏi 9 : Sử dụng truy vấn SQL xuất ra mã số, họ tên và điểm của các sinh viên khoa ‘DIALY và QLTN’ .
Đáp án : 
SELECT SV.Masv,SV.Hotensv,HD.KetQua
FROM TBLSinhVien SV JOIN TBLHuongDan HD
ON SV.Masv = HD.Masv
JOIN TBLKhoa K
ON K.Makhoa = SV.Makhoa
WHERE K.Tenkhoa = ‘Dia ly va QLTN’
Câu hỏi 10 : Sử dụng câu lệnh SQL xuất ra danh sách gồm Mã số, Họ tên và Tuổi của các sinh viên khoa ‘TOAN’ .
Đáp án  :
SELECT SV.Masv, SV.Hotensv
FROM TBLSinhVien SV JOIN TBLKhoa K
ON SV.Makhoa = K.Makhoa
WHERE K.Tenkhoa=‘TOAN’
Kết luận : Đây là tổng hợp 10 câu lệnh SQL được sử dụng phổ biến hiện nay và chúng ta có thể dựa vào đây có thể biến thể nâng cao hơn đối với các bài tập truy xuất phức tạp hơn . Nếu có vấn đề gì xin hãy Comment ở dưới đấy Ad hỗ trợ nhé . Chúc các bạn thành công !

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

6 Replies to “Tổng hợp 10 bài tập truy vấn SQL có lời giải hay cho Học sinh – Sinh viên

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *