· 7 years ago · Dec 14, 2018, 12:56 AM
1CREATE DATABASE EmploymentManagement
2GO
3
4USE EmploymentManagement
5GO
6
7CREATE TABLE Department
8(
9 DepartmentID CHAR(5) PRIMARY KEY NOT NULL,
10 NameDepartment VARCHAR(50) NOT NULL
11)
12
13CREATE TABLE Employee
14(
15 EmployeeID CHAR(5) PRIMARY KEY NOT NULL,
16 NameEmployee VARCHAR(50) NOT NULL,
17 DepartmentFK CHAR(5) FOREIGN KEY REFERENCES dbo.Department(DepartmentID) NOT NULL,
18 BirthDay DATETIME DEFAULT('1980-01-10')
19)
20
21DROP TABLE dbo.Department
22DROP TABLE dbo.Employee
23-- INSERT RECORDS
24INSERT dbo.Department ( DepartmentID, NameDepartment )
25VALUES ( 'DPM01', 'Department A' ),
26 ( 'DPM02', 'Department B' ),
27 ( 'DPM03', 'Department C' ),
28 ( 'DPM04', 'Department D' )
29
30INSERT dbo.Employee( EmployeeID ,NameEmployee ,DepartmentFK ,BirthDay)
31VALUES ( 'Emp01' , 'Nguyen Dai Hao' , 'DPM01' , '1999-09-09' ),
32 ( 'Emp02' , 'Bùi Kim Quyên' , 'DPM01' , '1989-11-12' ),
33 ( 'Emp03' , 'Võ An Phước Thiện' , 'DPM02' , '1985-09-23' ),
34 ( 'Emp04' , 'Phan Vinh BÃnh' , 'DPM02' , '1989-05-18' ),
35 ( 'Emp05' , 'Phan Huỳnh Ngá»c Dung' , 'DPM03' , '1986-10-19' ),
36 ( 'Emp06' , 'Nguyễn Thiện Toà n' , 'DPM03' , '1986-03-09' ),
37 ( 'Emp07' , 'Huỳnh Kim Hoà ng' , 'DPM04' , '1989-10-19' )
38
39/*
404) Tạo 1 view có tên ViewEmployees hiển thị thông tin của tất cả nhân viên,
41gồm EmployeeID, Name, BirthDate và DepartmentName (DepartmentName là tên phòng ban mà nhân viên đó là m việc).
42Sau đó, hiển thị dữ liệu của view nà y với 1 cột DepartmentName được sắp xếp tăng dần.
43*/
44CREATE VIEW [ViewEmployees]
45AS SELECT DISTINCT E.EmployeeID, E.NameEmployee, E.BirthDay, D.NameDepartment FROM dbo.Employee E, dbo.Department D
46WHERE E.DepartmentFK = D.DepartmentID
47
48DROP VIEW [ViewEmployees]
49
50SELECT * FROM [ViewEmployees] ORDER BY NameDepartment
51
52-- 5) Tạo 1 câu lệnh select để hiển thị EmployeeID, Name và Age của tất cả nhân viên mà sinh sau 1975.
53SELECT EmployeeID, NameEmployee, (YEAR(GETDATE()) - YEAR(BirthDay)) AS 'Age' FROM dbo.Employee
54
55-- 6) Tạo 1 hà m thủ tục stored procedure có tên ProcDeleteDepartment với tham số là @departmentId.
56-- Hà m thá»§ tục nà y xóa phòng ban vá»›i DepartmentID mà được nháºp và o từ tham số @departmentId. Viết lá»i gá»i thá»§ tục
57ALTER PROC ProcDeleteDepartment @departmentID CHAR(5)
58AS
59BEGIN
60 IF NOT EXISTS (SELECT * FROM dbo.Department WHERE DepartmentID = @departmentID)
61 BEGIN
62 PRINT N'○ Mã Department nà y không tồn tại!'
63 END
64
65END
66GO
67
68EXEC ProcDeleteDepartment '@DPM02'