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ý quán cafe - Lập trình SQL Server - MySQL

Bài tập - Quản lý quán cafe - Lập trình SQL Server - MySQL

by GokiSoft.com - 20:06 14/01/2022 16,965 Lượt Xem

Thiết kế CSDL phục vụ trong việc quản lý quán cafe. Yêu cầu đề bài như sau

- Quản lý được danh mục sản phâm của quán cafe

- Quản lý loại đồ uống trong quán cafe

- Quản lý nhân viên của hàng

- Quản lý đơn hàng -> mỗi đơn hàng được nhập vào bởi một nhân viên (Nghĩa là có thể xem đc đơn hàng này do nhân viên nào nhập) - Chú ý : Mỗi đơn hàng có thể có nhiều loại đồ uống

- Quản lý được khách hàng tới của hàng -> Đơn hàng sẽ mapping được vs khách hàng đã đặt đồ uống.

Yêu cầu nghiệp vụ

- Thiết kế CSDL & Nhập dữ liệu cho mỗi bảng 5 bản ghi

- Đánh index trên ít nhất 1 bảng. Tự chọn cột để đánh index

- Hiển thị danh sách loại đồ uống theo một danh mục -> yêu cầu viết truy vấn sql, tạo store (phần này làm 2 ý tách biết)

- Hiển thị danh mục sản phẩm trong 1 đơn hàng -> yêu cầu viết truy vấn sql và tạo 1 store cho chức năng này

- Hiển thị danh mục các đơn hàng theo mã KH.

- Hiển thị doanh thu theo ngày bắt đầu và ngày kết thức -> yêu cầu viết theo store.

Bình luận



Chia sẻ từ lớp học

Nguyên Phấn Đông [T2008A]

Ngày viết: 13:38 09/12/2020



create table category(
 id int primary key identity(1,1),
 name nvarchar(50)
)
go

create table product(
 id int primary key identity(1,1),
 title nvarchar(50),
 price money,
 cat_id int references category(id),
 thumnail nvarchar(500),
 update_at datetime,
 create_at datetime,
 content text
)
go

create table staff(
 id int primary key identity(1,1),
 fullname nvarchar(50),
 birth date,
 address nvarchar(500)
)
go

create table customer(
 id int primary key identity(1,1),
 fullname nvarchar(50),
 phone_number nvarchar(20),
 address nvarchar(100)
)
go

create table ordder(
 id int primary key identity(1,1),
 staff_it int foreign key (id) references staff(id),
 customer_id int foreign key (id) references customer(id),
 total_price int,
 order_date date
 )
 go

 create table ordder_detal(
   id int primary key identity(1,1),
   order_id int foreign key (order_id) references ordder(id),
   product_id int foreign key(product_id) references product(id),
   amuont int,
   price int,
   total_price int 
)
go


Trần Văn Lâm [T2008A]

Ngày viết: 22:45 08/12/2020



create database coffe_vip
use coffe_vip
create table catagory(
id int primary key identity(1,1),
name nvarchar(10)
)
create table product(
id int primary key identity(1,1),
title nvarchar(150),
price money,
thumbnail nvarchar(500),
updated_at datetime,
created_ad datetime,
content text,
id_cat int,
constraint fk_id_cat foreign key (id_cat) references catagory(id)
)
create table staff(
id int primary key identity(1,1),
fullname nvarchar(100),
birthday datetime,
address nvarchar(200)
)
create table customer(
id int primary key identity(1,1),
fullname nvarchar(150),
phone_number nvarchar(30),
address nvarchar(200)
)
create table order_drinks(
id int primary key identity(1,1),
staff_id int,
constraint fk_staff_id foreign key (staff_id) references staff(id),
customer_id int,
constraint fk_customer_id foreign key (customer_id) references customer(id),
total_price int,
order_date datetime
)
create table order_detail(
id int primary key identity(1,1),
order_id int,
product_id int,
constraint fk_order_id foreign key (order_id) references order_drinks(id),
constraint fk_product_id foreign key (product_id) references product(id),
amount int,
price money,
total_price int
)
create index ci_name on catagory(name)
select * from catagory
insert into catagory(name)
values
('teamilk'),
('coffe'),
('bia'),
('juice'),
('coca')
select * from product
insert into product(title,price,thumbnail,updated_at,created_ad,content,id_cat)
values
('tra sua tran chau',10,'uelxxxxx',2020-10-10,2020-10-20,'abcxyz',2),
('coffe da',20,'uelxxxxx',2020-10-10,2020-10-20,'abcxyz',1),
('bia ha noi',30,'uelxxxxx',2020-10-10,2020-10-20,'abcxyz',2),
('nuoc cam',40,'uelxxxxx',2020-10-10,2020-10-20,'abcxyz',3),
('coca cola',50,'uelxxxxx',2020-10-10,2020-10-20,'abcxyz',1)
select * from staff
insert into staff(fullname,birthday,address)
values
('Leo Messi',2020-15-05,'Argentina'),
('C.Ronaldo',2020-15-05,'Portugal'),
('T.V.Lam',2020-15-05,'VietNam'),
('A.Grizman',2020-15-05,'France'),
('H.Xavi',2020-15-0,'Spain')
select * from customer
insert into customer(fullname,phone_number,address)
values
('Tran Van A','1234444','Hanoi'),
('Tran Van B','133243','Hanam'),
('Tran Van C','3223242','ThaiBinh'),
('Tran Van D','3414141','NamDinh'),
('Tran Van E','31213123','HaiPhong')
select * from order_drinks
insert into order_drinks(staff_id,customer_id,total_price,order_date)
values
(1,2,50,2020-12-11),
(1,1,60,2020-12-11),
(2,4,70,2020-12-11),
(3,2,55,2020-12-11),
(4,3,60,2020-12-11)
select * from order_detail
insert into order_detail(order_id,product_id,amount,price,total_price)
values
(1,2,2,20,40),
(1,1,1,10,10),
(4,2,3,20,60),
(2,2,3,20,60),
(2,1,1,10,10)
select catagory.name,product.title,product.price,product.id_cat
from catagory,product
where catagory.id = product.id_cat
     and catagory.name = 'coffe'
create proc lam_dz
as
begin
select catagory.name,product.title,product.price,product.id_cat
from catagory,product
where catagory.id = product.id_cat
     and catagory.name = 'coffe'
end
exec lam_dz
select * from product
select catagory.id,product.title,product.price,product.thumbnail,product.updated_at,product.created_ad,product.content,product.id_cat
from catagory,product
where catagory.id = product.id_cat
    and product.title = 'nuoc cam'
create proc lam_pro
as
begin
select catagory.id,product.title,product.price,product.thumbnail,product.updated_at,product.created_ad,product.content,product.id_cat
from catagory,product
where catagory.id = product.id_cat
    and product.title = 'nuoc cam'
end
exec lam_pr


Nguyễn Xuân Mai [T2008A]

Ngày viết: 17:14 07/12/2020



create database quanlyquancafe
use quanlyquancafe

create table category(
	category_id int primary key identity(1,1) not null,
	category_name nvarchar(50)
)

insert into category(category_name)
values
('Coffee'),
('Smoothie'),
('Tea'),
('Ice blended'),
('Vietnamese Coffee')

select * from category

create table nhanvien(
	nhanvien_id int primary key identity(1,1) not null,
	nhanvien_name nvarchar(100),
	nhanvien_birthday date,
	nhanvien_gender nvarchar(50)
)

insert into nhanvien(nhanvien_name, nhanvien_birthday, nhanvien_gender)
values
('Nguyen A', '1997-02-12', 'Nam'),
('Nguyen B', '1999-12-07', 'Nam'),
('Nguyen C', '1997-02-14', 'Nam'),
('Nguyen D', '2000-10-10', 'Nu'),
('Nguyen E', '1998-11-05', 'Nu')

select * from nhanvien

create table drink(
	drink_id int primary key identity(1,1) not null,
	drink_name nvarchar(50),
	drink_price money,
	category_id int references category(category_id)
)

insert into drink(drink_name, drink_price, category_id)
values
('Banana Smoothie', '50000', '2'),
('Bac Siu', '60000', '5'),
('Americano', '60000', '1'),
('Earl Grey', '40000', '3'),
('Matcha Ice Blend', '50000', '4')

select * from drink

create table customer(
	customer_id int primary key identity(1,1) not null,
	customer_name nvarchar(100),
	customer_birthday date,
	customer_gender nvarchar(50)
)

insert into customer(customer_name, customer_birthday, customer_gender)
values
('Pham Hoang Minh', '2002-03-04', 'Nam'),
('Bach Bao Chau', '2003-11-22', 'Nu'),
('Phan Vu', '2004-06-05', 'Nam'),
('Ly Ngoc Khue', '2004-11-25', 'Nu'),
('Tran Ngan Giang', '2003-10-28', 'Nu')

select * from customer

create table donhang(
	id int primary key identity(1,1) not null,
	nhanvien_id int references nhanvien(nhanvien_id),
	customer_id int references customer(customer_id),
	donhang_price money,
	donhang_date datetime
)

insert into donhang(nhanvien_id, customer_id, donhang_price, donhang_date)
values
(5, 2, 120000, '2020-12-07 12:30'),
(2, 4, 60000, '2020-12-03 17:40'),
(3, 1, 40000, '2020-12-05 20:37'),
(1, 5, 100000, '2020-12-07 12:00'),
(4, 3, 200000, '2020-12-07 09:30')

select * from donhang

create table order_detail(
	donhang_id int references donhang(id),
	category_id int references category(category_id),
	drink_id int references drink(drink_id),
	donhang_quantity int,
	price money
)

insert into order_detail(donhang_id, category_id, drink_id, donhang_quantity, price)
values
(1, 1, 3, 2, 120000),
(2, 5, 2, 1, 60000),
(3, 3, 4, 1, 40000),
(4, 2, 1, 1, 50000),
(4, 4, 5, 1, 50000),
(5, 2, 1, 1, 50000),
(5, 4, 5, 1, 40000),
(5, 3, 4, 1, 60000),
(5, 4, 5, 1, 50000)

select * from order_detail

create nonclustered index CI_category_name on category(category_name)

select category.category_name, drink.drink_id, drink.drink_name, drink.drink_price
from category, drink
where category.category_id=drink.category_id and category.category_name = 'Coffee'
group by category.category_name, drink.drink_id, drink.drink_name, drink.drink_price

CREATE PROC proc_view_drink_info
	@categoryname nvarchar(50)
AS
BEGIN
	SELECT category.category_name, drink.drink_id, drink.drink_name, drink.drink_price, drink.category_id
	FROM category, drink
	WHERE category.category_id=drink.category_id
		AND category.category_name = @categoryname
	GROUP BY category.category_name, drink.drink_id, drink.drink_name, drink.drink_price, drink.category_id
END

EXEC proc_view_drink_info 'Smoothie'

CREATE PROC proc_view_order_info
AS
BEGIN
	SELECT order_detail.donhang_id, category.category_name, drink.drink_name, drink.drink_price, order_detail.donhang_quantity, order_detail.price
	FROM category, drink, order_detail
	WHERE category.category_id=drink.category_id and drink.drink_id=order_detail.drink_id
	GROUP BY order_detail.donhang_id, category.category_name, drink.drink_name, drink.drink_price, order_detail.donhang_quantity, order_detail.price
END

EXEC proc_view_order_info

CREATE PROC proc_view_order_info2
	@customerid int
AS
BEGIN
	SELECT donhang.customer_id, customer.customer_name, category.category_name, drink.drink_name, drink.drink_price, order_detail.donhang_quantity, order_detail.price
	FROM category, drink, donhang, customer, order_detail
	WHERE category.category_id=drink.category_id and drink.drink_id=order_detail.drink_id 
		and customer.customer_id=donhang.customer_id and order_detail.donhang_id=donhang.id 
		and [email protected]
	GROUP BY donhang.customer_id, customer.customer_name, category.category_name, drink.drink_name, drink.drink_price, order_detail.donhang_quantity, order_detail.price
END

EXEC proc_view_order_info2 3

CREATE PROC proc_view_income_info
	@date1 date, @date2 date
AS
BEGIN
	SELECT sum(donhang.donhang_price) as 'Income'
	FROM donhang
	WHERE donhang.donhang_date between @date1 and @date2
END

EXEC proc_view_income_info '2020-12-01', '2020-12-31'


Do Trung Duc [T2008A]

Ngày viết: 16:42 07/12/2020



- Bang danh muc san pham: category
	- id -> int -> primary key -> identity(1,1)
	- name -> nvarchar(50)

- Bang san pham: product
	- id -> int -> primary key -> identity(1,1)
	- title -> nvarchar(150)
	- price -> money
	- cat_id -> int -> references category(id)
	- num -> int
	- thumbnail -> nvarchar(500) -> link hinh anh
	- updated_at -> datetime
	- created_at -> datetime
	- content text

- Quan ly nhan vien: staff
	- id -> int -> primary key -> identity(1,1)
	- fullname -> nvarchar(50)
	- birthday -> date
	- address -> nvarchar(200)

- Quan ly khac hang: customer
	- id -> int -> primary key -> identity(1,1)
	- fullname -> nvarchar(50)
	- phone_number -> nvarchar(20)
	- address -> nvarchar(200)

- Quan ly don hang:
	- Order
		- id -> int -> primary key -> identity(1,1)
		- staff_id -> int -> foreign key -> references staff (id)
		- customer_id -> int -> foreign key -> references customer (id)
		- total_price -> int (tong so tien cua don hang)
		- order_date: datetime

	- order_detail
		- id -> int -> primary key -> identity(1,1)
		- order_id -> int -> foreign key -> references order (id)
		- product_id -> id -> foreign key -> references product (id)
		- amount
		- price
		- total_price


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

Ngày viết: 16:03 07/12/2020



--tao database :Quanlycafe
create database Quanlycafe
go
-- kich hoat database : Quanlycafe
use Quanlycafe
go
--Tao bang category
create table category (
   id int primary key indentity(1,1),
   name nvarchar(50) not null
)
go
create table product(
  id int primary key indentity(1,1),
  title nvachar(50) not null
  description text,
  price float,
  category_id  int references category(id)
)
go
create table staff (
  id int primary key indentity(1,1),
  full name  nvarchar(50) not null
  address nvarchar(200),
  gender nvarchar(20),
  birthday	data,
  phone_number  nvarchar (20)
)
go
create table customer(
   id int primary key indentity(1,1),
   full  name nvarchar(50) not null
   phone_ number nvarchar(150),
   email nvarchar(50)
)
go
 create table order(
     id int primary key indentity(1,1)
     customer_id int references customer (id),
	 staff_id int references staff(id),
	 price _total float
)
go
create table orderdetail(
   id int  primary key indentity (1,1),
   product_id int refere product (id),
   price float,
   num int,
   price_total float,
   order_id int refences orders (id)
)
go
insert into category (name)
values
('cafe'),
('nuoc ep'),
('sinh to')
go
select=from  category 


insert into product(title, price, category_id)
values 
('cafe sua ' 32000, 1),
('cafe nong' 52000, 3),
('cafe da'45000,2),
('nuoc ep oi ' 50000, 2),
('nuoc ep cam'50000,2),
('nuoc ep nho'70000,4),
go
insert into staff(fullname, gender , birthday, phone_number, address)
values
('tran van son','nam','22-03-1987','0366908296','ha noi'),
('nguyen dinh quan','nam','12-06-1895','066675889',' hai phong'),
('pham cong minh',' nam ','15-06-1975','0366908293','ha noi')
go
insert into customer (fullname, email, phone_number)
values
('la thi A','[email protected]','0366908296'),
('phan van B','[email protected]','0366908296'),
('nguyen thi C',' [email protected]','0366908296'),
('nguyen dinh D','[email protected]','0366908296quan'),
go
insert into orders( customer_id , staff_id,price_total)
values
(1,1,96000)
go
update orders set  created at='2020-08-02' where id =1
insert into orders( customer_id , staff_id,num ,price_total)
values
(1,1,32000 ,3,96000)

insert into orders( customer_id , staff_id,price_total , created_at)
values
(1,1,183000,'2020-08-03')
go
insert into orders( customer_id , staff_id,num ,price_total)
values
(3,1,32000 ,3,96000),
(2,4,80000,2,320000)
go 
select category , name categoryname,


Đã sao chép!!!