Bài tập SQL quản lý đề tài có lời giải

Đây là mẫu 25 ví dụ về phần SQL Quản Lý Sinh Viên của môn Cơ Sở Dữ Liệu mà Tâm Gà đã vừa lên bài tập, vừa giải luôn cho các bạn. Phần còn lại, bạn xem giúp Tâm Gà, coi mình giải đúng chưa nhé. Nếu giải chưa đúng thì comment trong cái khung bên dưới, để mình coi sai chỗ nào, mình còn sửa cho các bạn khác theo dõi nữa. Nói chứ, môn học này khá hay, nhưng chua ghê nơi, setup code cho đã, nhấn nút Play nó không chạy, là xác định thi rớt môn này rồi đó. Xin chúc cho các bạn đừng bị xui quá, trong phần thi kết thúc môn Hệ Cơ Sở Dữ Liệu SQL này nhé.



25 Ví Dụ về Ôn Tập SQL Quản Lý Sinh Viên



Giờ thì xem sơ qua cái đề này nhé. Cho lược đồ CSDL quản lý điểm sinh viên, gồm các lược đồ quan hệ sau: SinhVien[MaSV, HoTen, Nu, NgaySinh, MaLop, HocBong, Tinh] Lop[MaLop, TenLop, MaKhoa] Khoa[MaKhoa, TenKhoa, SoCBGD] MonHoc[MaMH, TenMH, SoTiet] KetQua[MaSV, MaMH, DiemThi]

Ví dụ 1: Liệt kê danh sách các lớp của khoa, thông tin cần Malop, TenLop, MaKhoa

SELECT * FROM Lop

Ví dụ 2: Lập danh sách sinh viên gồm: MaSV, HoTen, HocBong

SELECT MaSV, Hoten, HocBong FROM SinhVien

Ví dụ 3: Lập danh sách sinh viên có học bổng. Danh sách cần MaSV, Nu, HocBong

SELECT MaSV, Nu, HocBong FROM SinhVien WHERE HocBong>0

Ví dụ 4: Lập danh sách sinh viên nữ. Danh sách cần các thuộc tính của quan hệ sinhvien

SELECT * FROM SinhVien WHERE Nu =Yes

Ví dụ 5: Lập danh sách sinh viên có họ 'Trần'

SELECT * FROM SinhVien WHERE HoTen Like ‘Trần *’

Ví dụ 6: Lập danh sách sinh viên nữ có học bổng

SELECT * FROM SinhVien WHERE Nu=Yes AND HocBong>0

Ví dụ 7: Lập danh sách sinh viên nữ hoặc danh sách sinh viên có học bổng

SELECT * FROM SinhVien WHERE Nu=Yes OR HocBong>0

Ví dụ 8: Lập danh sách sinh viên có năm sinh từ 1978 đến 1985. Danh sách cần các thuộc tính của quan hệ SinhVien

SELECT * FROM SinhVien WHERE YEAR[NgaySinh] BETWEEN 1978 AND 1985

Ví dụ 9: Liệt kê danh sách sinh viên được sắp xếp tăng dần theo MaSV

SELECT * FROM SinhVien ORDER BY MaSV

Ví dụ 10: Liệt kê danh sách sinh viên được sắp xếp giảm dần theo HocBong

SELECT * FROM SinhVien ORDER BY HocBong DESC

Ví du11: Lập danh sách sinh viên có điểm thi môn CSDL>=8

SELECT SinhVien.MaSV, HoTen, Nu, NgaySinh, DiemThi FROM SinhVien INNER JOIN KetQua ON SinhVien.MaSV = KetQua.MaSV WHERE MaMH = ‘CSDL’ AND DiemThi>=8

Ví du 12: Lập danh sách sinh viên có học bổng của khoa CNTT. Thông tin cần: MaSV, HoTen, HocBong,TenLop

SELECT MaSV, HoTen, HocBong, TenLop FROM Lop INNER JOIN SinhVien ON Lop.MaLop=SinhVien.MaLop WHERE HocBong>0 AND MaKhoa ='CNTT'

Ví du 13: Lập danh sách sinh viên có học bổng của khoa CNTT. Thông tin cần: MaSV, HoTen, HocBong,TenLop, TenKhoa

SELECT MaSV, HoTen, HocBong, TenLop,TenKhoa FROM [[Lop INNER JOIN SinhVien ON Lop.MaLop=SinhVien.MaLop] INNER JOIN Khoa ON Khoa.MaKhoa=Lop.MaKhoa] WHERE HocBong>0 AND Khoa.MaKhoa ='CNTT'

Ví dụ 14: Cho biết số sinh viên của mỗi lớp

SELECT Lop.MaLop, TenLop, Count[MaSV] as SLsinhvien FROM Lop INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop GROUP BY Lop.MaLop, TenLop

Ví dụ 15: Cho biết số lượng sinh viên của mỗi khoa.

SELECT Khoa.MaKhoa, TenKhoa, Count[MaSV] as SLsinhvien FROM [[Khoa INNER JOIN Lop ON Khoa.Makhoa = Lop.MaKhoa]INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop] GROUP BY Khoa.MaKhoa, TenKhoa

Ví dụ 16: Cho biết số lượng sinh viên nữ của mỗi khoa.

SELECT Khoa.MaKhoa, TenKhoa, Count[MaSV] as SLsinhvien FROM [[SinhVien INNER JOIN Lop ON Lop.MaLop = SinhVien.MaLop] INNER JOIN khoa ON KHOA.makhoa = SinhVien.makhoa] WHERE Nu=Yes GROUP BY Khoa.MaKhoa, TenKhoa

Ví dụ 17: Cho biết tổng tiền học bổng của mỗi lớp

SELECT Lop.MaLop, TenLop, Sum[HocBong] as TongHB FROM [Lop INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop] GROUP BY Lop.MaLop, TenLop

Ví dụ 18: Cho biết tổng số tiền học bổng của mỗi khoa

SELECT Khoa.MaKhoa, TenKhoa, Sum[HocBong] as TongHB FROM [[Khoa INNER JOIN Lop ON Khoa.Makhoa = Lop.MaKhoa]INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop] GROUP BY Khoa.MaKhoa, TenKhoa

Ví dụ 19: Lập danh sánh những khoa có nhiều hơn 100 sinh viên. Danh sách cần: MaKhoa, TenKhoa, Soluong

SELECT Khoa.MaKhoa, TenKhoa, Count[MaSV] as SLsinhvien FROM [[Khoa INNER JOIN Lop ON Khoa.Makhoa = Lop.MaKhoa]INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop] GROUP BY Khoa.MaKhoa, TenKhoa HAVING Count[MaSV] >100

Ví dụ 20: Lập danh sánh những khoa có nhiều hơn 50 sinh viên nữ. Danh sách cần: MaKhoa, TenKhoa, Soluong

SELECT Khoa.MaKhoa, TenKhoa, Count[MaSV] as SLsinhvien FROM [[Khoa INNER JOIN Lop ON Khoa.Makhoa = Lop.MaKhoa]INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop] WHERE Nu=Yes GROUP BY Khoa.MaKhoa, TenKhoa HAVING Count[MaSV]>=50

Ví dụ 21: Lập danh sách những khoa có tổng tiền học bổng >=1000000.

SELECT Khoa.MaKhoa, TenKhoa, Sum[HocBong] as TongHB FROM [[Khoa INNER JOIN Lop ON Khoa.Makhoa = Lop.MaKhoa]INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop] GROUP BY Khoa.MaKhoa, TenKhoa HAVING Sum[HocBong]>= 1000000

Ví dụ22: Lập danh sách sinh viên có học bổng cao nhất

SELECT SinhVien.* FROM SinhVien WHERE HocBong>= ALL[SELECT HocBong From Sinhvien]

Ví dụ 23: Lập danh sách sinh viên có điểm thi môn CSDL cao nhất

SELECT SinhVien.MaSV, HoTen, DiemThi FROM SinhVien INNER JOIN KetQua ON SinhVien.MaSV = KetQua.MaSV WHERE KetQua.MaMH= ‘CSDL’ AND DiemThi>= ALL[SELECT DiemThi FROM KetQua WHERE MaMH = ‘CSDL’]

Ví dụ 24: Lập danh sách những sinh viên không có điểm thi môn CSDL.

SELECT SinhVien.MaSV, HoTen, DiemThi,MaMH FROM SinhVien INNER JOIN KetQua ON SinhVien.MaSV = KetQua.MaSV WHERE SinhVien.MaSV NOT In [Select MaSV From KetQua Where MaMH='CSDL']

Ví dụ 25: Cho biết những khoa nào có nhiều sinh viên nhất

SELECT Khoa.MaKhoa, TenKhoa, Count[[MaSV]] AS SoLuongSV FROM [Khoa INNER JOIN Lop ON Khoa.MaKhoa = Lop.MaKhoa] INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop GROUP BY Khoa.MaKhoa, Khoa.TenKhoa HaVing Count[MaSV]>=All[Select Count[MaSV] From [[SinhVien Inner Join Lop On Lop.Malop=SinhVien.Malop]Inner Join Khoa On Khoa.MaKhoa = Lop.MaKhoa ]Group By Khoa.Makhoa] Bạn đang xem một trong các bài viết tại Chuyên Mục CoSoDuLieu. Và đây là địa chỉ link bài viết //www.c10mt.com/2012/12/25-vi-du-ve-on-tap-sql-quan-ly-sinh-vien.html . Tâm Gà xin cảm ơn bạn đã theo dõi bài viết này. Đừng quên nhấn LIKE Chia Sẻ để ủng hộ Tâm Gà nếu bài viết có ích !
Saturday, December 1, 2012

This repository has been archived by the owner. It is now read-only.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Page 2

This repository has been archived by the owner. It is now read-only.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

CREATE DATABASE ThucTap;

USE ThucTap;

CREATE TABLE TBLKhoa

[Makhoa char[10]primary key,

Tenkhoa char[30],

Dienthoai char[10]];

CREATE TABLE TBLGiangVien[

Magv int primary key,

Hotengv char[30],

Luong decimal[5,2],

Makhoa char[10] references TBLKhoa];

CREATE TABLE TBLSinhVien[

Masv int primary key,

Hotensv char[40],

Makhoa char[10]foreign key references TBLKhoa,

Namsinh int,

Quequan char[30]];

CREATE TABLE TBLDeTai[

Madt char[10]primary key,

Tendt char[30],

Kinhphi int,

Noithuctap char[30]];

CREATE TABLE TBLHuongDan[

Masv int primary key,

Madt char[10]foreign key references TBLDeTai,

Magv int foreign key references TBLGiangVien,

KetQua decimal[5,2]];

INSERT INTO TBLKhoa VALUES

['Geo','Dia ly va QLTN',3855413],

['Math','Toan',3855411],

['Bio','Cong nghe Sinh hoc',3855412];

INSERT INTO TBLGiangVien VALUES

[11,'Thanh Binh',700,'Geo'],    

[12,'Thu Huong',500,'Math'],

[13,'Chu Vinh',650,'Geo'],

[14,'Le Thi Ly',500,'Bio'],

[15,'Tran Son',900,'Math'];

INSERT INTO TBLSinhVien VALUES

[1,'Le Van Son','Bio',1990,'Nghe An'],

[2,'Nguyen Thi Mai','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'];

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' ];

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];

Video liên quan

Chủ Đề