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é .

bài tập truy vấn SQL có lời giải hay

Mục Lục

  1. Tổng hợp 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 thi 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 tài 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 !

Source: https://evbn.org
Category: Bài Tập