教材订单管理系统数据库设计及查询练习
一、数据库表设计
表(一)T_book
| 属性名 |
数据类型 |
可否为空 |
含 义 |
备注 |
| Book_id |
int |
否 |
教材 id |
主键 |
| Book_name |
varchar(20) |
否 |
教材名称 |
|
| Book_isbn |
varchar(20) |
否 |
教材 ISBN 编号 |
|
| Book_author |
varchar(10) |
否 |
作者 |
|
| Book_publisher |
varchar(20) |
否 |
出版社 |
|
| Book_price |
float |
否 |
价格 |
|
表(二)T_Order
| 属性名 |
数据类型 |
可否为空 |
含 义 |
备注 |
| Order_id |
int |
否 |
订单id |
主键 |
| Book_id |
int |
否 |
教材 id |
外键 |
| OrderDet_num |
int |
否 |
数量 |
|
| Order_time |
datetime |
是 |
订单时间 |
默认当前时间 |
二、数据示例
表(一)T_book
| Book_id |
Book_name |
Book_isbn |
Book_author |
Book_publisher |
Book_price |
| 101 |
《Hadoop大数据分析》 |
9787113259198 |
高永彬 |
中国铁道出版社 |
108 |
| 102 |
《Python程序设计》 |
9787302515326 |
夏敏捷 |
清华大学出版社 |
56 |
| 103 |
《Html5+CSS3从入门到精通》 |
9787517054160 |
未来科技 |
水利水电出版社 |
70 |
| 104 |
《Linux管理与服务》 |
9787040395853 |
钱峰 |
水利水电出版社 |
48 |
表(二)T_Order
| Order_id |
Book_id |
OrderDet_num |
Order_time |
| 1 |
102 |
127 |
2021-06-24 |
| 2 |
101 |
127 |
2021-06-24 |
| 3 |
104 |
127 |
2021-06-24 |
| 4 |
102 |
55 |
当前时间 |
三、SQL 查询练习
A.查询T_book表中作者是‘高永彬’的教材名称、ISBN号
SELECT Book_name, Book_isbn
FROM T_book
WHERE Book_author = '高永彬';
B.查询‘水利水电出版社’所有的教材信息
SELECT *
FROM T_book
WHERE Book_publisher = '水利水电出版社';
C.查询价格在50到80之间的教材名称、价格
SELECT Book_name, Book_price
FROM T_book
WHERE Book_price >= 50 AND Book_price <= 80;
D.查询T_Order表中订单时间为‘2021-06-24’的订单信息
SELECT *
FROM T_Order
WHERE Order_time = '2021-06-24';
E.修改T_Order表第4个订单的订单数量为126
UPDATE T_Order
SET OrderDet_num = 126
WHERE Order_id = 4;
F.查询T_Order表中id为‘102’的教材被征订的总数量
SELECT SUM(OrderDet_num)
FROM T_Order
WHERE Book_id = 102;
G.查询ISBN号为‘9787040395853’的教材信息
SELECT *
FROM T_book
WHERE Book_isbn = '9787040395853';
H.统计订单表中订单id,教材名称,订购总数
SELECT Order_id, T_book.Book_name, SUM(OrderDet_num) AS total_quantity
FROM T_Order
INNER JOIN T_book ON T_Order.Book_id = T_book.Book_id
GROUP BY Order_id, T_book.Book_name;