XÂY DỰNG CƠ SỞ DỮ LIỆU CHO BÀI TOÁN QUẢN LÝ NHÂN SỰ Sql server bản code đầy đủ

15 43 0
XÂY DỰNG CƠ SỞ DỮ LIỆU CHO BÀI TOÁN QUẢN LÝ NHÂN SỰ Sql server bản code đầy đủ

Đ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

XÂY DỰNG CƠ SỞ DỮ LIỆU CHO BÀI TOÁN QUẢN LÝ NHÂN SỰCreate Database Qly_NhanSugouse Qly_NhanSugoTạo các bảngCreate Table PHONG(MAPHONG Char(3) NOT NULL,TENPHONG Nvarchar(50) NOT NULL,DIACHI Nvarchar(200) NOT NULL,DIENTHOAI Char(10),Constraint pk_maphong primary key(MAPHONG));go

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN ĐỀ SỐ XÂY DỰNG CƠ SỞ DỮ LIỆU CHO BÀI TOÁN QUẢN LÝ NHÂN SỰ Sinh viên thực : Nguyễn Minh Chiến Mã sinh viên : 1711060246 Lớp : ĐH7C5 Hà Nội, tháng 12/2021 BÀI TẬP LỚN Học Phần: Ngôn ngữ sql Họ tên: Nguyễn Minh Chiến • Mã Phịng thi: SV:1711060246 B.397 Lớp quản lý: ĐH7C5 Cơ sở liệu cho toán quản lý nhân gồm bảng: - PHONG gồm cột MAPHONG, TENPHONG (khố chính), DIACHI, - DIEN THOAI DANHMUCNGOAINGU gồm cột MANN (khố chính), TENNN NHANSU gồm cột MANS (khố chính), HOTEN, GIOI TINH, - NGAYSINH, LUONG, MAPHONG, SDT TRINHDONN gồm cột MANS (khố chính), MANN (khố chính), TRINHDO BÀI LÀM Create Database Qly_NhanSu go use Qly_NhanSu go -Tạo bảng -Create Table PHONG( MAPHONG Char(3) NOT NULL, TENPHONG Nvarchar(50) NOT NULL, DIACHI Nvarchar(200) NOT NULL, DIENTHOAI Char(10), Constraint pk_maphong primary key(MAPHONG) ); go Create Table DANHMUCNGOAINGU( MANN Char(2) NOT NULL, TENNN Nvarchar(50) NOT NULL, Constraint pk_mann primary key(MANN) ); go Create Table NHANSU( MANS Char(5) NOT NULL, HOTEN Nvarchar(50) NOT NULL, GIOITINH NChar(5), NGAYSINH Date, LUONG int, MAPHONG Char(3) NOT NULL, SDT Char(10), Constraint pk_mans primary key(MANS) ); go Create Table TRINHDONN( MANS Char(5) NOT NULL, MANN Char(2) NOT NULL, TRINHDO Char(1), Constraint pk_trinhdo primary key(MANS, MANN) ); go -INSERT liệu vào bảng INSERT INTO PHONG VALUES('HCA', N'Hành tổng hợp', N'172, Phú Diễn, Bắc Từ Liêm, Hà Nội', '0333666881') INSERT INTO PHONG VALUES('KDA', N'Kinh doanh', N'172, Phú Diễn, Bắc Từ Liêm, Hà Nội', '0333666882') INSERT INTO PHONG VALUES('KTA', N'Kỹ thuật', N'172, Phú Diễn, Bắc Từ Liêm, Hà Nội', '0333666883') INSERT INTO PHONG VALUES('QTA', N'Quản trị', N'172, Phú Diễn, Bắc Từ Liêm, Hà Nội', '0333666884') go INSERT INTO DANHMUCNGOAINGU VALUES('01', 'Anh') INSERT INTO DANHMUCNGOAINGU VALUES('02', 'Nga') INSERT INTO DANHMUCNGOAINGU VALUES('03', 'Pháp') INSERT INTO DANHMUCNGOAINGU VALUES('04', 'Nhật') INSERT INTO DANHMUCNGOAINGU VALUES('05', 'Trung Quốc') INSERT INTO DANHMUCNGOAINGU VALUES('06', 'Hàn Quốc') go INSERT INTO NHANSU VALUES('HC001', N'Nguyễn Minh Chiến', N'Nam', '0131-1999', 1500, 'HCA', '0984748654') INSERT INTO NHANSU VALUES('HC002', N'Trần Văn Nam', N'Nam', '03-241999', 1700, 'HCA', '0124587485') INSERT INTO NHANSU VALUES('HC003', N'Nguyễn Thanh Huyền', N'Nữ', '0105-1999', 1500, 'HCA', '0984741111') INSERT INTO NHANSU VALUES('KD001', N'Lê Tuyết Anh', N'Nữ', '12-12-1999', 2500, 'KDA', '0333374854') INSERT INTO NHANSU VALUES('KD005', N'Nguyễn Anh Tú', N'Nam', '04-251999', 1800, 'KDA', '0980034554') INSERT INTO NHANSU VALUES('KD003', N'Phạm An Thái', N'Nam', '07-111999', 2200, 'KDA', '03544148748') go INSERT INTO TRINHDONN VALUES('HC001', '01', 'A') INSERT INTO TRINHDONN VALUES('HC001', '02', 'B') INSERT INTO TRINHDONN VALUES('HC002', '01', 'C') INSERT INTO TRINHDONN VALUES('HC002', '03', 'C') INSERT INTO TRINHDONN VALUES('HC003', '01', 'D') INSERT INTO TRINHDONN VALUES('KD001', '01', 'C') INSERT INTO TRINHDONN VALUES('KD001', '02', 'B') INSERT INTO TRINHDONN VALUES('KD002', '01', 'D') INSERT INTO TRINHDONN VALUES('KD002', '02', 'A') INSERT INTO TRINHDONN VALUES('KD003', '01', 'B') INSERT INTO TRINHDONN VALUES('KD003', '02', 'C') INSERT INTO TRINHDONN VALUES('KD004', '01', 'C') INSERT INTO TRINHDONN VALUES('KD004', '04', 'A') Go Mơ hình quan hệ Đưa thơng tin nhân có mã số HC001-Select * from NHANSU where MANS = 'HC001' go Đưa danh sách nhân Nữ-select * from NHANSU where GIOITINH = N'Nữ' go Tìm nhân viên có họ Nguyễn-select * from NHANSU where HOTEN like N'Nguyễn%' go Đưa thông tin nhân có tuổi 30? (Đưa thơng tin tuổi kết quả) select *, YEAR(GETDATE()) - YEAR(NGAYSINH) AS N'TUỔI' from NHANSU where YEAR(GETDATE()) - YEAR(NGAYSINH) < 30 go Đếm số lượng nhân có trình độ A Select COUNT(*) AS N'Số lượng nhân sự' from NHANSU, TRINHDONN where NHANSU.MANS = TRINHDONN.MANS AND TRINHDONN.TRINHDO = 'A' go Đưa danh sách nhân theo chiều tăng dần lương select * from NHANSU ORDER BY LUONG ASC go Tính lương trung bình Phịng HCA select AVG(LUONG) AS 'Lương trung bình' From NHANSU where MAPHONG = 'HCA' go Cho biết phịng có tổng lương lớn 4000 select SUM(NHANSU.LUONG) AS 'Tổng lương', PHONG.TENPHONG from NHANSU, PHONG where NHANSU.MAPHONG = PHONG.MAPHONG Group by PHONG.TENPHONG having SUM(NHANSU.LUONG) > 4000 go Lấy tất liệu cột TRINHDO bảng TRINHDONN khơng trùng select DISTINCT TRINHDO AS N'Trình độ' from TRINHDONN go 10 Tạo view có tên v_VIEW bao gồm thông tin: Mã nhân sự, họ tên, giới tính, ngày sinh, sđt, tên phịng, địa CREATE VIEW v_VIEW as select a.MANS, a.HOTEN, a.GIOITINH, a.NGAYSINH, a.SDT, b.TENPHONG, b.DIACHI from NHANSU as a, PHONG as b where a.MAPHONG=b.MAPHONG go 11 Viết procedure Insert liệu cho bảng PHONG thiết kế -Create Procedure sp_PHONG( @MAPHONG char(3), @TENPHONG nvarchar(50), @DIACHI nvarchar(200), @DIENTHOAI char(10)) AS Insert Into PHONG(MAPHONG, TENPHONG, DIACHI, DIENTHOAI) values(@MAPHONG, @TENPHONG, @DIACHI, @DIENTHOAI) go sp_PHONG @MAPHONG = 'ITA', @TENPHONG = N'Giám sát', @DIACHI = N'172, Phú Diễn, Bắc Từ Liêm, Hà Nội', @DIENTHOAI = '0333666885' go select * from Phong where MAPHONG = 'ITA' -12 Viết procedure hiển thị thông tin nhân biết tên phòng Create Procedure sp_TimKiem(@name as nvarchar(200)) AS BEGIN Select n.MANS, n.HOTEN, n.GIOITINH, n.NGAYSINH, p.TENPHONG, p.DIACHI from NHANSU as n, PHONG as p where n.MAPHONG = p.MAPHONG AND p.TENPHONG LIKE '%' + @name + '%' END go Exec sp_TimKiem @name=N'Kinh doanh' go 13 Viết procedure sửa thông tin Tên, lương, sđt nhân biết mã nhân Create Procedure sp_Update( @name as nvarchar(200), @Hoten as nvarchar(50), @Luong as int, @Sdt as char(10) ) AS BEGIN Update NHANSU SET HOTEN=@Hoten, LUONG=@Luong, SDT=@Sdt Where MANS=@name END go Exec sp_Update @name='HC002', @Hoten=N'Test', @Luong=1200, @Sdt='0987635241' Select *From NHANSU Where HOTEN='Test' 10 14 Tạo Trigger insert liệu vào bảng TRINHDONN có TRINHDO = A Thì Lương Bảng NHANSU tăng thêm 50 Create Trigger tg_Insert ON TRINHDONN FOR INSERT AS BEGIN DECLARE @Trinhdo nvarchar(50); Select @Trinhdo=TRINHDONN.TRINHDO From NHANSU, TRINHDONN Where NHANSU.MANS = TRINHDONN.MANS IF @Trinhdo = 'A' BEGIN UPDATE NHANSU SET LUONG = LUONG + 50 From NHANSU, TRINHDONN Where NHANSU.MANS = TRINHDONN.MANS END select* from NHANSU END go INSERT INTO TRINHDONN VALUES('KD002', '03', 'B') go 15 Truy vấn lồng Lấy thông tin nhân trình độ ngoại ngữ A Select * From NHANSU where MANS IN( Select MANS from TRINHDONN Where TRINHDO = 'A') Order By HOTEN 11 16 Truy vấn lồng Lấy thông tin nhân trình độ ngoại ngữ khơng phải A Select * From NHANSU where MANS NOT IN( Select MANS from TRINHDONN Where TRINHDO = 'A') Order By HOTEN go 17 Truy vấn lồng Lấy thông tin nhân trình độ ngơn ngữ tiếng Nga Select * From NHANSU where MANS IN ( Select MANS from TRINHDONN Where MANN 12 IN ( Select MANN from DANHMUCNGOAINGU where TENNN = N'Nga' ) ) go 18 Thêm cột TONGNS vào bảng PHONG Cập nhập xác tổng số nhân -Thêm cột TONGNS vào bảng PHONG Alter Table PHONG ADD TONGNS int -Cập nhập xác tổng số nhân UPDATE PHONG SET TONGNS = (Select COUNT(*) From NHANSU Where NHANSU.MAPHONG = PHONG.MAPHONG) From PHONG Select * From PHONG go -19 Viết trigger để thêm Nhân vào bảng Thì tăng cột TONGNS lên Create Trigger tg_ThemNS ON NHANSU AFTER INSERT 13 AS SET NOCOUNT ON UPDATE PHONG SET TONGNS = TONGNS + s.dem From PHONG p JOIN (Select MAPHONG, COUNT(*) AS dem from inserted Group By MAPHONG) s ON p.MAPHONG = s.MAPHONG go INSERT INTO NHANSU VALUES('HC008', N'Phạm ', N'Nam', '07-11-1998', 2200, 'ITA', '0354414874') Select*from PHONG go 20 Viết trigger để Xố nhân bảng giảm cột TONGNS lên Create Trigger tg_XoaNS ON NHANSU AFTER DELETE AS 14 SET NOCOUNT ON UPDATE PHONG SET TONGNS = TONGNS - s.dem From PHONG p JOIN (Select MAPHONG, COUNT(*) AS dem from deleted Group By MAPHONG) s ON p.MAPHONG = s.MAPHONG go DELETE NHANSU Where MANS='HC008' Select*from PHONG go 15 ...BÀI TẬP LỚN Học Phần: Ngôn ngữ sql Họ tên: Nguyễn Minh Chiến • Mã Phịng thi: SV:1711060246 B.397 Lớp quản lý: ĐH7C5 Cơ sở liệu cho toán... trình độ ngoại ngữ A Select * From NHANSU where MANS IN( Select MANS from TRINHDONN Where TRINHDO = 'A') Order By HOTEN 11 16 Truy vấn lồng Lấy thông tin nhân trình độ ngoại ngữ khơng phải A... INSERT INTO DANHMUCNGOAINGU VALUES('06', 'Hàn Quốc') go INSERT INTO NHANSU VALUES('HC001', N'Nguyễn Minh Chiến', N'Nam', '0131-1999', 1500, 'HCA', '0984748654') INSERT INTO NHANSU VALUES('HC002',

Ngày đăng: 20/03/2022, 19:29

Tài liệu cùng người dùng

Tài liệu liên quan