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 - Quản lý bãi đỗ xe - Lập trình SQL Server

Bài tập - Quản lý bãi đỗ xe - Lập trình SQL Server

by GokiSoft.com - 19:51 07/01/2022 6,202 Lượt Xem

Tạo 3 bảng sau

1. BaiDoXe gồm các column sau

- Tên bãi

- mã bãi đỗ xe

- địa chỉ

2. ThongTinGui gồm các column sau

- tên xe

- biển số xe

- mã bãi đỗ xe

- Ngày gửi xe

- Ngày lấy xe

- Chi phí

- id chủ sở hữu

3. Bảng chủ sở hữu

- id chủ sở hữu

- tên

- số cmtnd

- địa chỉ


Yêu cầu :

- Tạo bản trên

- chèn mỗi bảng 3 bản nghỉ

- Hiển thị thông tin người gửi xe (số cmtnd, tên, tên bãi đỗ xe, biển số xe)

- Tạo Stores

-> Đếm số lượt gửi xe của 1 khách hàng theo id_chusohuu

-> Tính tổng chi phí gửi xe của 1 khách hàng theo id chủ sở hữu

-> Kiểm tra chủ sở hữu xe có đang gửi xe hay không -> In thông tin -> số CMTND, tên, tên bãi đỗ xe, biển số xe

-> Hiển thị tất cả các xe mà id chủ sở hữu đã từng gửi xe -> In Bãi đỗ xe, biển số xe.

Bình luận



Chia sẻ từ lớp học

Nguyễn đình quân [T2008A]

Ngày viết: 03:39 09/12/2020



create database baidoxe
use baidoxe

create table baidoxe(
	id int primary key identity(1,1),
	name nvarchar(100),
	address nvarchar(100)
)

insert into baidoxe(name, address)
values
('ABC', 'nguyen phan dong'),
('DEF', 'Lang Ha Long '),
('GHI', 'Hoang Dao Thuy hang')
select * from baidoxe

create table thongtingui(
	bienso nvarchar(20) primary key,
	car_name nvarchar(100),
	baidoxe_id int references baidoxe(id),
	ngaygui date,
	ngaylay date,
	price money,
	id_owner int references chusohuu(id)
)

insert into thongtingui
values
('30A12345', 'Toyota', 1, '2020-02-01', '2020-02-02', '900000', 2),
('30B23456', 'Hyundai', 3, '2020-11-01', '2020-12-01', '3000000', 3),
('30C34567', 'BMW', 2, '2020-11-01', '2020-11-05', '800000', 1)
select * from thongtingui

create table chusohuu(
	id int primary key identity(1,1),
	name nvarchar(100),
	cmnd nvarchar(20),
	address nvarchar(100)
)

insert into chusohuu(name, cmnd, address)
values
('Nguyen A', '001123456789', 'Thai Ha'),
('Nguyen B', '001987654321', 'Lieu Giai'),
('Nguyen C', '001456123789', 'Le Van Luong')
select * from chusohuu

create view info_nguoigui
as 
select cmnd, chusohuu.name as 'Chu Xe', baidoxe.name as 'Bai Do Xe', thongtingui.bienso
from chusohuu, baidoxe, thongtingui
where chusohuu.id=thongtingui.id_owner and baidoxe.id=thongtingui.baidoxe_id

select * from info_nguoigui

create proc soluotguixe
	@owner_id int
as
begin
	select id_owner, count(price) as 'So luot gui' 
	from thongtingui  
	where id_owner = @owner_id
	group by id_owner
end

exec soluotguixe 1

create proc phiguixe
	@owner_id int
as
begin
	select id_owner, sum(price) as 'Tong chi phi gui xe' 
	from thongtingui  
	where id_owner = @owner_id
	group by id_owner
end

exec phiguixe 1

create proc kiemtra
	@owner_id int
as
begin
	select id_owner, chusohuu.name as 'owner name', baidoxe.name as 'ten bai do', thongtingui.bienso
	from thongtingui, chusohuu, baidoxe
	where chusohuu.id=thongtingui.id_owner and baidoxe.id=thongtingui.baidoxe_id and id_owner = @owner_id
	group by id_owner, chusohuu.name, baidoxe.name, thongtingui.bienso
end

exec kiemtra 1

create proc kiemtra_xe
	@owner_id int
as
begin
	select id_owner, baidoxe.name as 'ten bai do', thongtingui.bienso
	from thongtingui, baidoxe
	where baidoxe.id=thongtingui.baidoxe_id and id_owner = @owner_id
	group by id_owner,  baidoxe.name, thongtingui.bienso
end

exec kiemtra_xe 1


Nguyễn Xuân Mai [T2008A]

Ngày viết: 14:33 08/12/2020



create database baidoxe
use baidoxe

create table baidoxe(
	id int primary key identity(1,1),
	name nvarchar(100),
	address nvarchar(100)
)

insert into baidoxe(name, address)
values
('ABC', 'Nguyen Chi Thanh'),
('DEF', 'Lang Ha'),
('GHI', 'Hoang Dao Thuy')
select * from baidoxe

create table thongtingui(
	bienso nvarchar(20) primary key,
	car_name nvarchar(100),
	baidoxe_id int references baidoxe(id),
	ngaygui date,
	ngaylay date,
	price money,
	id_owner int references chusohuu(id)
)

insert into thongtingui
values
('30A12345', 'Toyota', 1, '2020-12-01', '2020-12-12', '600000', 2),
('30B23456', 'Hyundai', 3, '2020-11-01', '2020-12-01', '1500000', 3),
('30C34567', 'BMW', 2, '2020-12-01', '2020-12-05', '400000', 1)
select * from thongtingui

create table chusohuu(
	id int primary key identity(1,1),
	name nvarchar(100),
	cmnd nvarchar(20),
	address nvarchar(100)
)

insert into chusohuu(name, cmnd, address)
values
('Nguyen A', '001123456789', 'Thai Ha'),
('Nguyen B', '001987654321', 'Lieu Giai'),
('Nguyen C', '001456123789', 'Le Van Luong')
select * from chusohuu

create view info_nguoigui
as 
select cmnd, chusohuu.name as 'Chu Xe', baidoxe.name as 'Bai Do Xe', thongtingui.bienso
from chusohuu, baidoxe, thongtingui
where chusohuu.id=thongtingui.id_owner and baidoxe.id=thongtingui.baidoxe_id

select * from info_nguoigui

create proc soluotguixe
	@owner_id int
as
begin
	select id_owner, count(price) as 'So luot gui' 
	from thongtingui  
	where id_owner = @owner_id
	group by id_owner
end

exec soluotguixe 1

create proc phiguixe
	@owner_id int
as
begin
	select id_owner, sum(price) as 'Tong chi phi gui xe' 
	from thongtingui  
	where id_owner = @owner_id
	group by id_owner
end

exec phiguixe 1

create proc kiemtra
	@owner_id int
as
begin
	select id_owner, chusohuu.name as 'owner name', baidoxe.name as 'ten bai do', thongtingui.bienso
	from thongtingui, chusohuu, baidoxe
	where chusohuu.id=thongtingui.id_owner and baidoxe.id=thongtingui.baidoxe_id and id_owner = @owner_id
	group by id_owner, chusohuu.name, baidoxe.name, thongtingui.bienso
end

exec kiemtra 1

create proc kiemtra_xe
	@owner_id int
as
begin
	select id_owner, baidoxe.name as 'ten bai do', thongtingui.bienso
	from thongtingui, baidoxe
	where baidoxe.id=thongtingui.baidoxe_id and id_owner = @owner_id
	group by id_owner,  baidoxe.name, thongtingui.bienso
end

exec kiemtra_xe 1


Do Trung Duc [T2008A]

Ngày viết: 13:47 07/12/2020



create DATABASE QUANLY_BAIDOXE
use QUANLY_BAIDOXE

create table BaiDoXe(
TenBaiDoXe nvarchar(100),
BaiDoXe_ID int identity(1,1),
DiachiBaiDoXe nvarchar(200),
constraint PK_BaiDoXe primary key (BaiDoXe_ID)
)

create table ChuSoHuu(
ChuSoHuu_ID int identity(1,1),
TenChuSoHuu nvarchar(100),
CMT_ChuSoHuu nvarchar(200),
DiachiChuSoHuu nvarchar(200),
constraint PK_ChuSoHuu primary key (ChuSoHuu_ID)
)

create table ThongTinGui(
TenXe nvarchar(50),
BienSoXe nvarchar(50),
BaiDoXe_ID int,
NgayGuiXe date,
NgayLayXe date,
ChiPhiGuiXe money,
ChuSoHuu_ID int,
constraint PK_ThongTinGui primary key (BienSoXe)
)

--ADD du lieu 
insert into BaiDoXe(TenBaiDoXe,DiachiBaiDoXe)
values
('Bai do so 1','So 1, duong Xuan Thuy'),
('Bai do so 2','So 3, duong Nguyen Khanh Toan'),
('Bai do so 3','So 5, duong Quan Hoa')


insert into ChuSoHuu(TenChuSoHuu,CMT_ChuSoHuu,DiachiChuSoHuu)
values
('Do Trung Duc','012793988', 'Dich Vong Hau, Cau Giay'),
('Tran Van Diep','033451388', 'QuanHoa, Cau Giay'),
('Nguyen Tuan Anh','0125963543', 'NghiaDo, Cau Giay')

insert into ThongTinGui(TenXe,BienSoXe,BaiDoXe_ID,NgayGuiXe,NgayLayXe,ChiPhiGuiXe,ChuSoHuu_ID)
values
('Fortuner', '30K36523', 1 , '2020-12-01', '2020-12-05', 40, 2), 
('Mazda6', '30K35534', 2 , '2020-11-01', '2020-12-05', 300, 3),
('BWVX5', '30K12339', 3 , '2020-11-15', '2020-12-05', 180, 1)

select * from ChuSoHuu
select * from BaiDoXe
select * from ThongTinGui

--Hien thong tin nguoi gui xe
select ChuSoHuu.TenChuSoHuu, ChuSoHuu.CMT_ChuSoHuu, ThongTinGui.TenXe, ThongTinGui.BienSoXe
FROM ChuSoHuu inner join ThongTinGui on ChuSoHuu.ChuSoHuu_ID = ThongTinGui.ChuSoHuu_ID

--Tao Store
----Đếm số lượt gửi xe của 1 khách hàng theo id_chusohuu
create PROC demsoluotguixe_theoChuSoHuuID 
	@ChuSoHuuID int
AS
BEGIN
	select  count(ChiphiGuiXe) from ThongTinGui where ChuSoHuu_ID = @ChuSoHuuID
END

alter PROC demsoluotguixe_theoChuSoHuuID 
	@ChuSoHuuID int
AS
BEGIN
	select ChuSoHuu_ID, count(ChiphiGuiXe) as 'TongSoLuotGui' from ThongTinGui  where ChuSoHuu_ID = @ChuSoHuuID
	group by  ChuSoHuu_ID
END

EXEC demsoluotguixe_theoChuSoHuuID '1'

----Tinh tong chi phi gui xe của 1 khách hàng theo id_chusohuu

create PROC tinhtongchiphi
	@ChuSoHuuID int
AS
BEGIN
	select ChuSoHuu_ID, sum(ChiphiGuiXe) as 'Tongchiphi' from ThongTinGui  where ChuSoHuu_ID = @ChuSoHuuID
	group by  ChuSoHuu_ID
END

EXEC tinhtongchiphi '1'

----Kiểm tra chủ sở hữu xe có đang gửi xe hay không -> In thông tin -> số CMTND, tên, tên bãi đỗ xe, biển số xe
select * from ChuSoHuu
select * from BaiDoXe
select * from ThongTinGui

create PROC kiemtrathongtin
	@ChuSoHuu_ID int
AS
BEGIN
	select ChuSoHuu.CMT_ChuSoHuu, ChuSoHuu.TenChuSoHuu, BaiDoXe.TenBaiDoXe, ThongTinGui.BienSoXe
	from ThongTinGui inner join BaiDoXe on ThongTinGui.BaiDoXe_ID = BaiDoXe.BaiDoXe_ID inner join ChuSoHuu on ThongTinGui.ChuSoHuu_ID = ChuSoHuu.ChuSoHuu_ID
	where ThongTinGui.ChuSoHuu_ID = @ChuSoHuu_ID
END

EXEc kiemtrathongtin 1
EXEc kiemtrathongtin 4

----Hiển thị tất cả các xe mà id chủ sở hữu đã từng gửi xe -> In Bãi đỗ xe, biển số xe.

create PROC Hienthitatcaxedagui 
	@ChuSoHuu_ID int
AS
BEGIN
	select ThongTinGui.BienSoXe, BaiDoXe.DiachiBaiDoXe 
	from ThongTinGui, BaiDoXe 
	where ThongTinGui.BaiDoXe_ID = BaiDoXe.BaiDoXe_ID and ThongTinGui.ChuSoHuu_ID =  @ChuSoHuu_ID
END

--Sua lai truong khoa chinh cua bang Thong tin gui 
alter table ThongTinGui
drop constraint PK_ThongTinGui

alter table ThongTinGui
add ThongTinGui_ID int identity (1,1)

alter table ThongTinGui
Add constraint PK_ThongTinGui  primary key (ThongTinGui_ID)


insert into ThongTinGui(TenXe,BienSoXe,BaiDoXe_ID,NgayGuiXe,NgayLayXe,ChiPhiGuiXe,ChuSoHuu_ID)
values
('Fortuner', '30K36523', 3 , '2020-12-07', '2020-12-10', 30, 2), 
('Mazda6', '30K35534', 1 , '2020-12-08', '2020-12-10', 20, 3),
('BWVX5', '30K12339', 1 , '2020-11-30', '2020-12-12', 120, 1)

EXEc Hienthitatcaxedagui 2


vuong huu phu [T2008A]

Ngày viết: 17:05 04/12/2020



create database Parking_management
use Parking_management

create table parking(
parking_id int identity (1,1) primary key,
parking_Name nvarchar(100),
parking_address nvarchar(200)
)

create table Information(
name_car nvarchar (100),
license_plates nvarchar (10),
parking_id  int ,
Parking_date date,
Pick_up_date date,
Price money,
owner_id int
)
alter table Information
add constraint fk_parking_id 
foreign key (parking_id) references parking(parking_id)

alter table Information
add constraint fk_owner_id 
foreign key (owner_id) references owner(owner_id)

create table owner (
owner_id int identity (1,1) primary key,
owner_name nvarchar (100),
cmtnd int,
address_of_owner nvarchar (200)
)

insert into  parking(parking_Name,parking_address)
values
('A','Ha Noi'),
('B','Hai Duong'),
('C','Hai Phong')

insert into Information(name_car,license_plates,parking_id,Parking_date,Pick_up_date,Price,owner_id)
values
('Car1','s11111','1','2020-11-04','2020-12-01','100','1'),
('Car2','s19991','2','2020-09-04','2020-09-09','100','2'),
('Car3','s22221','3','2020-03-04','2020-05-04','100','3')

insert into owner(owner_name,cmtnd,address_of_owner)
values
('aa','1121212','Ha Noi'),
('ss','2323232','Ha Noi'),
('dd','4343434','Hai Phong')



----Hiển thị thông tin người gửi xe (số cmtnd, tên, tên bãi đỗ xe, biển số xe
select owner.cmtnd,owner.owner_name,parking.parking_Name,Information.license_plates
from owner,parking,Information
where Information.owner_id = owner.owner_id and parking.parking_id = Information.parking_id

-----Đếm số lượt gửi xe của 1 khách hàng theo chu so huu
alter proc Dem_so_luot
@id_chusohuu int
as
begin
select owner.cmtnd,owner.owner_name,parking.parking_Name,Information.license_plates,count(owner.owner_id) as number_of_turns
from owner,parking,Information
where Information.owner_id = owner.owner_id and parking.parking_id = Information.parking_id and owner.owner_id = @id_chusohuu
group by owner.cmtnd,owner.owner_name,parking.parking_Name,Information.license_plates
end

exec Dem_so_luot 1

----Tính tổng chi phí gửi xe của 1 khách hàng theo id chủ sở hữu
create proc tong_chi_phi
@id_chusohuu int
as
begin
select owner.cmtnd,owner.owner_name,parking.parking_Name,Information.license_plates, sum(Information.Price)as tong_chi_phi
from owner,parking,Information
where Information.owner_id = owner.owner_id and parking.parking_id = Information.parking_id and owner.owner_id = @id_chusohuu
group by owner.cmtnd,owner.owner_name,parking.parking_Name,Information.license_plates
end

exec tong_chi_phi 1

create proc chu_so_huu
@ten nvarchar(100)
as
begin
select owner.cmtnd,owner.owner_name,parking.parking_Name,Information.license_plates
from owner,parking,Information
where Information.owner_id = owner.owner_id and parking.parking_id = Information.parking_id and owner.owner_name = @ten
group by owner.cmtnd,owner.owner_name,parking.parking_Name,Information.license_plates
end

exec chu_so_huu aa

create proc cac_xe_chu_so_huu_gui
@id int
as
begin
select parking.parking_Name,Information.license_plates
from owner,parking,Information
where Information.owner_id = owner.owner_id and parking.parking_id = Information.parking_id and owner.owner_id = @id 
end

exec cac_xe_chu_so_huu_gui 1


To Khuong Loc [C2002L]

Ngày viết: 19:53 25/08/2020

lỗi hangout đây thầy

Đã sao chép!!!