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 - Thiết kế CSDL quản lý sở thú - SQL Server

Bài tập - Thiết kế CSDL quản lý sở thú - SQL Server

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

Xây dựng CSDL phục vụ cho sở thú gồm các bảng như sau

1. Bảng Room (Thông tin từng chuồng trong sở thú)

- id: kiểu dữ liệu int

- name: nvarchar(20)

- max: int -> số lượng động vật tối đa

2. Thông tin động vật (Animal)

- id: int

- name: nvarchar(50)

- age: int -> tuổi của động vật

- buy_at: datetime -> ngày mua động vật vể sở thú

- room_id: int -> mã chuồng đang nuôi động vật

3. Loại thức ăn (FoodType)

- id: int

- name: nvarchar(50)

- price: float -> giá tiền / 1 kg hoặc item của sản phẩm

- amount: float -> số lượng còn lại trong sở thú

4. Quản lý thức ăn (FoodAnimal)

- food_id: int

- animal_id: int


Yêu cầu:

1. Tạo bảng trên

2. Tạo primary key & foreign key cho từng bảng -> Không tạo trong câu lệnh create table

3. Thêm mỗi bảng 5 bản ghi dữ liệu

4. Xem thông tin động vật gồm các trường sau: tên chuồng, tên động vật, tuổi, ngày mua về

5. Xem thông tin những chuồng có số động vật đang lưu vượt quá max của chuồng đó

6. Xem thông tin những chuồng còn so khả năng lưu thêm động vật vào

7. Viết proc có tham số là @animalId -> cho phép xem được thông tin loại thức ăn của động vật này.


Bình luận



Chia sẻ từ lớp học

hieuvm0512 [community,C2010L]

Ngày viết: 17:23 18/04/2021



create database zootopia 

use zootopia

create table Room
(
ID int primary key identity(1,1),
name nvarchar(25),
chuong int,
check (chuong<10)
)

create table Animal
(
ID int primary key identity(1,1),
name nvarchar(50),
age int,
buy_at datetime,
room_id int
)

create table FoodType
(
ID int primary key identity(1,1),
name nvarchar(50),
price float,
amount float
)

create table FoodAnimal
(
food_id int not null,
animal_id int not null
)

drop table FoodAnimal
alter table Animal
add constraint FK_RID foreign key(room_id) references Room(ID)

alter table FoodAnimal
add constraint PK_A Primary key(food_id,animal_id)

alter table FoodAnimal
add constraint FK_Food foreign key(food_id) references FoodType(ID)


insert into Room(name,chuong)
values
('Chuong cho',9),
('Chuong bo',2),
('Chuong lon',5),
('Chuong ga',9),
('Chuong ngua',4)

insert into Animal(name,age,buy_at,room_id)
values
('Corgi',5,'2021-01-05 18:00:00',1),
('Belge',8,'2021-02-05 17:30:00',1),
('Doberman',2,'2021-02-05 15:25:00',1),
('MooMoo',10,'2021-03-05 07:00:00',2),
('COWard',11,'2021-03-06 08:00:00',2),
('Peppa',2,'2021-01-09 19:00:00',3),
('Egypt',5,'2021-03-05 14:00:00',4),
('Big Black Cock',1,'2021-01-06 06:00:00',4),
('EggMachine',1,'2021-01-06 09:00:00',4),
('Al',12,'2021-01-18 16:00:00',5)

insert into FoodType(name,price,amount)
values
('Gieng',5.000,3.4),
('Gung',10.000,5.4),
('Weed',500.000,2.5),
('SaOt',10.000,4.3)

insert into FoodAnimal(food_id,animal_id)
values
(1,1),
(1,2),
(1,3),
(2,7),
(2,8),
(2,9),
(3,4),
(3,5),
(4,6),
(4,10)

drop table FoodAnimal
select *from Animal
alter table FoodAnimal
add constraint FK_Fad foreign key(animal_id) references Animal(ID)

select Room.name 'Ten chuong', Animal.name 'Ten Dong Vat', Animal.age 'Tuoi', Animal.buy_at 'Ngay mua'
from Animal,Room
where Room.ID=Animal.room_id

select Room.ID 'Ma Chuong', Room.name 'Ten chuong', Count(Animal.room_id) 'So luong'
from Animal,Room
where Room.ID=Animal.room_id
group by Room.name,Room.ID
Having Count(Animal.room_id)>2

select Room.ID 'Ma Chuong', Room.name 'Ten chuong', Count(Animal.room_id) 'So luong'
from Animal,Room
where Room.ID=Animal.room_id
group by Room.name,Room.ID
Having Count(Animal.room_id)<10

create proc LTA 
@animalid int
as
select Animal.name 'Ten Vat Nuoi', FoodType.name 'Loai Thuc An'
from Animal,FoodAnimal,FoodType
where Animal.ID = FoodAnimal.animal_id
and FoodType.ID = FoodAnimal.food_id
and @animalid = FoodAnimal.animal_id

exec LTA 7

drop proc LTA

create trigger Xoa_Food on FoodType

instead of delete
as
begin
delete from FoodAnimal where food_id in (select id from deleted)
delete from FoodType where ID in (select id from deleted)
end

drop trigger Xoa_Food
delete from FoodType
where ID = 1


select*from Animal
Select*from Room
Select*from FoodType
Select*from FoodAnimal



Đã sao chép!!!