1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập cơ sở dữ liệu

19 160 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 654,72 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cho biêt thơng tin về SBD, Ho, Tên, điểm của các thí sinh cĩ tổng điểm trong khoảng từ X đến Y tuỳ ý Select dsthisinh.* From dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd Wher

Trang 1

Bài tập Cơ sở dữ liệu 1

Bài tập Cơ sở dữ liệu

Cho cơ sở dữ liệu TUYENSINH.MDB, thực hiện các câu Select Query sau:

1 Liệt kê danh sách các thí sinh đăng ký dự thi

SELECT DSThiSinh.*

FROM DSThiSinh;

2 Liệt kê danh sách các ngành và điểm chuẩn

select tennganh,diemchuan

from nganh;

3 Liệt kê danh sách các thí sinh đăng ký dự thi cĩ tên bắt đầu bằng ký tự R hoặc K

select dsthisinh.*

from dsthisinh

where left(ten,1) in ("R","K");

4 Liệt kê danh sách các thí sinh đăng ký dự thi cĩ họ lĩt là Phan và tên Hoa, Dung hoặc

Nga

select dsthisinh.*

from dsthisinh

where (left(holot,4) = "phan") and (ten in ("hoa","dung","nga"));

5 Liệt kê danh sách các thí sinh đăng ký dự thi thoả các yêu cầu sau:

 họ lĩt là Phan

 tên Hoa, Dung hoặc Nga

 mã tỉnh là 2

select dsthisinh.*

from dsthisinh

where (left(holot,4)="phan")and(ten in ("hoa","dung","nga"))and(matinh=2);

6 Liệt kê danh sách các thí sinh đăng ký dự thi thoả các yêu cầu sau:

 Phái nữ

 Nguyện vọng 1 là ngành cĩ mã 410

 Sắp xếp theo tên

select dsthisinh.*

from dsthisinh

where (phainam=false)and(nganh="410")

Trang 2

Bài tập Cơ sở dữ liệu 2

order by ten;

7 Liệt kê danh sách các thí sinh cĩ điểm thi mơn tốn từ 7 đến 9

select dsthisinh.*

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where toan between 7 and 9;

8 Liệt kê danh sách các thí sinh cĩ điểm thi mơn tốn từ 7 đến 9 và được thưởng 2

select dsthisinh.*

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where (toan between 7 and 9)and (thuong=2);

9 Cho biêt thơng tin về SBD, Ho, Tên, điểm của các thí sinh cĩ tổng điểm trong khoảng từ

X đến Y (tuỳ ý )

Select dsthisinh.*

From dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

Where (toan+ly+hoa+thuong) between X and Y;

10 Liệt kê danh sách các thí sinh cĩ điểm tổng cộng >= 25 theo thứ tự điểm tổng cộng giảm

dần

select dsthisinh.*

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where (toan+ly+hoa)>=25

order by (toan+ly+hoa) desc;

11 Liệt kê danh sách các thí sinh nữ thi vào ngành cĩ mã số “410” hoặc”405” và cĩ điểm

tổng cộng >=25

select dsthisinh.*

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where (phainam=false) and (nganh in ("410","405")) and ((toan+ly+hoa)>=25);

12 Cho biết điểm thi nhỏ nhất khác 0 của từng mơn Tốn, Lí, Hố

select min(a) as minT,min(b) as minL,min(c) as minH

from (select iif(toan=0,11,toan) as a,iif(ly=0,11,ly) as b,iif(hoa=0,11,hoa) as c

from ketqua);

13 Cho biết SBD, HoLot, Ten của những thí sinh nào cĩ ít nhất một mơn thi bị điểm 0

select dsthisinh.sbd,holot,ten

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where (toan*ly*hoa)<>0;

14 Cho biết SBD, HoLot, Ten của những thí sinh nào cĩ ba mơn thi đều bị điểm 0

Trang 3

Bài tập Cơ sở dữ liệu 3

select dsthisinh.sbd,holot,ten

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where (toan=0)and(ly=0)and(hoa=0);

15 Cho biết SBD, HoLot, Ten của những thí sinh nào chỉ cĩ đúng một mơn thi bị điểm 0

select dsthisinh.sbd,holot,ten

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where

((toan=0)and(ly<>0)and(hoa<>0))or((toan<>0)and(ly=0)and(hoa<>0))or((toan<>0)and (ly<>0)and(hoa=0));

16 Cho biết điểm trung bình từng mơn Tốn, Lí, Hố của tất cả các thí sinh khơng bị điểm 0

cả 3 mơn

select dsthisinh.*,(toan+ly+hoa)/3 as diemtb

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where toan*ly*hoa<>0;

17 Đếm số thí sinh (Nam/Nữ) đăng kí dự thi

select count(a) as sonam,count(b) as sonu

from (select iif(phainam=true,1,null)as a,iif(phainam=false,1,null) as b

from dsthisinh);

18 Đếm số thí sinh (Nam/Nữ ) đăng ký dự thi theo từng tỉnh thành

select tennganh,count(a) as sonam,count(b) as sonu

from (select iif(phainam=true,1,null)as a,iif(phainam=false,1,null) as b,tennganh

from dsthisinh inner join nganh on dsthisinh.nganh=nganh.manganh) group by tennganh;

19 Đếm số thí sinh (Nam/Nữ ) đăng ký dự thi theo từng tỉnh thành và theo từng mã ngành

đăng kí nguyện vọng 1

select nganh,tennganh,count(a) as sonam,count(b) as sonu

from (select iif(phainam=true,1,null)as a,iif(phainam=false,1,null) as

b,tennganh,dsthisinh.nganh

from dsthisinh inner join nganh on dsthisinh.nganh=nganh.manganh)

group by nganh,tennganh;

20 Liệt kê danh sách các Tỉnh cĩ thí sinh đăng ký dự thi

select tentinh

from tinhthanh

where matinh in (select matinh

Trang 4

Bài tập Cơ sở dữ liệu 4

from dsthisinh);

21 Liệt kê danh sách các Tỉnh khơng cĩ thí sinh đăng ký dự thi

select tentinh

from tinhthanh

where matinh not in (select matinh

from dsthisinh);

22 Cho biết ngành cĩ điểm chuẩn cao nhất

select tennganh

from nganh

where diemchuan in (select max(diemchuan) as maxdiemchuan

from nganh);

23

24 Cho biết số báo danh họ tên các thí sinh cĩ điểm thi mơn Tốn cao nhất

select dsthisinh.sbd,holot,ten,toan

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where toan in (select max(toan) as maxtoan

from ketqua);

25 Cho biết họ tên của thí sinh nhỏ tuổi nhất

select holot,ten,ngaysinh

from dsthisinh

where ngaysinh in (select max(ngaysinh) as a

from dsthisinh);

26 Cho biết họ tên và điểm các mơn của thí sinh cĩ tổng điểm cao nhất

select holot,ten,toan,ly,hoa

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where (toan+ly+hoa) in (select max(toan+ly+hoa) as maxtongdiem

from ketqua);

27 Cho biết thơng tin về SBD, Họ tên, điểm thi của các thí sinh trúng tuyển nguyện vọng 1

select dsthisinh.sbd,holot,ten,toan,ly,hoa

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan;

28 Cho biết bao nhiêu thí sinh đậu nguyện vọng 1

select count(dsthisinh.sbd) as sothisinh

Trang 5

Bài tập Cơ sở dữ liệu 5

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan;

29 Cho biết tổng thí sinh trúng tuyển nguyện vọng 1 của từng ngành

select nganh.manganh,tennganh,count(dsthisinh.sbd) as sothisinh

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan

group by manganh,tennganh;

30 Liệt kê danh sách các Tỉnh cĩ thí sinh trúng tuyển nguyện vọng 1

select tentinh

from tinhthanh

where matinh in (select matinh

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan);

31 Liệt kê danh sách các Tỉnh cĩ thí sinh đậu nguyện vọng 1 vào nghành 401

select tentinh

from tinhthanh

where matinh in (select matinh

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on nganh.manganh=dsthisinh.nganh

where ((toan+ly+hoa+thuong)>=diemchuan)and (nganh = "401"));

32 Cho biết thơng tin của các thí sinh trúng tuyển nguyện vọng 1 vào nghành N( với N là

tham số do người sử dụng nhập vào)

select tentinh

from tinhthanh

where matinh in (select matinh

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on nganh.manganh=dsthisinh.nganh

where ((toan+ly+hoa+thuong)>=diemchuan)and (nganh = "N"));

33 Đếm số thí sinh trúng tuyển nguyện vọng 1 theo từng ngành và của từng tỉnh

select tentinh,tennganh,count(dsthisinh.sbd) as sothisinh

Trang 6

Bài tập Cơ sở dữ liệu 6

from tinhthanh inner join (nganh inner join (dsthisinh inner join ketqua on

dsthisinh.sbd=ketqua.sbd) on nganh.manganh=dsthisinh.nganh) on

dsthisinh.matinh=tinhthanh.matinh

where (toan+ly+hoa+thuong)>=diemchuan

group by tentinh,tennganh;

34 Liệt kê sbd, hoten, diem tong cong, diem chuan và kết quả đậu/ rớt của các thí sinh đăng

ký nguyện vọng 1 vào nghành Kế Tốn – Kiểm Tốn

select dsthisinh.sbd,holot,ten,(toan+ly+hoa+thuong) as

tongdiem,diemchuan,iif((toan+ly+hoa+thuong)>=diemchuan,"dau","rot") as ketqua

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh

where tennganh="KẾ TỐN-KIỂM TỐN";

35 Cho biết tổng số thí sinh đậu nguyện vọng 1 của những ngành cĩ tổng số thí sinh đậu

vượt chỉ tiêu

select sum(sothisinh) as sots

from (select tennganh,chitieu,count(dsthisinh.sbd) as sothisinh

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan

group by tennganh,chitieu)

where sothisinh>chitieu;

36 Đếm số thí sinh khơng trúng tuyển nguyện vọng 1 nhưng được trúng tuyển nguyện vọng

2, biết rằng điểm trúng tuyển nguyện vọng 2 cao hơn điểm trúng tuyển nguyện vọng 1 là 2 điểm

select count(dsthisinh.sbd) as sothisinh

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh2

where ((toan+ly+hoa+thuong)>=diemchuan+2)and(dsthisinh.sbd not in (select

dsthisinh.sbd

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan));

Trang 7

Bài tập Cơ sở dữ liệu 7

37 Đếm số thí sinh khơng trúng tuyển nguyện vọng 1 nhưng được trúng tuyển nguyện vọng

2 theo từng mã ngành, biết rằng điểm trúng tuyển nguyện vọng 2 cao hơn điểm trúng tuyển nguyện vọng 1 là 2 điểm

select tennganh,count(dsthisinh.sbd) as sothisinh

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh2

where ((toan+ly+hoa+thuong)>=diemchuan+2)and(dsthisinh.sbd not in (select

dsthisinh.sbd

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan))

group by tennganh;

38 Đếm số thí sinh khơng trúng tuyển nguyện vọng 1 nhưng được trúng tuyển nguyện vọng

2 theo từng mã ngành và theo từng tỉnh thành, biết rằng điểm trúng tuyển nguyện vọng 2 cao hơn điểm trúng tuyển nguyện vọng 1 là 2 điểm

select tentinh,tennganh,count(dsthisinh.sbd) as sothisinh

from tinhthanh inner join (nganh inner join (dsthisinh inner join ketqua on

dsthisinh.sbd=ketqua.sbd) on nganh.manganh=dsthisinh.nganh2) on

tinhthanh.matinh=dsthisinh.matinh

where ((toan+ly+hoa+thuong)>=diemchuan+2)and(dsthisinh.sbd not in (select

dsthisinh.sbd

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan))

group by tentinh,tennganh;

39 Đếm số thí sinh khơng trúng tuyển nguyện vọng 1 và nguyện vọng 2

select count(dsthisinh.sbd) as sotskhongdau

from dsthisinh

where dsthisinh.sbd not in (select dsthisinh.sbd

from tinhthanh inner join (nganh inner join (dsthisinh inner join ketqua on

dsthisinh.sbd=ketqua.sbd) on nganh.manganh=dsthisinh.nganh2) on

tinhthanh.matinh=dsthisinh.matinh

where ((toan+ly+hoa+thuong)>=diemchuan+2)and(dsthisinh.sbd not in (select

dsthisinh.sbd

Trang 8

Bài tập Cơ sở dữ liệu 8

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan)))and(dsthisinh.sbd not in (select dsthisinh.sbd from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on

nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan));

40 Đếm số thí sinh khơng trúng tuyển nguyện vọng 1 và nguyện vọng 2 theo từng tỉnh

thành

select tentinh,tennganh,count(dsthisinh.sbd) as sotskhongdau

from tinhthanh inner join (dsthisinh inner join nganh on dsthisinh.nganh=nganh.manganh)

on tinhthanh.matinh=dsthisinh.matinh

where dsthisinh.sbd not in (select dsthisinh.sbd

from tinhthanh inner join (nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on nganh.manganh=dsthisinh.nganh2) on tinhthanh.matinh=dsthisinh.matinh

where ((toan+ly+hoa+thuong)>=diemchuan+2)and(dsthisinh.sbd not in (select dsthisinh.sbd

from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan)))and(dsthisinh.sbd not in (select dsthisinh.sbd from nganh inner join (dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd) on nganh.manganh=dsthisinh.nganh

where (toan+ly+hoa+thuong)>=diemchuan))

group by tentinh,tennganh;

41 Cho biết thủ khoa của từng tỉnh

42 Cho biết thủ khoa của từng ngành

NGÂN HÀNG CÁC CÂU SQL

1 Tìm tất cả các TS nam cĩ họ là Phan, tên là Trung, sinh vào ngày 23/5 ( theo mẫu )

select sbd,holot,ten

from dsthisinh

where(phainam=true)and(left(holot,4)="phan")and(ten="trung")and(day(ngaysinh)=23)an

d (month(ngaysinh)=5);

Trang 9

Bài tập Cơ sở dữ liệu 9

2 Tìm MaNganh và TenNganh của những ngành cĩ chỉ tiêu cao nhất

select manganh,tennganh,chitieu

from nganh

where chitieu in (select max(chitieu) as maxchitieu

from nganh);

3 Tìm MaNganh và TenNganh của những ngành cĩ điểm chuẩn cao nhất

select manganh,tennganh,diemchuan

from nganh

where diemchuan in (select max(diemchuan) as maxdiemchuan

from nganh);

4 Tìm tất cả các TS nữ thi vào ngành 410, cĩ tên bắt đầu là chữ A

select dsthisinh.*

from dsthisinh

where (phainam=false)and(nganh="410")and(left(ten,1)="a");

5 Tìm tất cả các TS thi vào ngành 410 hoặc ngành 408, cĩ tổng điểm ba mơn thi trong khoảng

từ 25 đến 29 điểm

select dsthisinh.*

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where (nganh in ("410","408"))and((toan+ly+hoa) between 25 and 29);

6 Tìm tất cả các TS nữ, họ Nguyễn, tên là Minh hoặc Nga, sinh năm 1983

select dsthisinh.*

from dsthisinh

where (phainam=false)and(left(holot,6)="nguyen")and(ten in

("minh","nga"))and(year(ngaysinh)=1983);

7 Tìm tất cả các TS thi vào ngành 410, cĩ điểm tổng cộng ba mơn thi  27

select dsthisinh.*

from dsthisinh inner join ketqua on dsthisinh.sbd=ketqua.sbd

where (nganh="410")and((toan+ly+hoa)>=27);

8 Cho biết ngành nào cĩ số TS đăng ký dự thi đơng

select top 1 tennganh,count(dsthisinh.sbd) as sothisinh

from dsthisinh inner join nganh on dsthisinh.nganh=nganh.manganh

group by tennganh

order by count(dsthisinh.sbd) desc;

9 Cho biết tỉnh thành nào cĩ TS thi vào ngành 410

Trang 10

Bài tập Cơ sở dữ liệu 10

select tentinh

from tinhthanh

where matinh in (select matinh

from dsthisinh

where nganh="410");

10 Cho biết tỉnh thành nào cĩ TS đăng ký dự thi

select tentinh

from tinhthanh

where matinh in (select matinh

from dsthisinh)

11 Cho biết tỉnh thành nào khơng cĩ TS đăng ký dự thi

select tentinh

from tinhthanh

where matinh not in (select matinh

from dsthisinh)

12 Cho biết tỉnh thành nào cĩ nhiều TS đăng ký dự thi nhất, ngoại trừ TpHCM

select top 1 tentinh,count(sbd) as sothisinh

from dsthisinh inner join tinhthanh on dsthisinh.matinh=tinhthanh.matinh

where dsthisinh.matinh <> 2

group by tentinh

order by count(sbd) desc;

13 Cho biết tỉnh thành nào cĩ nhiều TS thi vào ngành 410 nhất, ngoại trừ TpHCM

select top 1 tentinh,count(sbd) as sothisinh

from dsthisinh inner join tinhthanh on dsthisinh.matinh=tinhthanh.matinh

where (dsthisinh.matinh <> 2)and(nganh="410")

group by tentinh

order by count(sbd) desc;

14 Cĩ bao nhiêu TS khơng thuộc đối tượng ưu tiên ?

select ((count(sbd))-(count(doituong))) as khonguutien

from dsthisinh;

15 Cĩ bao nhiêu TS khơng đăng ký nguyện vọng 2 ?

select ((count(sbd))-(count(nganh2))) as khongnganh2

from dsthisinh;

16 Cĩ bao nhiêu TS ở TpHCM khơng đăng ký nguyện vọng 2 vào 410

Ngày đăng: 07/11/2017, 10:49

TỪ KHÓA LIÊN QUAN

w