首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL练习题

二、题目 某银行拟开发一套ATM系统软件对客户的账户和交易信息进行管理。该系统的后台数据库为 ATM,该数据库中拥有账户表Account和交易表TransInfo两张表。...,同时账户表中的余额将发生相应的改变。 ​...提示: ​ a、先将用户朱逸群的交易信息向交易表中插入一条数据 ​ b、修改用户朱逸群在账户表中的余额 2) 删除用户朱逸群2014年4月13日的所有交易记录 3) 查询2014年所有存入的交易记录,按存款金额降序排列...中会产生一条交易信息,同时账户表中的余额将发生相应的改变。...提示: a、先将用户朱逸群的交易信息向交易表中插入一条数据 b、修改用户朱逸群在账户表中的余额 */ insert into transinfo values(null,600000001,'支出',800

1.4K20

SQLServer 触发器

SQL Server 触发器 by:授客 QQ:1033553122 什么是触发器 1.触发器是对表进行插入、更新、删除操作时自动执行的存储过程 2.触发器通常用于强制业务规则 3.触发器是一种高级约束...当交易记录过多时,为了不影响数据访问的速度,交易信息表需要定期删除部分数据。当删除数据时,一般需要自动备份,以便将来的客户查询、数据恢复或年终统计等。...交易的方式较多,用户可能用卡消费,也可能用存折消费,存 折的交易信息与卡略有不同,可能不会将交易信息存放在交易表中,而保存在其它表中。但存折和卡对应的帐号余额只有一个。...所以更安全的方案就是:根据账户信 息表中余额的变化来获取交易金额。...为了获取交易余额的变化,我们应该在账户的信息表上创建update触发器 create trigger trig_updadte_bank on bank for update as declare

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    干货 | 多业务线亿级体量,携程是怎么做账务中台的

    原有的账务核心系统存在以下问题: 1)抽象不足:对业务规则抽象不够,如果新增业务需要编码实现 2)隔离不够:系统不同业务的系统流量、数据没有隔离,存在某一业务有问题,影响全局的风险 3)降级策略:不支持...前置系统:账务的业务处理系统,主要负责对上游业务系统的对接,完整账户的拆分等工作。 账务核心系统(原子系统):主要负责账户记账,记录对商户、用户、内部户等客户账的动账及明细。...3)MYCAT Mycat是一个中间件,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理...我们的交易表是通过权重配置来分库,通过权重可以进行数据的自由分配。DB支持友好的扩容,下线和故障切换。我们有一套故障切换的方案,如果某个分片出现dbconnect异常,我们会抛送支付的监控系统。...2)生成账户快照 生成快照的方式有两种: 从账户余额中获取 交易明细按账户汇总发生额更新快照 相较于数亿账户而言,每日发生交易的则要少得多。采用动账汇总的方式,对于数据库的操作更少,处理时间更快。

    1.3K41

    (3)账户模块---操作账户余额的最佳实践

    那一定存在一个时刻,流水更新了,但是余额还没更新,也就是说每个事务的中间状态是事实存在的。数据库为了实现一致性,必须保证每个事务的执行过程中,中间状态对其他事务是不可见的。...RU READ-UNCOMMITTED 能读到未提交的数据就是完全不隔离,每个进行中事务的中间状态,对其他事务都是可见的,所以有可能会出现“脏读”常用的隔离级别其实就是 RC 和 RR 两种,其中 MySQL...into values(null,......);3.更新账户表该账户的余额,where条件:只有last_id = 流水id,才进行更新4.检查更新后的影响条件,如果影响条数>0,成功提交事务,如果影响条数为...0,回滚事务,如果更新捕获到异常,也回滚事务,提示给客户端// RR级别下更新账户余额的sql1 mysql> begin;2 Query OK, 0 rows affected (0.00 sec)34...>0,i 正常条件下:如果受影响条数>0,则提交事务,否则回滚事务ii 异常条件下:如果更新出现系统异常,则直接进行事务回滚,返回失败给客户端,因为对于交易系统来说,一般更新账户余额不进行重试操作3.ACID

    73520

    实用五步法教会你指标体系的设计与加工

    如将 “账户编号”、“机构编号”、“客户经理编号”、“客户编号”、“账户状态” 等作为维度,则可以表示各个账户的存款账户余额、各个客户的存款账户余额、各个分行 / 支行的存款账户余额,各个客户经理管理账户的存款账户余额等...所以原子指标是数据模型中维度和度量的组合映射,非一个有真实含义的指标,因为它表示的 “客户” 的 “账户余额”,还没有加上统计周期与计算逻辑,比如客户当日账户余额、客户最近一年平均账户余额等。...如 “当日存款账户余额”,可基于原子指标 “账户余额” 来进行派生,维度选取 “账户编号”、“机构编号”、“客户经理编号”、“客户编号”,计算逻辑选取 “求和”,统计周期选取 “当日”,表示各个账户的当日存款账户余额...、各个客户的当日存款账户余额、各个分行 / 支行的当日存款账户余额,各个客户经理管理账户的当日存款账户余额等。...如 “当日基金账户利润率” 指标的维度有 “机构编号”,“当日基金账户余额” 指标的维度有 “账户编号”、“客户编号”、“机构编号”、“客户经理编号”,则基于这 2 个指标加工的复合指标 “当日基金账户利率

    1.4K31

    对信用卡诈骗 Say NO!百行代码实现简化版信用卡欺诈检测

    一般情况下,客户的余额是存储在Oracle的账户表中的。 怎么将客户余额的变化输出到Flink中,来实现实时的欺诈检测列?...能想到的方案列举如下: 方案1:轮询从Oracle账户表查询余额变更 应用程序按照固定时间间隔去轮询Oracle账户表的数据,检查到某个客户的账户余额发生了变化后,通知Flink进行欺诈检测。...这种方案需要不断轮询Oracle数据库,对有数据库性能影响,并且就算轮询的间隔足够短,还是有可能漏掉了一些账户变更信息,不可取。...这种方案的优点在于直接基于Oracle数据表的修改来做增量的同步(oracle日志中记录账户表修改并提交了,说明客户修改账户是成功的,不用担心Flink通知了,账户表反而写失败了),降低了业务的耦合度,...logminer相对来说是避免漏数据,对数据库性能影响最小的方案,是否有一个类似于logminer而且支持断点续传,对Flink又比较友好的方案?

    71620

    MySQL基础9-事务

    1000,但是李四的账户上却没有增加1000,这在显示中是绝对不允许的。   ...执行成功的情况 七、脏读的案例       说明1:首先将模拟客户端改为read uncommitted 模式   说明2:客户端1和客户端2同时开启一个事务   说明3:在客户端2中修改account...表中数据,但并不提交事务   说明4:在客户端1中读到了客户端2未提交的事务数据,即read uncommitted 模式下会出现脏读。  ...八、不可重复读的案例       说明1:在read committed的隔离模式下     说明2:客户端1和客户端2,同时开启一个事务     说明3:客户端2修改张三余额数据,客户端1未查询到客户端...2未提交的修改,因为查询到就是脏读了     说明4:客户端2提交修改余额的事务,客户端1查询,此时查询到张三的余额数据已经修改,及在一个事务中可以查询到其他已经提交事务对数据的修改,而导致在一次事务中对不同数据查询到的值不一致这就是不可重复读

    15810

    阿里上市数据全纪录

    八名客户分别是美国农场主Peter Verbrugge、铁粉乔丽、淘女郎何宁宁、淘宝卖家劳丽诗、农民网商王志强、电商服务商王淑娟、快递员窦立国和云客服窦碧姬。...所以我在纽交所,今天大家说纽交所就像我们的双十一,无数人为此付出巨大的代价和努力,从明天开始,我们的路程会更加艰难,全世界在关注我们是不是坚守我们的信诺,今天我们融到的不是钱,我们融到的是信任,是所有人对我们的信任...“如果没有余额宝……” 这种假设的结论可以有千千万万种,但它无法规避的事实是,虽然互联网金融既不受资本金管理,也不受贷存比管理,几乎不需要什么成本,但它对金融体系的影响非常大。...暗度陈仓的是,全国有6000亿元人民币安静地躺在余额宝的账户里,一个未来的网络银行雏形正在显现。难怪马云会“卖乖”地讲:“银行若放开存款利率,余额宝死也光荣。” NO.9 与微信冤家路窄?...在未来的移动领域中,谁是老大谁是老二,这场空对陆,甚至太空对航空的战役中,不在一个维度和业态中的比试似乎从一开始就没有太多意义和价值。 NO.10 估值过高?值不值得买?

    1.8K40

    Spring Cloud 中的分布式事务,附源码《一》

    在 seata-server 的/conf/db_store.sql 中 ?...整个业务逻辑由 3 个微服务提供支持: 1、仓储服务:对给定的商品扣除仓储数量。 2、订单服务:根据采购需求创建订单。 3、帐户服务:从用户帐户中扣除余额。 架构图 ?...,建表 sql 在 seata-server 的/conf/dbundolog.sql 中。...当用户下单时,会在订单服务中创建一个订单,然后通过远程调用库存服务来扣减下单商品的库存,再通过远程调用账户服务来扣减用户账户里面的余额,最后在订单服务中修改订单状态为已完成。...nacos-seata-account-server 账户服务 nacos-seata-order-server 订单服务 nacos-seata-storage-server 仓储服务 客户端配置 对

    1.1K10

    Base:Acid的替代方案

    示例模式有两个功能组:用户和交易。每次销售一个商品时,都会在交易表中添加一行,并更新买方和卖方的数据。使用ACID事务,SQL如图3所示。 在用户表中购买和出售额的列可以看作是交易表的缓存。...如何修改SQL语句来弱化一致性取决于如何定义运行时结算的余额。如果它们只是简单的估计,意味着一些事务可以被忽略,那么更改非常简单,如图4所示。 我们现在已经将对用户和交易表的更新解耦了。...为了说明这个概念,在这个例子中,对语法进行了一些修改,并将逻辑简化。通过将持久性消息排成队列,并且和insert在同一事务中,更新用户余额的信息就被获取了。...在余额更新的情况下,您需要一种方法来跟踪哪些更新已经成功操作,哪些还未完成。有一种技术是使用表记录已操作交易的标识。 图6中显示的表跟踪交易ID,哪个余额已被更新,还有用户ID。...幸运的是,这种更新可以通过对SQL的小修改来处理,如图9所示。 通过不允许last_purchase时间向后退,您已经使更新操作顺序不相互影响。您还可以使用此方法来防止无序更新。

    2.3K50

    TDSQL 全时态数据库系统 -- 典型案例

    在腾讯计费业务中,采用将账户余额表(user)和账户流水表(water)按小时/天为周期进行比对的方式,来发现账户余额与交易流水的不一致现象,从而及时对错误交易进行修正。...如现对2018年4月11日的交易进行对账,首先需要得到4月11日期初账户余额表和期末账户余额表,以及当天的交易流水表;然后对账户表通过按用户ID分组,并计算每个用户的期末余额减去期初余额,记为结果A,对流水表按用户...”试算[2],总期初余额代表s_start时的总余额,总期末余额代表s_stop时的总余额,总交易变动代表每块内账户对应产生的流水,如果有数据块内的总账不平,意味着有细账错误,因此要进行步骤2、3所描述的精准对账...对账步骤2—精准对账—对账过程:执行如下SQL,将账户余额块和对应账户流水块进行“快照差连接”,返回结果集中每条记录将含有{交易前余额,交易后余额,交易变动}。...ICDE 2006: 35 [1]不受时限、任意对账:对账的SQL语句中指定快照差即可,FROM子句中涉及的表名等不发生变化,即对账使用的数据源没有改变,故不影响对账流程。

    9.5K2018

    你小子可真刑,居然想篡改微信余额?

    用你们技术的话说,余额就是数据库里的一个值,一条SQL就能搞定。 大强:你以为DBA(数据库管理员)是干什么的?能把这个权限给你吗? 小帅:DBA不就是你兄弟吗,昨天还吃过饭,你俩合伙一起,干一票!...大强:刑刑刑,你小子可真刑,我今天就来给你说说,微信的余额为什么不能改。 1. 直接改微信余额 确实如小帅所说,微信余额在数据库里就是一个数字,这个数字保存在客户账户 中 小帅:就这么简单?...那就是一条SQL的事,这个我都会写update 客户账户表 set 账户余额 = 999999999 where 账户所有者 = '小帅' 大强:第一道防线来了,每个账户都有流水来记录余额变动情况 到日终的时候核对昨天日终余额...这里的应收待清算户已经不是客户账户了,而是属于内部户,只在企业内部可见。 参考:跟着小帅学账务(5) 账户体系 4. 把借贷双方都一起改了 小帅:那...把借记、贷记两个账户的流水和余额都一起改了!...即便你有办法改动所有的内部数据,总不能改动银行的余额吧?

    56150

    凭什么说流处理是未来?

    在 Flink 1.7 中为典型的流处理场景加入了一些非常有趣的功能。比如我个人非常感兴趣的在流式 SQL 中带时间版本的 Join。...这个例子在标准的 SQL 当中实际上并不容易表达,但在我们对 Streaming SQL 做了一点小的扩展以后,这个逻辑表达变得非常简单,我们发现这样的表达有非常多的应用场景。...假设我们想要处理类似下面的事务:如果账户 A 中的余额大于 100,那么从账户 A 中转账 50 元到账户 B。这是个非常简单的两个账户之间进行转账的例子。...让我们用这个例子来放到流处理应用中,来让流处理应用也能提供和数据相同的 ACID 支持: 原子性要求一个转账要不就完全完成,也就是说转账金额从一个账户减少,并增加到另一个账户,要不就两个账户的余额都没有变化...但是有趣的是,流处理的方式对延迟并不是十分敏感,延迟对性能有所影响,但是相比其它很多方案,延迟对流处理的影响要小得多。

    50340

    大厂都是如何处理重复消息的?

    一个幂等的方法,使用同样参数,对它进行多次调用和一次调用,对系统产生影响一样。所以,对幂等方法,无需担心重复执行会改变系统。...示例 不考虑并发,“将账户X的余额设为100元”,执行一次后对系统的影响是,账户X的余额变成了100元。只要提供参数100元不变,执行多少次,账户X余额始终100,这操作就是个幂等操作。...“将账户X余额加100元”,这操作就不是幂等,每执行次,账户余额增加100,执行多次和执行一次对系统的影响(即账户余额)不同。...3.1 数据库唯一约束 比如对于:将账户X余额加100。 可限制对每个转账单,每个账户只能执行一次变更操作。...在转账流水表加条转账记录操作中,由于【转账单ID,账户ID】唯一约束,对同一转账单,同一账户只能插一条记录,后续重复插入操作都会失败,这就实现了幂等。

    2K20

    论篡改微信余额的技术可刑性

    改一个余额很简单吧?用你们技术的话说,余额就是数据库里的一个值,一条 SQL 就能搞定。 大强:你以为 DBA(数据库管理员)是干什么的?能把这个权限给你吗?...大强:刑刑刑,你小子可真刑,我今天就来给你说说,微信的余额为什么不能改。 01、直接改微信余额 确实如小帅所说,微信余额在数据库里就是一个数字,这个数字保存在客户账户中。 小帅:就这么简单?...那就是一条 SQL 的事,这个我都会写 update 客户账户表 set 账户余额 = 999999999 where 账户所有者 = '小帅' 大强:第一道防线来了,每个账户都有流水来记录余额变动情况...这里的应收待清算户已经不是客户账户了,而是属于内部户,只在企业内部可见。 04、把借贷双方都一起改了 小帅:那...把借记、贷记两个账户的流水和余额都一起改了!...即便你有办法改动所有的内部数据,总不能改动银行的余额吧? 至此,小帅终于知道了改动微信余额有多么困难,因此他决定踏踏实实工作,开一家包子铺,走上人生巅峰,不过,这都是后话了。

    35211

    金融行业项目:你每月消费多少?

    image.png 某理财银行有下面3个表。 交易表记录了每天交易的客户交易时间、客户号、消费类型和消费金额。其中,交易类型有两种值:消费和转账。...image.png 1.计算2016年1-3月的消费总金额,并以月份作为列名的格式显示 image.png 1)交易表中的交易类型有两种(消费和转账),所以要对交易类型=消费 进行筛选。...1 select * 2 from 交易表 3 where 交易类型 = "消费" and year(交易时间) = 2016; 2)对交易时间按格式分类(year(),month()),用case when...image.png 1)2016年3月总消费金额 "客户名称“在客户表,交易金额在交易表中,涉及到2个表,所以要用到多表联结。... a.客户名称; 查询结果如下 image.png 2)2016年3月首次达到1288的时间 通过交易表对每个客户的交易金额逐条累计求和,找出最接近交易金额大于或者等于1288的记录。

    1K30

    【基础概念】YashanDB事务管理

    事务可以分为如下两类: 一条或多条DML语句的组合,一起构成对数据库的原子修改 一条DDL语句 以从账户A给账户B转账100元的操作为例,该操作包含以下步骤:减少A账户的余额增加B账户的余额在事务日志中记录转账操作正常情况下...若操作过程中发生了故障,例如余额不足、账户冻结、营业厅断电等情况,事务将无法完整完成,则必须全部回滚。回滚后,所有的账户余额维持原状。...在指定SAVEPOINT前的数据和锁都不受影响,事务仍处于活跃状态,可以继续执行事务操作。...自治事务具有以下特点: 自治事务对主事务中的未提交修改不可见,也不会与主事务共享锁或资源。 自治事务提交后,其他事务即可以对其修改可见,而不需要等待主事务提交。...在PL中,自治事务在发起后,可以自由使用一组SQL语句执行数据修改。在自治事务的范围内,资源独立于其父事务执行。示例如下,详细用法可以查看PL参考手册中相关语法。

    6410
    领券