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

Hệ Quản Trị Cơ Sở Dữ Liệu Đồ Án Nhóm Đề Tài Project 1.Pdf

18 0 0
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 đề Project 1
Tác giả Thái Bá Hưng
Người hướng dẫn Nguyễn Dũng
Trường học Đại Học Duy Tân
Chuyên ngành Hệ Quản Trị Cơ Sở Dữ Liệu
Thể loại Đồ Án Nhóm
Năm xuất bản 2024
Định dạng
Số trang 18
Dung lượng 1,21 MB

Nội dung

Viết câu lệnh SQL để tạo CSDL có tên QLNV và tạo ra các bảng-- Bảng PHONG CREATE TABLE PHONG MAPHONG CHAR3PRIMARY KEY, TENPHONG NVARCHAR ,40 DIACHI NVARCHAR ,50 TEL CHAR 10 ; -- Bản

Trang 1

ĐẠI HỌC DUY TÂN KHOA CÔNG NGHỆ THÔNG TIN

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

ĐỒ ÁN NHÓM

ĐỀ TÀI: PROJECT 1 GVHD: Nguyễn Dũng LỚP: IS 401 F

Nhóm thực hiện: Thái Bá Hưng

05/2024

Trang 2

Câu 1 Viết câu lệnh SQL để tạo CSDL có tên QLNV và tạo ra các bảng

Bảng PHONG

CREATE TABLE PHONG (

MAPHONG CHAR(3)PRIMARY KEY,

TENPHONG NVARCHAR( ),40

DIACHI NVARCHAR( ),50

TEL CHAR( )10

);

Bảng DMNN

CREATE TABLE DMNN (

MANN CHAR(2)PRIMARY KEY,

TENNN NVARCHAR(20)

);

Bảng NHANVIEN

CREATE TABLE NHANVIEN (

MANV CHAR(5)PRIMARY KEY,

HOTEN NVARCHAR(40),

GIOITINH BIT,

NGAYSINH DATETIME,

HESOLUONG FLOAT,

MAPHONG CHAR( ),3

NGAYCONG INT,

NGAYBC DATETIME,

MATKHAU CHAR( ),20

FOREIGN KEY (MAPHONG)REFERENCES PHONG(MAPHONG) );

Bảng TDNN

CREATE TABLE TDNN (

MANV CHAR( ),5

MANN CHAR( ),2

TDO CHAR( ),1

PRIMARY KEY (MANV, MANN),

FOREIGN KEY (MANV)REFERENCES NHANVIEN(MANV), FOREIGN KEY (MANN)REFERENCES DMNN(MANN)

);

Trang 3

Câu 2 Viết các thủ tục để nhập dữ liệu và dùng thủ tục vừa viết để tạo nhập dữ liệu vào các bảng

CREATE PROCEDURE InsertOrUpdate_PHONG

@MAPHONG VARCHAR(10),

@TENPHONG NVARCHAR(100),

@DIACHI NVARCHAR(200),

@TEL NVARCHAR( )20

AS

BEGIN

SET NOCOUNT ON;

IFEXISTS(SELECT FROM 1 PHONG WHERE MAPHONG @MAPHONG= )

BEGIN

UPDATE PHONG

SET TENPHONG @TENPHONG= ,

DIACHI @DIACHI= ,

TEL @TEL=

WHERE MAPHONG @MAPHONG= ;

END

ELSE

BEGIN

INSERT INTO PHONG(MAPHONG, TENPHONG DIACHI TEL, , )

VALUES (@MAPHONG, @TENPHONG @DIACHI @TEL, , );

END

END;

CREATE PROCEDURE Insert_PHONG

AS

BEGIN

SET NOCOUNT ON;

EXECUTE InsertOrUpdate_PHONG'HCA',N'Hành chính tổ hợp',N'123, Láng Hạ, Đống Đa,

Hà Nội','048585793';

EXECUTE InsertOrUpdate_PHONG'KDA',N'Kinh Doanh',N'123, Láng Hạ, Đống Đa, Hà Nội' '048574943', ;

EXECUTE InsertOrUpdate_PHONG'KTA',N'Kỹ thuật',N'123, Láng Hạ, Đống Đa, Hà Nội', '049480485';

EXECUTE InsertOrUpdate_PHONG'QTA',N'Quản trị',N'123, Láng Hạ, Đống Đa, Hà Nội', '048508585';

END;

CREATE PROCEDURE InsertOrUpdate_DMNN

@MANN VARCHAR( ),2

@TENNN NVARCHAR(20)

AS

BEGIN

SET NOCOUNT ON;

IFEXISTS(SELECT FROM 1 DMNN WHERE MANN @MANN= )

Trang 4

BEGIN

UPDATE DMNN

SET TENNN @TENNN=

WHERE MANN @MANN= ;

END

ELSE

BEGIN

INSERT INTO DMNN(MANN, TENNN)

VALUES (@MANN, @TENNN);

END

END;

EXECUTE InsertOrUpdate_DMNN '01' N'Anh', ;

EXECUTE InsertOrUpdate_DMNN '02' N'Nga', ;

EXECUTE InsertOrUpdate_DMNN '03' N'Pháp', ;

EXECUTE InsertOrUpdate_DMNN '04' N'Nhật', ;

EXECUTE InsertOrUpdate_DMNN '05',N'Trung Quốc';

EXECUTE InsertOrUpdate_DMNN '06',N'Hàn Quốc';

CREATE PROCEDURE InsertOrUpdate_NHANVIEN

@MANV CHAR(5),

@HOTEN NVARCHAR(40),

@GIOITINH BIT,

@NGAYSINH DATETIME,

@HESOLUONG FLOAT,

@MAPHONG CHAR( ),3

@NGAYCONG INT,

@NGAYBC DATETIME,

@MATKHAU CHAR( )20

AS

BEGIN

SET NOCOUNT ON;

IFEXISTS(SELECT FROM 1 NHANVIEN WHERE MANV @MANV= ) BEGIN

UPDATE NHANVIEN

SET HOTEN @HOTEN= ,

GIOITINH @GIOITINH= ,

NGAYSINH @NGAYSINH= ,

HESOLUONG @HESOLUONG= ,

MAPHONG @MAPHONG= ,

NGAYCONG @NGAYCONG= ,

NGAYBC @NGAYBC= ,

MATKHAU @MATKHAU=

WHERE MANV @MANV= ;

END

ELSE

Trang 5

BEGIN

INSERT INTO NHANVIEN(MANV, HOTEN GIOITINH NGAYSINH HESOLUONG , , , , MAPHONG, NGAYCONG, NGAYBC, MATKHAU)

VALUES (@MANV, @HOTEN @GIOITINH @NGAYSINH @HESOLUONG , , , ,

@MAPHONG, @NGAYCONG, @NGAYBC, @MATKHAU);

END

END;

EXECUTE InsertOrUpdate_NHANVIEN 'HC001',N'Nguyễn Thị Hà', 0 ,'1950-08-27', 2.34, 'HCA', 30 ,'1975-02-08',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'HC002',N'Trần Văn Nam', 1 ,'1975-12-06', 4.0,'HCA',

15,'1997-08-06',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'HC003',N'Nguyễn Thanh Huyền', ,'1978-03-07', 5.7, 'HCA', 29 ,'1999-09-24',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KD001',N'Lê Tuyết Anh', ,'1977-03-02', 6.4,'KDA',

30,'2001-10-02',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KD002',N'Nguyễn Anh Tú', 1 ,'1942-04-07', 7.2, 'KDA', 30 ,'1999-09-24',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KD003',N'Phạm An Thái', ,'1977-09-05', 3.4,'KDA',

28,'1999-09-24',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KD004',N'Lê Văn Hải', ,'1976-02-01', 2.34,'KDA',

27,'1997-06-08',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KD005',N'Nguyễn Phương Minh', 1 ,'1980-02-01', 4.0, 'KDA', 26 ,'2001-10-02',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KT001',N'Trần Đình Khâm', , 1 '1981-02-12', 5.7, 'KTA', 28 ,'2005-01-01', NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KT002',N'Nguyễn Mạnh Hùng', ,'1980-08-16', 6.4, 'KTA', 17 ,'2005-01-01', NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KT003',N'Phạm Thanh Sơn', , 1 '1984-08-20', 7.2, 'KTA', 30 ,'2005-01-01', NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KT004',N'Vũ Thị Hoài', , 0 '1980-05-12', 3.4,'KTA',

30,'2001-10-02',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KT005',N'Nguyễn Thu Lan', , 0 '1977-05-10', 2.34, 'KTA', 30 ,'2001-10-02', NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KT006',N'Trần Hoài Nam', ,'1978-02-07', 4.0,'KTA',

30,'1997-06-08',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KT007',N'Hoàng Nam Sơn', , 1 '1940-03-12', 5.7, 'KTA', 30 ,'1965-07-02', NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KT008',N'Lê Thu Trang', ,'1950-06-07', 6.4,'KTA',

30,'1968-08-02',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KT009',N'Khúc Nam Hải', ,'1980-07-22', 7.2,'KTA',

30,'2005-01-01',NULL;

EXECUTE InsertOrUpdate_NHANVIEN 'KT010',N'Phùng Trung Dũng', ,'1978-08-28', 3.4, 'KTA', 30 ,'1999-09-24', NULL;

CREATE PROCEDURE InsertOrUpdate_TDNN

Trang 6

@MANV CHAR(5),

@MANN CHAR(2),

@TDO CHAR(1)

AS

BEGIN

SET NOCOUNT ON;

IFEXISTS(SELECT FROM 1 TDNN WHERE MANV @MANV= ) BEGIN

UPDATE TDNN

SET MANN @MANN= ,

TDO @TDO=

WHERE MANV @MANV= ;

END

ELSE

BEGIN

INSERT INTO TDNN(MANV, MANN TDO, )

VALUES (@MANV, @MANN @TDO, );

END

END;

EXEC InsertOrUpdate_TDNN 'HC001' '01' 'A', , ;

EXEC InsertOrUpdate_TDNN 'HC001' '02' 'B', , ;

EXEC InsertOrUpdate_TDNN 'HC002' '01' 'C', , ;

EXEC InsertOrUpdate_TDNN 'HC002' '03' 'C', , ;

EXEC InsertOrUpdate_TDNN 'HC003' '01' 'D', , ;

EXEC InsertOrUpdate_TDNN 'KD001' '01' 'C', , ;

EXEC InsertOrUpdate_TDNN 'KD001' '02' 'B', , ;

EXEC InsertOrUpdate_TDNN 'KD002' '01' 'D', , ;

EXEC InsertOrUpdate_TDNN 'KD002' '02' 'A', , ;

EXEC InsertOrUpdate_TDNN 'KD003' '01' 'B', , ;

EXEC InsertOrUpdate_TDNN 'KD003' '02' 'C', , ;

EXEC InsertOrUpdate_TDNN 'KD004' '01' 'C', , ;

EXEC InsertOrUpdate_TDNN 'KD004' '04' 'A', , ;

EXEC InsertOrUpdate_TDNN 'KD004' '05' 'A', , ;

EXEC InsertOrUpdate_TDNN 'KD005' '01' 'B', , ;

EXEC InsertOrUpdate_TDNN 'KD005' '02' 'D', , ;

EXEC InsertOrUpdate_TDNN 'KD005' '03' 'B', , ;

EXEC InsertOrUpdate_TDNN 'KD005' '04' 'B', , ;

EXEC InsertOrUpdate_TDNN 'KT001' '01' 'D', , ;

EXEC InsertOrUpdate_TDNN 'KT001' '04' 'E', , ;

EXEC InsertOrUpdate_TDNN 'KT002' '01' 'C', , ;

EXEC InsertOrUpdate_TDNN 'KT002' '02' 'B', , ;

EXEC InsertOrUpdate_TDNN 'KT003' '01' 'D', , ;

EXEC InsertOrUpdate_TDNN 'KT003' '03' 'C', , ;

EXEC InsertOrUpdate_TDNN 'KT004' '01' 'D', , ;

Trang 7

EXEC InsertOrUpdate_TDNN 'KT005' '01' 'C', , ;

Câu 3 Viết thủ tục in ra thông tin chi tiết của nhân viên dựa vào mã nhân viên gồm: Mã

nhân viên, tên nhân viên, tuổi, giới tính (nam, nữ)

CREATE PROCEDURE CAU_3

@MANV VARCHAR( )10

AS

BEGIN

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

BEGIN TRANSACTION;

SELECT MANV HOTEN, ,DATEDIFF(YEAR, NGAYSINH ,GETDATE())AS Tuoi, CASE

WHEN GIOITINH 1 = THEN 'Nam'

WHEN GIOITINH 0 = THEN N'Nữ'

END AS GioiTinh

FROM NHANVIEN

WHERE MANV = @MANV;

COMMIT;

END;

EXECUTE CAU_3 @MANV ='HC001';

Câu 4 Viết thủ tục in ra thông tin của nhân viên như câu 3 dựa vào họ của nhân viên

CREATE PROCEDURE CAU_4

@LastName NVARCHAR( )40

AS

BEGIN

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

BEGIN TRANSACTION;

SELECT

NHANVIEN MANV AS 'Mã nhân viên',

NHANVIEN HOTEN AS 'Tên nhân viên',

DATEDIFF YEAR( , NHANVIEN.NGAYSINH,GETDATE()) AS 'Tuổi',

CASE

WHEN NHANVIEN GIOITINH 1 = THEN'Nam'

WHEN NHANVIEN GIOITINH 0 = THENN'Nữ'

ELSE'Không xác định'

END AS'Giới tính'

FROM

NHANVIEN

WHERE

NHANVIEN HOTEN LIKE'%'+ @LastName +'%';

Trang 8

END;

EXECUTE CAU_4 @LastName =N'Nguyễn';

Câu 5 Viết thủ tục in ra hai nhân viên nữ và hai nhân viên nam có thời gian công tác ở

công ty lâu nhất

CREATE PROCEDURE CAU_5

AS

BEGIN

BEGIN TRANSACTION;

DECLARE @FemaleCount INT = ; 2

DECLARE @MaleCount INT 2= ;

Nhân viên nữ có thời gian công tác lâu nhất

SELECT TOP (@FemaleCount)

NHANVIEN MANV AS 'Mã nhân viên',

NHANVIEN HOTEN AS 'Tên nhân viên',

DATEDIFF YEAR( , NHANVIEN.NGAYBC,GETDATE()) AS 'Thời gian công tác (năm)', N'Nữ' AS 'Giới tính'

FROM

NHANVIEN

WHERE

NHANVIEN GIOITINH 0 =

ORDER BY

DATEDIFF YEAR( , NHANVIEN.NGAYBC,GETDATE()) DESC;

Nhân viên nam có thời gian công tác lâu nhất

SELECT TOP (@MaleCount)

NHANVIEN MANV AS 'Mã nhân viên',

NHANVIEN HOTEN AS 'Tên nhân viên',

DATEDIFF YEAR( , NHANVIEN.NGAYBC,GETDATE()) AS 'Thời gian công tác (năm)', 'Nam'AS'Giới tính'

FROM

NHANVIEN

WHERE

NHANVIEN GIOITINH 1 =

ORDER BY

DATEDIFF YEAR( , NHANVIEN.NGAYBC,GETDATE()) DESC;

COMMIT TRANSACTION;

END;

Trang 9

EXECUTE CAU_5;

Câu 6 Viết thủ tục in ra thông tin nhân viên gồm: mã nhân viên, tên nhân viên, tuổi, giới

tính, Lương theo tên của phòng ban

Lương của mỗi nhân viên được tính theo công thức: Lương =LCB*ngày công/số ngày công chuẩn: LCB=1.500.000 Ngày công chuẩn là 26

CREATE PROCEDURE CAU_6

@Tenphong NVARCHAR( )40

AS

BEGIN

BEGIN TRANSACTION;

DECLARE @LCB FLOAT = 1500000.0; Lương cơ bản

DECLARE @Ngaycongchuan INT 26= ; Số ngày công chuẩn

SELECT

NHANVIEN MANV AS 'Mã nhân viên',

NHANVIEN HOTEN AS 'Tên nhân viên',

DATEDIFF YEAR( , NHANVIEN.NGAYSINH,GETDATE()) AS 'Tuổi',

CASE

WHEN NHANVIEN GIOITINH 1 = THEN'Nam'

WHEN NHANVIEN GIOITINH 0 = THENN'Nữ'

ELSE'Không xác định'

END AS'Giới tính',

(@LCB NHANVIEN NGAYCONG @Ngaycongchuan * / )AS 'Lương'

FROM

NHANVIEN

INNER JOIN PHONG ON NHANVIEN MAPHONG PHONG = MAPHONG WHERE

PHONG TENPHONG @Tenphong = ;

COMMIT TRANSACTION;

END;

EXECUTE CAU_6 @Tenphong ='Hành chính tổ hợp';

Câu 7 Viết thủ tục in ra thông tin chi tiết của nhân viên có tuổi năm trong khoảng 25 đến 30 theo

từng phòng ban với mã phòng ban truyền vào

Trang 10

CREATE PROCEDURE CAU_7

@MaPhong CHAR(3)

AS

BEGIN

BEGIN TRANSACTION;

DECLARE @TuoiToiThieu INT 25= ;

DECLARE @TuoiToiDa INT = 30;

SELECT

NHANVIEN MANV AS'Ma nhan vien',

NHANVIEN HOTEN AS'Ten nhan vien',

DATEDIFF YEAR( , NHANVIEN.NGAYSINH,GETDATE())AS'Tuoi',

CASE

WHEN NHANVIEN GIOITINH 1 = THEN 'Nam'

WHEN NHANVIEN GIOITINH 0 = THEN N'Nữ'

ELSE 'Khong xac dinh'

END AS 'Gioi tinh'

FROM

NHANVIEN

INNERJOIN PHONG ON NHANVIEN MAPHONG PHONG = MAPHONG

WHERE

PHONG MAPHONG @MaPhong =

ANDDATEDIFF YEAR( , NHANVIEN.NGAYSINH,GETDATE())BETWEEN @TuoiToiThieu AND @TuoiToiDa;

COMMIT TRANSACTION;

END;

EXECUTE CAU_7 @MaPhong ='KTA';

Câu 8 Viết thủ tục thống kê lương trung bình cho mỗi phòng ban: gồm mã phòng ban, tên

phòng ban, lương trinh bình

CREATE PROCEDURE CAU_8

AS

BEGIN

BEGIN TRANSACTION;

DECLARE @LCB FLOAT 1500000.0 = ; Lương cơ bản

DECLARE @Ngaycongchuan INT = 26 ; Số ngày công chuẩn

SELECT

PHONG MAPHONG AS'Mã phòng ban',

Trang 11

PHONG TENPHONG AS N'Tên phòng ban',

AVG(@LCB NHANVIEN NGAYCONG @Ngaycongchuan* / ) AS 'Lương trung bình'

FROM

NHANVIEN

INNERJOIN PHONG ON NHANVIEN MAPHONG PHONG = MAPHONG

GROUP BY

PHONG.MAPHONG,

PHONG.TENPHONG;

COMMIT TRANSACTION;

END;

EXECUTE CAU_8;

Câu 9 Viết thủ tục in ra mã ngoại ngữ, tên ngoại ngữ, trình độ cao nhất theo mã nhân viên.

CREATE PROCEDURE CAU_9

@MaNhanVien CHAR(5)

AS

BEGIN

BEGIN TRANSACTION;

SELECT

TDNN MANV AS'Mã nhân viên',

TDNN MANN AS'Mã ngoại ngữ',

DMNN TENNN AS N'Tên ngoại ngữ',

TDNN TDO AS'Trình độ cao nhất'

FROM

TDNN

INNERJOIN DMNN ON TDNN MANN DMNN = MANN

WHERE

TDNN MANV @MaNhanVien = ;

COMMIT TRANSACTION;

END;

EXECUTE CAU_9 @MaNhanVien ='HC001';

Câu 10 Viết thủ tục lọc ra tất cả những nhân viên chưa học ngoại ngữ nào gồm mã nhân viên, tên

nhân viên, tên phòng ban

CREATE PROCEDURE CAU_10

AS

Trang 12

BEGIN TRANSACTION;

SELECT

NHANVIEN MANV AS'Mã nhân viên',

NHANVIEN HOTEN ASN'Tên nhân viên',

PHONG TENPHONG AS 'Tên phòng ban'

FROM

NHANVIEN

INNERJOIN PHONG ON NHANVIEN MAPHONG PHONG = MAPHONG

WHERE

NHANVIEN MANV NOT IN(

SELECT MANV FROM TDNN

);

COMMIT TRANSACTION;

END;

EXECUTE CAU_10;

Câu 11 Viết thủ tục in ra những phòng ban gồm mã phòng ban, tên phòng ban và tổng lương

Chỉ in ra những phòng ban có tổng lương >=5000

CREATE PROCEDURE CAU_11

AS

BEGIN

BEGIN TRANSACTION;

DECLARE @LCB INT;

SET @LCB 1500000= ;

SELECT

PHONG MAPHONG AS'Mã phòng ban',

PHONG TENPHONG AS N'Tên phòng ban',

SUM(@LCB NHANVIEN NGAYCONG 26 * / )AS'Tổng lương'

FROM

PHONG

INNERJOIN NHANVIEN ON PHONG MAPHONG NHANVIEN = MAPHONG

GROUP BY

PHONG.MAPHONG,

PHONG.TENPHONG

HAVING

SUM(@LCB NHANVIEN NGAYCONG 26 * / ) >= 5000;

Trang 13

COMMIT TRANSACTION;

END;

EXECUTE CAU_11;

Câu 12 Viết thủ tục in ra tất cả các nhân viên có ngày sinh trùng với ngày sinh hiện tại

CREATE PROCEDURE CAU_12 IN RA CÁC NV CÓ NGÀY SINH TRÙNG VỚI NGÀY HIỆN

TẠI AS

BEGIN

BEGIN TRANSACTION;

DECLARE @NgaySinhHienTai DATE;

SET @NgaySinhHienTai =GETDATE();

SELECT

MANV AS 'Mã nhân viên',

HOTEN AS 'Tên nhân viên',

NGAYSINH AS'Ngày sinh'

FROM

NHANVIEN

WHERE

NGAYSINH @NgaySinhHienTai= ;

COMMIT TRANSACTION;

END;

EXECUTE CAU_12;

Câu 13 Viết hàm tạo mã nhân viên tự động dựa vào mã phòng ban và số lượng nhân viên thuộc

phòng ban đó có trong bảng nhân viên

VD: Phòng ban KTA và số nhân viên thuộc phòng ban KTA trong bảng nhân viên đang có là

10 thì mã mới được tạo ra là KT011

CREATE FUNCTION CAU_13 (@MaPhongBan VARCHAR( ))10 RETURNS VARCHAR(20) AS

BEGIN

DECLARE @SoLuongNhanVien INT;

DECLARE @MaNhanVien VARCHAR( );20

Lấy số lượng nhân viên thuộc phòng ban từ bảng nhân viên

Trang 14

SELECT @SoLuongNhanVien =COUNT(*)FROM NHANVIEN WHERE MAPHONG =

@MaPhongBan;

Tạo mã nhân viên tự động dựa vào mã phòng ban và số lượng nhân viên

SET @MaNhanVien @MaPhongBan = +'-'+CAST(@SoLuongNhanVien 1 + AS VARCHAR(10)); RETURN @MaNhanVien;

END;

DECLARE @MaNhanVienTaoTuDong VARCHAR( );20

SET @MaNhanVienTaoTuDong dbo= AUTO_MANV('KT010');

Câu 14 Viết hàm tạo mật khẩu từ ngày sinh

CREATE FUNCTION CAU_14 @DOB ( DATE)

RETURNS VARCHAR( )50

AS

BEGIN

DECLARE @Password VARCHAR(50)

DECLARE @Year INT, @Month INT, @Day INT

SELECT @Year =YEAR(@DOB), @Month =MONTH(@DOB), @Day =DAY(@DOB) Tạo mật khẩu từ ngày sinh

SET @Password =REPLACE CONVERT( (VARCHAR( ),10 @DOB 112, ),'-',''

RETURN @Password

END

GO

Cập nhật mật khẩu cho từng nhân viên

UPDATE NHANVIEN

SET MatKhau = dbo CAU_14 NgaySinh ( )

Câu 15 Viết thủ tục tri cập nhật một viên mới tự động cập nhật tất cả các ngoại ngữ cho nhân viên

với trình độ thấp nhất

Câu 16 Viết Trigger ngăn không cho nhập số lượng nhân viên ở phòng ban bất kỳ quá 20

người

CREATE TRIGGER CAU_16

ON NHANVIEN

AFTER INSERT,UPDATE

AS

Ngày đăng: 27/06/2024, 15:55

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w