IMG-LOGO
×

Giáo Trình Môn Học

Khoá học lập trình SQL

Kiến Thức Core SQL Server

[Video] Hướng dẫn cách xác định kiểu dữ liệu, primary key, foreign key trong SQL - My SQL - SQL Server [Video] Hướng dẫn thao tác nhiểu bảng - select - multi table - join, inner join trong SQL Server [Video] Hướng dẫn phân tích CSDL - phân tích bảng, column trong bản - Học lập trình SQL, SQL Server [Video] Hướng dẫn tìm hiểu create, alter , insert table và bản chất primary key, foreign key - SQL Server [Video] Hướng dẫn tìm hiểu select, and, in, like, not in,group by .. having, order by asc, desc - SQL Server [Video] Quản lý sinh viên (create, alter, update, insert, select) - Lập trình SQL Server

View SQL Server

[Video] Hướng dẫn tìm hiểu view trong SQL Server Bài Giảng: Hướng dẫn tìm hiểu view + proc trong SQL - Lập trình SQL Server

Store & Procedure

[Video] Hướng dẫn tìm hiểu proc procedure trong SQL Server - Lập trình SQL Server, MySQL Bài Giảng: Xây dự hệ thống đưa đón học sinh bằng xe bus của Trường Học - Lập trình SQL Server [Video] Xây dựng CSDL quản lý điểm danh aptech - Lập trình SQL Server/MySQL

Trigger

[Video] Học Trigger qua ví dụ - quản lý nhà trên phố - Lập trình SQL Server [Video] Hướng dẫn học trigger qua bài quản lý điểm danh Aptech - Lập trình SQL Server [Video] Bài tập - Quản lý nhân khẩu - Lập trình SQL Server - MySQL




Trang Chủ SQL Server/MySQL Bài tập - Xây dự hệ thống đưa đón học sinh bằng xe bus của Trường Học - Lập trình SQL Server

Bài tập - Xây dự hệ thống đưa đón học sinh bằng xe bus của Trường Học - Lập trình SQL Server

by GokiSoft.com - 21:41 10/01/2022 5,297 Lượt Xem

Bạn được yêu cầu xây dựng database cho hệ thống đưa đón học sinh bằng xe bus cho một trường học có nghiệp vụ như sau

- Bảng học viên gồm các trường : id tự tăng, Tên, địa chỉ, họ tên bố, me, sđt của bố, số điện thoại của mẹ, ngày sinh, giới tính, id địa điểm đón xe.

- Thông tin xe bus : id tự tăng, biển số xe, loại xe, số ghế ngồi, id tài xế

- Tài xế: id tự tăng, tên, sđt, giới tính, địa chỉ

- Lộ trình xe đi : id xe bus, id địa điểm đón

- Địa điểm đón xe : id tự tăng, địa chỉ


Yêu cầu thiết kế hệ thống trên.

Thêm mỗi bảng 5 bản ghi

Tạo Proc xem thông tin lộ trình đi của xe bus : tài xế, biển số xe, địa chỉ đón.

Tạo Proc xem thông tin sinh viên theo biển số xe.

Tao View xem thông tin sinh viên gồm : Tên SV, giới tính, địa chỉ đó

Bình luận



Chia sẻ từ lớp học

Do Trung Duc [T2008A]

Ngày viết: 10:41 04/12/2020



create database Bus_Symtem_Management
use Bus_Symtem_Management

create table Student(
Id int identity(1,1),
StudentName  nvarchar(100),
Address nvarchar(100),
ParentsName nvarchar(100),
ParentsPhone nvarchar(100),
Bithday date,
Id_TakePlace int,
constraint PK_Student primary key (Id)
)

create table BusInformation(
Id int primary key identity(1,1),
Number nvarchar(20),
Type nvarchar(100),
Seats int,
DriverId int,
)

create table DriverInformation(
DriverId int primary key identity(1,1),
DriverName nvarchar (100),
DriverPhone nvarchar (100),
DriverSex nvarchar (100),
DriverAddress nvarchar (200)
)

create table BusRoad(
id_busroad int primary key identity  (1,1),
AddressPlace nvarchar (200)
)

alter table BusRoad
drop  PK__BusRoad__3AF689CBBB74427A

alter table BusRoad
drop column id_busroad

alter table BusRoad
drop column AddressPlace

alter table BusRoad
add Id_TakePlace int


create table AddressPlaceDetail(
Id_AddressPlace int primary key identity  (1,1),
AddressPlace nvarchar (200)
)

alter table Student 
add constraint FK_Id_TakePlace_Student foreign key (Id_TakePlace) references AddressPlaceDetail(Id_AddressPlace)

alter table BusInformation
add constraint FK_DriverId_BusInformation foreign key (DriverId) references DriverInformation(DriverId)

alter table BusRoad
add constraint FK_id_busroad_BusRoad foreign key (id_busroad) references BusInformation(Id)

alter table BusRoad
drop FK_id_busroad_BusRoad

alter table BusRoad
add Bus_Id int 

alter table BusRoad
add constraint FK_Bus_Id_BusRoad foreign key (Bus_Id) references BusInformation(Id)

alter table BusRoad
add constraint FK_Id_TakePlace_BusRoad foreign key (Id_TakePlace) references AddressPlaceDetail(Id_AddressPlace)

--Them ban ghi
insert into  AddressPlaceDetail(AddressPlace)
values
('So 90 Cau Giay'),
('So 1 Linh Dam'),
('So 2 Hoang Mai'),
('So 9 Dong Da'),
('So 8 Tay Ho')
select *from AddressPlaceDetail

select *from Student
INSERT into Student(StudentName,Address,ParentsName,ParentsPhone,Bithday,Id_TakePlace)
values
('Do Trung Duc','Cau Giay,Ha Noi','Bo cua Duc','123456781','1991-12-20',1),
('Tran Van Diep','Linh Dam,Ha Noi','Bo cua Diep','123456782','1991-12-20',2),
('Nguyen Tuan Anh','Cau Giay,Ha Noi','Bo cua Tuan Anh','123456783','1991-12-20',1),
('Pham Hong Quang','Dong Da,Ha Noi','Bo cua Quang','123456784','1991-12-20',4),
('Le Minh Son','Cau Giay,Ha Noi','Bo cua Son','123456785','1991-12-20',5)


insert into DriverInformation(DriverName,DriverPhone,DriverSex,DriverAddress)
values
('Hoang Van A','123456789','Nam','Hanoi'),
('Hoang Van B','123456789','Nam','Hanoi'),
('Hoang Van B','123456789','Nam','Hanoi'),
('Hoang Van D','123456789','Nam','Hanoi'),
('Hoang Van E','123456789','Nam','Hanoi')

select * from DriverInformation

insert into BusInformation(Number,Type,Seats,DriverId)
values
('30K6523','FordTransit',16,1),
('30K6524','FordTransit',16,2),
('30K6525','Huyndai',29,3),
('30K6123','FordTransit',16,4),
('30K4226','Huyndai',29,5)

select *from BusInformation

insert into BusRoad(Bus_Id,Id_TakePlace)
values
(1,4),
(2,2),
(3,3),
(4,1),
(5,5)

select *from AddressPlaceDetail
select *from Student
select *from DriverInformation
select *from BusInformation
select *from BusRoad

create PROC xemthongtinlotrinhxebus
AS
BEGIN
	select DriverInformation.DriverName, BusInformation.Number, AddressPlaceDetail.AddressPlace
	FROM DriverInformation, BusInformation, AddressPlaceDetail, BusRoad
	where DriverInformation.DriverId = BusInformation.DriverId and BusInformation.Id = BusRoad.Bus_Id and BusRoad.Id_TakePlace = AddressPlaceDetail.Id_AddressPlace
END
exec xemthongtinlotrinhxebus

create Proc xemthongtinsinhvientheobiensoxe
   @biensoxe nvarchar(20)
AS
BEGIN 
	select Student.* , BusInformation.Number
	from Student, BusInformation, BusRoad
	where Student.Id_TakePlace = BusRoad.Id_TakePlace and BusRoad.Bus_Id = BusInformation.Id and BusInformation.Number =  @biensoxe
END

EXEC xemthongtinsinhvientheobiensoxe '30K6523'

--Tao View xem thông tin sinh viên gồm : Tên SV, giới tính, địa chỉ đón

alter table Student
add StudentSex nvarchar(10)

update Student set StudentSex =' Nam'

create view xemthongtinsinhvien 
AS
select Student.StudentName, Student.StudentSex, AddressPlaceDetail.AddressPlace
FROM Student inner join AddressPlaceDetail on Student.Id_TakePlace = AddressPlaceDetail.Id_AddressPlace

select * from  xemthongtinsinhvien 

--Đánh index (clustered index) cho column họ tên bố trên bảng học viên

create clustered Index ci_ParentsName on Student(ParentsName) --HOilaiThay

--Tao trigger khong cho phep xoa dia chi don xe don
create trigger khongxoadiadiemdon on AddressPlaceDetail
for delete
AS
BEGIN
	if (select AddressPlace from deleted) <> ''
	begin
	print N'‘Do not delete AddressPlace'
	rollback transaction 
	end
END

select * from AddressPlaceDetail
DELETE AddressPlace FROM AddressPlaceDetail WHERE Id_AddressPlace = 1 

select * from AddressPlaceDetail

select *from Student

create trigger nhapnamsinh on Student
for insert
as
BEgin
	if (select Bithday from inserted ) > '1990-1-1'
	begin
		print N'Nam sinh khong hop le'
		rollback transaction
		end
End

INSERT into Student(StudentName,Address,ParentsName,ParentsPhone,Bithday,Id_TakePlace)
values
('Testriger1','Cau Giay,Ha Noi','Bo cua triger1','123456781','1989-12-20',1)

INSERT into Student(StudentName,Address,ParentsName,ParentsPhone,Bithday,Id_TakePlace)
values
('Testriger2','Cau Giay,Ha Noi','Bo cua triger2','123456781','1994-12-20',1)






Đã sao chép!!!