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 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 !