SQL练习题集:银行数据库操作与查询
4星 · 超过85%的资源 需积分: 9 150 浏览量
更新于2024-09-21
收藏 119KB DOC 举报
"SQL练习作业提供了创建银行数据库Bank的相关表结构和一些基础的查询示例,包括用户信息、卡号信息和交易记录等。通过这些练习,可以加深对SQL语言的理解,尤其是数据插入、选择查询以及联接操作的应用。"
在SQL练习作业中,我们首先创建了一个名为Bank的数据库,并在其中定义了三个表:UserInfo(用户信息)、CardInfo(卡号信息)和TransInfo(交易记录)。以下是对这些表结构的详细说明:
1. 用户信息表(UserInfo):
- uid:用户ID,整型,自增长主键。
- uname:姓名,可变长字符串,长度20,不能为空。
- uage:年龄,整型,限定在18-80之间,不能为空。
- usex:性别,字符型,长度2,只能为"男"或"女",默认为"男",不能为空。
- uaddress:地址,可变长字符串,长度200,默认为"地址不详",可为空。
2. 卡号信息表(CardInfo):
- cid:卡号,整型,自增长主键(从1开始每次增长)。
- cpwd:密码,可变长字符串,长度20,不能为空。
- cbalance:余额,货币类型,必须大于0,不能为空。
- ctime:开卡日期,日期类型,默认为当前日期,不能为空。
- uid:持卡人,整型,外键,表示用户ID,不能为空。
3. 交易记录表(TransInfo):
- tid:交易流水号,整型,自增长主键。
- ttime:交易时间,日期类型,默认为当前日期,不能为空。
- ttype:交易方式,字符型,长度4,只能是"取款"或"存款",默认为"取款",不能为空。
- tcash:交易金额,货币类型,必须大于0,不能为空。
- cid:发生交易的卡号,整型,外键,表示卡号信息表中的cid,不能为空。
接下来,作业中给出了插入测试数据的示例,以及一系列基于这些数据的查询问题,涉及到了基本的SQL查询语句,如SELECT、FROM、WHERE、JOIN等,以及对特定条件的筛选和聚合操作。例如:
- 查询全部人员的交易记录:需要联接UserInfo和TransInfo表,按用户信息展示所有交易记录。
- 查询住在"熔火之心"的人物名称:利用LIKE操作符匹配地址字段。
- 查询在指定日期范围内的交易记录:使用BETWEEN操作符筛选交易时间。
- 查询名字中包含特定字符的人物:使用LIKE操作符和通配符%。
- 查询年龄最大的人物详细信息:使用MAX函数结合ORDER BY和LIMIT子句。
- 统计用户总数:使用COUNT函数。
- 查找未开卡的用户:通过LEFT JOIN或NOT EXISTS找出未关联CardInfo表的用户。
- 查询账户余额:联接UserInfo和CardInfo表,根据用户名查找余额。
- 查询某人的取款次数:统计ttype为"取款"的记录数量。
- 查询余额大于指定人物的用户:使用WHERE子句比较余额并联接表。
- 查询每次交易额都大于2000的银行卡密码:筛选交易金额并联接获取密码。
- 查找开卡后最早交易的用户:通过JOIN和MIN函数找到最早的交易时间。
- 查询存款总额大于取款总额的人物姓名:计算每个用户的存款和取款总额,然后比较。
这些练习题覆盖了SQL的基础用法,对于初学者来说是非常实用的实践练习,有助于巩固和提升SQL查询技能。
2021-10-10 上传
2023-12-09 上传
2024-10-13 上传
2023-07-13 上传
2023-05-27 上传
2024-07-22 上传
2024-09-25 上传
stary1
- 粉丝: 17
- 资源: 12
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常