SQL查询与数据库设计实战:课程选课人数与商品订单统计
20 浏览量
更新于2024-06-28
收藏 67KB DOCX 举报
在本次数据库复习资料中,我们主要关注了SQL语句的应用,特别是涉及到多张关联表的操作。首先,针对一个学生选课系统的数据库,有三个核心表:学生表、课程表和选课表。学生表包含了学号、姓名、性别和出生日期等信息,而课程表则记录了课号、课程名、学分等内容。选课表则是连接学生和课程的桥梁,通过学号和课号来记录学生的选课情况以及成绩。
问题1要求查询每门课的选课人数,即使没有被选修也要显示。通过使用LEFT OUTER JOIN关键字,我们可以确保所有课程都出现在结果中,同时对课程表进行GROUP BY操作,按照课程名进行分组,并使用COUNT函数计算每个课程的选课人数。SQL语句如下:
```sql
SELECT 课程.课号, 课程名, COUNT(学号) as 人数
FROM 课程
LEFT OUTER JOIN 选课 ON 选课.课号 = 课程.课号
GROUP BY 课程.课号, 课程名, 课程.课号 AS 人数;
```
接着,另一个场景涉及到了商品销售相关的数据库,包括商品表、订单表、订单详情表和顾客表。商品表包含商品编号、名称、单价和库存数量等信息;顾客表记录了顾客编号和姓名;订单表用于存储订单编号和可能的关联信息;订单详情表则链接订单和商品,提供更详细的购买记录。在这个复杂的关系中,如果需要创建一个数据库来管理这些数据,我们需要定义相应的表结构,并可能执行SQL命令来初始化数据库,如:
```sql
CREATE DATABASE ShoppingCart;
USE ShoppingCart;
CREATE TABLE Customers (
CustomerID char(5) PRIMARY KEY,
CustomerName varchar(50)
);
CREATE TABLE Products (
ProductID char(5) PRIMARY KEY,
ProductName varchar(50),
Price money,
StockQuantity int
);
CREATE TABLE Orders (
OrderID char(10) PRIMARY KEY,
OrderDate datetime
);
CREATE TABLE OrderDetails (
OrderID char(10),
ProductID char(5),
Quantity int,
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
```
这里创建了一个名为"ShoppingCart"的数据库,并定义了各个表及其字段,以支持商品销售、顾客管理和订单管理的功能。通过这些表之间的外键约束,可以轻松跟踪订单详情,包括购买的商品数量和总价。
这两个例子展示了SQL语言在处理不同场景下的数据查询和数据库设计中的重要性,涵盖了左连接查询、聚合函数(COUNT)以及数据库结构的创建与设计。理解并熟练运用这些概念,对于数据库管理员和开发人员来说是至关重要的技能。
2020-03-10 上传
Mmnnnbb123
- 粉丝: 747
- 资源: 8万+
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍