1. Trang chủ
  2. » Luận Văn - Báo Cáo

Môn học cơ sở dữ liệu báo cáo bài thực hành 6

16 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Môn Học Cơ Sở Dữ Liệu Báo Cáo Bài Thực Hành 6
Tác giả Nguyễn Nhật Nguyễn
Người hướng dẫn GVHD: Trần Vĩnh Khiêm
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Cơ Sở Dữ Liệu
Thể loại Báo cáo
Năm xuất bản 2024
Thành phố Hồ Chí Minh
Định dạng
Số trang 16
Dung lượng 1,51 MB

Nội dung

IT004— CƠ SỞ DỮ LIỆU NỘIDUNG BÀI LÀM Đảng 1 Chương trình câu 2.1 --BAI2.1 CREATE TRIGGER trg_NGAYPHATHANH ON PHATHANH AFTER INSERT ,UPDATE AS BEGIN DECLARE @NGAYPH SMALLDATETIME DECL

Trang 1

DAI HOC QUOC GIA THANH PHO HO CHI MINH TRUONG DAI HOC CONG NGHE THONG TIN KHOA HE THONG THONG TIN

ZZ

MÔN HỌC CƠ SỞ DỮ LIỆU BÁO CÁO BÀI THỰC HÀNH 6

GVHD: Trần Vĩnh Khiêm Nhóm thực hiện: Nguyễn Nhật Nguyễn — 23521047

Trang 2

IT004 - CƠ SO DU LIEU

Uf Tp Hồ Chí Minh, 12/2024 I0

Trang 3

IT004 - CƠ SO DU LIEU

NHẬN XÉT CUA GIÁO VIÊN HƯỚNG DẪN

, gdp tháng năm 2024

Người nhận xét (Ký tên và ghi rõ họ tên)

3|Page

Trang 4

IT004— CƠ SỞ DỮ LIỆU

MỤC LỤC

Trang 5

IT004— CƠ SỞ DỮ LIỆU

NỘIDUNG BÀI LÀM

Đảng 1 Chương trình câu 2.1

BAI2.1

CREATE TRIGGER trg_NGAYPHATHANH ON PHATHANH

AFTER INSERT ,UPDATE

AS

BEGIN

DECLARE @NGAYPH SMALLDATETIME DECLARE @MAPH CHAR(5) DECLARE @MASACH CHAR(5) DECLARE @NGSINH SMALLDATETIME SELECT @NGAYPH=NGAYPH FROM inserted SELECT @MAPH=MAPH FROM inserted SELECT @MASACH=MASACH FROM inserted SELECT @NGSINH=NGSINH FROM TACGIA WHERE MATG IN (SELECT MATG FROM TACGIA_SACH WHERE MASACH=@MASACH)

IF (@NGSINH>=@NGAYPH ) BEGIN

PRINT 'NGAYPH PHAI LON HON NGSINH' ROLLBACK TRAN

END

Đảng 2 Chương trình câu 2.2

CREATE TRIGGER trg_THELOAISACH ON PHATHANH

AFTER INSERT, UPDATE

AS

BEGIN

DECLARE @MASACH CHAR(5) DECLARE @NHAXB VARCHAR(20) SELECT @MASACH=MASACH FROM inserted SELECT @NHAXB=NHAXUATBAN FROM inserted JOIN SACH S ON S.MASACH=@MASACH WHERE S.THEL0AI='Giáo khoa'

IF (@NHAXB!='Gido duc') BEGIN

PRINT 'GIAOKHOA PHAI LA GIAQDUC' ROLLBACK TRAN

END END

Đảng 3 Chương trình câu 3

CAU 3.1

SELECT TG.MATG,HOTEN, SODT FROM TACGIA TG

JOIN TACGIA_SACH TGS ON TGS.MATG=TG.MATG

JOIN SACH S ON S.MASACH=TGS MASACH

JOIN PHATHANH PT ON PT.MASACH=TGS MASACH

WHERE $.THELOAI='Van hoc'

AND PT.NHAXUATBAN='Tre'

Đảng 4 Chương trình câu 3.2

CAU 3.2

SELECT DISTTNCT TOP 1 NHAXUATBAN, C0UNT (distinct S.THELOAI) AS SL FROM

5|Page

Trang 6

IT004— CƠ SỞ DỮ LIỆU

PHATHANH PT

JOIN SACH S ON S.MASACH=PT.MASACH

GROUP BY NHAXUATBAN

ORDER BY SL DESC

Bang 5 Chương trình câu 3.3

CAU 3.3

SELECT TOP 1 TG.MATG,HOTEN,SUM(SOLUONG) AS SL FROM TACGIA TG

JOIN TACGIA_SACH TGS ON TGS.MATG=TG.MATG

JOIN PHATHANH PT ON PT.MASACH=TGS MASACH

GROUP BY TG.MATG,HOTEN

ORDER BY SL DESC

DE 2

Đảng 6 Chương trình câu 2.1

2.1

ALTER TABLE XE ADD

CONSTRAINT CK_XXX CHECK ( NAMSX>=2006 )

ALTER TABLE XE DROP constraint CK_Xe

ALTER TABLE XE ADD

CONSTRAINT CK_Xe CHECK (loaiXe ='Toyota' AND NamSxX>=2006)

Đảng 7 Chương trình câu 2.2

2.2

DROP TRIGGER trg_22

CREATE TRIGGER trg_22 ON PHANCONG

FOR INSERT, UPDATE

AS

BEGIN

DECLARE @MANV CHAR(5) DECLARE @MAXE CHAR(5) SELECT @MANV=MANV FROM inserted SELECT @MAXE=MAXE FROM inserted IF( @MANV IN (SELECT MANV FROM NHANVIEN WHERE MAPHONG IN (SELECT MAPHONG FROM PHONGBAN WHERE TENPHONG='Ngoai thanh')) AND @MAXE IN (SELECT

MAXE FROM XE WHERE LOAIXE<>'Toyota' ))

BEGIN PRINT 'NGOAI THANH PHAI DI TOYOTA' ROLLBACK TRAN

END

Bang 8 Churong trinh câu 3

3.2

SELECT NV.MANV,HOTEN, COUNT(DISTINCT X.LOAIXE ) FROM NHANVIEN NV

JOIN PHANCONG PC ON PC.MANV=NV.MANV

JOIN XE X ON X.MAXE=PC.MAXE

JOIN PHONGBAN PB ON PB.TRUONGPHONG=NV MANV

WHERE PB TRUONGPHONG=NV MANV

GROUP BY NV.MANV,HOTEN

HAVING COUNT(DISTINCT X.LOAIXE )=(SELECT COUNT(DISTINCT LOAIXE) FROM XE)

Đảng 9 Chương trình câu 3.2

3.2

SELECT NV.MANV,HOTEN, COUNT(DISTINCT X.LOAIXE ) FROM NHANVIEN NV

JOIN PHANCONG PC ON PC.MANV=NV.MANV

JOIN XE X ON X.MAXE=PC.MAXE

JOIN PHONGBAN PB ON PB.TRUONGPHONG=NV.MANV

Trang 7

IT004— CƠ SỞ DỮ LIỆU

WHERE PB TRUONGPHONG=NV MANV

GROUP BY NV.MANV,HOTEN

HAVING COUNT(DISTINCT X.LOAIXE )=(SELECT COUNT(DISTINCT LOAIXE) FROM XE)

Đảng 10 Chương trình câu 3.3

3.3

SELECT NV1.MAPHONG,NV1.MANV, HOTEN FROM NHANVIEN NV1

WHERE NV1.MANV IN(

SELECT TOP 1 WITH TIES NV2.MANV FROM NHANVIEN NV2

JOIN PHANCONG PC ON PC.MANV=NV2.MANV

JOIN XE ON XE.MAXE=PC MAXE

WHERE XE.LOAIXE='Toyota' AND NV2.MAPHONG=NV1.MAPHONG

GROUP BY NV2.MANV

ORDER BY COUNT(XE.LOAIXE) ASC)

DE 3

Đảng 11 Chương trình câu 2.1

2,1

ALTER TABLE PHIEUTHUE ADD

CONSTRAINT CK_TG CHECK (DATEDIFF (DAY, NgayThue, NgayTra) <= 10)

Bang 12 Chuong trinh cdu 2.2

2.2

CREATE TRIGGER trg_CheckSoSachThue

ON CHITIET_PT

AFTER INSERT, DELETE, UPDATE

AS

BEGIN

Kié@ tra ràng buộc

TF EXTSTS (

SELECT 1 FROM PHIEUTHUE PT WHERE PT.SoSachThue != ( SELECT COUNT(*) FROM CHITIET_PT CT WHERE CT.MaPT = PT.MaPT

) )

BEGIN

N@B& khéng th@a man rang buéc, rollback va bao LôT ROLLBACK TRANSACTION;

RAISERROR ('SdEsach thué không khớp giữa PHTIEUTHUE và CHTITTET_PT.',

16, 1);

END

END;

Đảng 13 Chương trình câu 3.1

3.1

SELECT DISTINCT DG.MADG,HOTEN FROM DOCGIA DG

JOIN PHIEUTHUE PT ON PT.MADG=DG.MADG

JOIN CHITIET_PT CT ON CT.MAPT=PT MAPT

JOIN SACH ON SACH.MASACH=CT MASACH

WHERE SACH.THELOAT='Tin hoc' AND YEAR(PT.NGAYTHUE )=2007

Đảng 14 Chương trình câu 3.2

3.2

SELECT TOP 1 WITH TIES DG.MADG,HOTEN FROM DOCGIA DG

JOIN PHIEUTHUE PT ON PT.MADG=DG.MADG

7|Page

Trang 8

IT004— CƠ SỞ DỮ LIỆU

JOIN CHITIET_PT CT ON CT.MAPT=PT MAPT

JOIN SACH ON SACH.MASACH=CT MASACH

GROUP BY DG.MADG, HOTEN

ORDER BY C0UNT(THEL0AT) DESC

Đảng 15 Chương trình câu 3.3

3.3

SELECT DISTINCT $1.THELOAI,S1.MASACH,S1.TENSACH FROM SACH S1

WHERE S1.MASACH IN (

SELECT TOP 1 WITH TIES S2.MASACH FROM CHITIET_PT

JOIN SACH $2 ON S2.MASACH=CHITIET_PT MASACH

WHERE S1 THEL0AT=S2 THELOAT

GROUP BY $2.MASACH

ORDER BY COUNT(MAPT) DESC

)

DE 4

Đảng 16 Chương trình câu 2.1

2.1

ALTER TABLE BANG DIA ADD

CONSTRAINT CK_BD CHECK (THELOAI IN('ca nhac','phim hanh dong','phim tinh

cam'))

Đảng 17 Chương trình câu 2.2

2.2

CREATE TRIGGER trg_22 ON PHIEUTHUE

FOR INSERT, UPDATE

AS

BEGIN

DECLARE @SOLUONGTHUE INT SELECT @SOLUONGTHUE=SOLUONGTHUE FROM inserted WHERE MAKH IN (SELECT MAKH FROM KHACHHANG WHERE LOAIKH<>'VIP' )

IF (@SOLUONGTHUE=5 ) BEGIN

PRINT'VIP MOI DUOC THUE TREN 5' ROLLBACK TRAN

END END

Bang 18 Chuong trinh câu 3 1

3.1

SELECT KH.MAKH,HOTEN FROM KHACHHANG KH

JOIN PHIEUTHUE PT ON PT.MAKH=KH.MAKH

JOIN CHITIET_PM CT ON CT.MAPT=PT.MAPT

JOIN BANG_DIA BD ON BD.MABD=CT MABD

WHERE BD.THELOAI='Tinh cam'

AND SOLUONGTHUE>3

Đảng 19 Chương trình câu 3.2

3.2

SELECT MAKH,HOTEN FROM KHACHHANG

WHERE LOAIKH='VIP'

AND MAKH IN (

SELECT TOP 1 WITH TIES MAKH FROM PHIEUTHUE

GROUP BY MAKH

ORDER BY SUM(SOLUONGTHUE) DESC)

Trang 9

IT004— CƠ SỞ DỮ LIỆU

Đảng 20 Chương trình câu 3.3

3.3

SELECT DISTINCT BD.THELOAI,KH.MAKH,HOTEN FROM BANG_DIA BD

JOIN CHITIET_PM CT ON CT.MABD=BD.MABD

JOIN PHIEUTHUE PT ON PT.MAPT=CT.MAPT

JOIN KHACHHANG KH ON KH.MAKH=PT.MAKH

WHERE KH.MAKH IN(

SELECT TOP 1 WITH TIES KH2.MAKH FROM KHACHHANG KH2

JOIN PHIEUTHUE PT2 ON PT2.MAKH=KH2.MAKH

JOIN CHITIET_PM CT2 ON CT2.MAPT=PT2 MAPT

JOIN BANG_DIA BD2 0N BD2.MABD=CT2.MABD

WHERE BD THELOAI=BD2.THELOAT

GROUP BY KH2.MAKH

ORDER BY COUNT(PT2.MAPT) DESC)

BAI TAP QUANLYCHUYENGIA

Bang 21 Chuong trinh cau 1

1 Liệt kê tất cả chuyên gia trong cơ sở đữ liệu

SELECT * FROM CHUYENGIA

GO

EB Results gil Messages

+ Í1 “| Nguyén Van An 19850510 Nam nguyenvanan@emailcom 0901234567 Pháttiếnphầnmềm 10

Hình 1 Kết quả khi thực hiện chương trình 1

Đảng 22 Chương trình cẩu 2

—-2 Hiển thị tên và email của các chuyên gia nữ

SELECT HOTEN, EMAIL

FROM CHUYENGIA -

WHERE GIOITINH = N'NU'

GO

FH Results gil Messages

HOTEN EMAIL

anthiminh@email.com

Pham Ngô Thị Phượng _ngothiphuongŒ@email.com

Vũ Thị Hương vuthihuong@email.com

Ly Thi Khanh lythikhanh@email.com

¡Dung phamthidung@email.com

Hinh 2 Két quả khi thực hiện chương trình 2

Bang 23 Chương trình cẩu 3

3 Liệt kê các công ty có trên 100 nhân viên

SELECT * FROM CONGTY

WHERE SONHANVIEN > 100

9|Page

Trang 10

IT004— CƠ SỞ DỮ LIỆU

E8 Results gil Messages

MaCongTy TenCongTy DiaChi LinhVuc SoNhanVien

1 TechViet Solutions 123 Đường Lê Lợi, TP.HCM Phát triển phần mềm 200

2 DataSmart Analytics 456 Đường Nguyễn Huê,HàNội Phân tích dữ liệu 150

3 5 Al Innovate 202 Dudng Ly Tu Trong, HA N6i Trí tuê nhân tạo 120

Hinh 3 Két quả khi thực hiện chương trình 3

Bang 24 Chương trình câu 4

—-4 Hiển thị tên và ngày bắt đầu của các dự án trong năm 2023

SELECT TENDUAN, NGAYBATDAU

FROM DUAN

WHERE YEAR(NGAYKETTHUC) = 2023

GO

FH Results gi Messages TENDUAN NGAYBATDAU

1 ị Phát triển ứng dụng di động cho ngân hàng ¡ 2023-01-01

2 Xây dưng hê thống phần tích dữ liêu khách hằng 2023-03-15

kì Triển khai giải pháp đám mây cho doanh nghiệp 2023-02-01

4 Nâng cấp hệ thống bảo mật cho tập đoàn viễnthông 2023-04-01

5 Phát triển chatbot AI cho dịch vụ khách hàng 2023-05-01

Hình 4 Kết quả khi thực hiện chương trình 4

Bang 25 Chương trình cấu 6

—-6 Liệt kê tên chuyên gia và số lượng dự án họ tham gia

SELECT CG.HOTEN, COUNT(CGDA.MADUAN) AS SOLUONGDUAN

FROM CHUYENGIA CG

LEFT JOIN CHUYENGIA DUAN CGDA ON CG.MACHUYENGIA = CGDA.MACHUYENGIA

GROUP BY CG.HOTEN

GO

EH Results gil Messages

SOLUONGDUAN

| Đăng Văn Giang Hoàng Văn Em

Lê Hoàng Cường

Lý Thị Khánh Ngô Thị Phượng Nguyễn Văn An Phạm Thị Dung Trần Thị Bình

Vũ Thị Hương

— Oo

Hinh 5 Két quả khi thực hiện chương trình câu 6

Bang 26 Chương trình cẩu 7

7 Tim các dự án có sự tham gia của chuyên gia có kỹ năng 'Python' cấp độ 4

trở lên

SELECT CGDA.MADUAN, DA TenDuAn

FROM CHUYENGIA_DUAN CGDA

INNER JOIN DUAN DA ON DA.MADUAN = CGDA.MADUAN

10| Page

Trang 11

IT004— CƠ SỞ DỮ LIỆU

INNER JOIN CHUYENGIA_KYNANG CGKN ON CGKN.MACHUYENGIA = CGDA.MACHUYENGIA

INNER JOIN KYNANG KN ON KN.MAKYNANG = CGKN.MAKYNANG

WHERE KN.TENKYNANG = N'Python' AND CGKN.CAPDO >= 4

GROUP BY CGDA.MADUAN, DA.TenDuAn

GO

8 Results gi Messages MADUAN TenDuAn

ị Xây dựng hệ thống phân tích dữ liêu khách hang

Triển khai giải pháp đám mây cho doanh nghiệp

Nâng cấp hê thống bảo mật cho tập đoàn viễn thông Phát triển chatbot AI cho dịch vụ khách hằng

Hình 6 Kết quả khi thực hiện chương trình câu 7

Bang 27 Chương trình cấu

8 Hiê@ thị tên công ty và sôELlượng dự án đang thực hiện

SELECT CT.TenCongTy, COUNT(DA.MADUAN) AS SOLUONGDUAN

FROM CONGTY CT

INNER JOIN DUAN DA ON CT.MACONGTY = DA.MACONGTY

WHERE DA TRANGTHAT = N'Đang thực hiện'

GR0UP BY CT.TenCongTy

8 Results gil Messages

_TenCongTy SOLUONGDUAN

| CloudNine Systems DataSmartAnalytics 1 SecureNetVienam 1

Hình 7 Kết quả khí thực hiện chương trình câu ð

Bang 28 Chương trình cấu 9

9, Tìm chuyên gia có sôEnăm kinh nghiệm cao nhâF trong môi chuyên ngành

SELECT HOTEN, CHUYENNGANH, NAMKTNHNGHTEM

FROM CHUYENGIA CG

WHERE NAMKINHNGHTEM = (

SELECT MAX (NAMKINHNGHIEM) FROM CHUYENGIA

WHERE CHUYENNGANH = CG.CHUYENNGANH) ;

11|Page

Trang 12

IT004— CƠ SỞ DỮ LIỆU

HOTEN CHUYENNGANH NAMKINHNGHIEM

2 ê Hoàng Cường Trí tuê nhân tạo 9

3 Nguyễn Văn An Phát tiền phần mềm 10

4 Ngô Thị Phượng Phân tích dữ liệu 5

5 Phạm Thị Dung Khoa học dữ liệu 6

6 Dang Van Giang loT 11

7 Hoang Van Em Dién toan dam may 8

8 Bui Van Inh DevOps 8

9 Ly Thi Khanh Blockchain 4

10 Tran Thi Binh An ninh mạng 7

Hình 8 Kết quả khí thực hiện chương trình câu 9

Đảng 29 Chương trình câu 10

—-10 Liệt kê các cặp chuyên gia đã từng làm việc cùng nhau trong ít nhất một

dự án

SELECT DISTINCT CG1.MaChuyenGia, CG1.HOTEN AS CHUYENGIA1, CG2.MaChuyenGia,

CG2.HOTEN AS CHUYENGIA2

FROM CHUYENGIA_DUAN CGDA1

INNER JOIN CHUYENGIA_DUAN CGDA2 ON CGDA1.MADUAN = CGDA2.MADUAN

AND CGDA1.MACHUYENGIA < CGDA2.MACHUYENGIA

INNER JOIN CHUYENGIA CG1 ON CG1.MACHUYENGIA

GO

CGDA1 MACHUYENGIA CGDA2 MACHUYENGIA

8 Results gil Messages

MaChuyenGia CHUYENGIA1 MaChuyenGia CHUYENGIA2 1 Nguyễn Văn An s Vũ Thị Hướng

2 3 _ LêHoàng Cường 10 Lý Thị Khánh

3 4 Phạm ThịDung 6 Ngô Thị Phượng

4 5 Hoàng Văn Em 7 Dang Van Giang

5 5 Hoang Van Em 9 Bui Van Inh

6 7 Đặng VănGiang 9 Bùi Văn lnh

Hình 9 Kết quả khí thực hiện chương trình câu 10

Bang 30 Chương trình cdu 11

11l Tính tô@g thời gian (theo ngày) mà môi chuyên gia đã tham gia vào các

dự án

SELECT CG.HOTEN, SUM(DATEDIFF (DAY ,CGDA.NGAYTHAMGIA,DA.NGAYKETTHUC)) AS

TONGTHOIGIAN

FROM CHUYENGIA_DUAN CGDA

INNER JOIN DUAN DA ON DA.MADUAN = CGDA.MADUAN

INNER JOIN CHUYENGIA CG ON CG.MACHUYENGIA = CGDA.MACHUYENGIA

WHERE DA.NGAYKETTHUC >= CGDA.NGAYTHAMGIA

GROUP BY CG.HOTEN

GO

Trang 13

IT004— CƠ SỞ DỮ LIỆU

HOTEN TONGTHOIGIAN

2 ang 9 211

3 Hoang Van Em 211

4 Lê Hoàng Cường 213

5 Lý Thị Khánh 213

6 Ngô Thị Phượng 184

7 Nguyễn Văn An 180

8 Phạm Thị Dung 184

9 Trần Thị Bình 213

10 Vũ Thị Hương 180 Hình 10 Kết quả khi thực hiện chương trình câu 11

Đảng 3] Chương trình câu câu 12

12 Tim các công ty có tạ Lệ dự án hoàn thành cao nhâE (trên 90%) SELECT CT.TenCongTy, CAST(COUNT(CASE WHEN DA.TrangThai = N'Hoan thanh' THEN 1

END) AS FLOAT) / COUNT(*) * 100 AS TiLeHoanThanh

FROM CONGTY CT

JOIN DUAN DA ON CT.MaCongTy = DA.MaCongTy

GROUP BY CT.TenCongTy

HAVING CAST(COUNT(CASE WHEN DA.TrangThai = N'Hoan thanh' THEN 1 END) AS

FLOAT) / COUNT(*) * 100 > 90

ORDER BY TiLeHoanThanh DESC;

GO

FB Results gil Messages tenCongly TiLeHoanThanh

1 | TechViet Solutions | 100

Hinh 11 Kết qua khi thực hiện chương trình câu 12

Đảng 32 Chương trình câu 13

13 Liệt kê top 3 ky nang được yêu câu nhiêu nhâF trong các dự án

SELECT TOP 3 WITH TIES

KN.TENKYNANG, COUNT(CGKN.MAKYNANG) AS SOLANYEUCAU

FROM KYNANG KN

INNER JOIN CHUYENGIA_KYNANG CGKN ON KN.MAKYNANG = CGKN.MAKYNANG

GROUP BY KN.TENKYNANG

ORDER BY COUNT(CGKN.MAKYNANG) DESC

FH Results gi Messages TENKYNANG SOLANYEUCAU

| Machine Learning NoSQL AWS Docker SQL

Hinh 12 Két qua khí thực hiện chương trình câu 13

13|Page

Ngày đăng: 11/02/2025, 16:19