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é .
Mục Lục
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
,
Tenkhoa
char
(30),
Dienthoai
char
(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
FROM
TBLDeTaiDT
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 !