首页 > 数据库 >呵,老板不过如此,SQL还是得看我

呵,老板不过如此,SQL还是得看我

时间:2024-09-07 14:55:01浏览次数:15  
标签:不过如此 出来 代码 明细 接口 SQL 老板 底层


2018年7月,大三暑假进行时,时间过得飞快,我到这边实习都已经一个月了。

我在没工作之前,我老是觉得生产项目的代码跟我平时自学练的会有很大的区别

以为生产项目代码啥的都会规范很多,比如在接口上会做很多安全性的工作(自学练的时候确实学到的类似的案例),代码设计上会有很多设计模式的应用。

但实际上,并不像想象中那样。跟以前平时练的没有太大的区别,生产项目的代码也写不出花,接口的参数也没啥校验,甚至发现很多地方都是bad smell

最大的区别就是代码量很大,数据库里躺着百来张密密麻麻的表,代码上的Controller/Service/Dao的数量足以占满整个屏幕。

呵,老板不过如此,SQL还是得看我_数据

在这个过程中会出现一些之前没学过的技术栈,比如lombok/svn/swagger等,不过这些都很好学,不是什么大问题。

最近令我头疼的是SQL,SQL是真的难写。我本以为我是写Java的,但大多数时间都是去写SQL。

我是很想去理解我所负责的接口对应的底层数据库表是怎么设计的,但始终都没领悟到。

我只知道,我可以在这个表查这个字段,在那个表查那个字段,前端要什么数据,我就把这俩张表给关联起来,一起查出来就好了。

一个接口出去的数据,底层关联5、6张表,是很正常的事。

有的其实我也不知道为啥要关联的,反正看到历史代码是这么写,我就这么复制上去就完了

呵,老板不过如此,SQL还是得看我_sql_02

还是老样子,不乱改历史的代码,只管往里面增加,除非是真的被测试妹子报出bug了。

对接口的性能也没有啥要求,写出来的SQL索引不索引啥的,根本就不需要我操心,接口能出数据,我就是成功的。

有次需求也是令我发麻,既要得到明细的聚合值,又要展示对应明细数据,这可真的难倒我了。

我琢磨了两天,都没把SQL给写出来,后来就直接去问领导了,说这我卡住了,让他帮帮我。

“前两天不是有个需求嘛?既要统计每个售货机货道补货的数量,又要将每个货道的具体商品查询出来,然后要分页显示,我这边SQL没写出来”

他琢磨了会,说帮我看看,然后让我多训练些SQL相关的题。

我又回工位继续琢磨了,训练SQL相关的能力,我想到的就只有LeetCode了。没想到我还要在LeetCode刷SQL啊。

呵,老板不过如此,SQL还是得看我_数据库_03

过了几小时,他喊我去他工位,发了一条SQL给我,让我看行不行,符不符合需求。

我都不用跑sql,这明显就不行。(原来他也写不出来)

我对老板说:”不行哦,这只有统计信息,还要展示sku的明细呢,我根据你的SQL,在这基础上我再想想

最后我嵌套多个子查询,组合使用concatgroup_concat完成信息查询,然后在程序里解析字符串完成数据的组装。

这能写出来真不容易,感觉自己Java技术没啥进展,SQL能力倒是提升了不少。

呵,老板不过如此,SQL还是得看我_技术栈_04

虽说系统貌似用了SpringCloud,但是没看到远程调用的地方,SpringCloud只有在配置文件才能看到他的踪影,不过我在业余的时间里学了下。我终于踏进了分布式/微服务领域的大门了。

其他的就没啥特别的,来来去去都是针对后台做一些增删改查,也没啥机会接触到高级的技术栈。

上班一个月了,领到工资的感觉是真的爽,行政是支付宝转账的,实打实的3500转在支付宝上。

底层程序员》我的故事持续连载中…


标签:不过如此,出来,代码,明细,接口,SQL,老板,底层
From: https://blog.51cto.com/u_12206475/11944994

相关文章

  • MySQL的安装4000字详解(小白也能看得懂!!!!)
    MySQL的安装与使用2.1.1MySQL发展历史和版本2.2.1MySQL的安装与配置1.下载MySQL安装文件2.选择下载版本3.安装配置MySQL4.选择安装路径,推荐换到D盘!!!!!5.执行安装6.完成安装,点击next7.配置8.设置账户9.配置服务器10.开始执行11设置router配置,默认即可12.输入密码,检查是否......
  • MySQL——视图(二)视图管理(5)修改视图
    1.使用CREATEORREPLACEVIEW语句修改视图        在MySQL中,使用CREATEORREPLACEVIEW语句修改视图,其基本语法格式如下所示:CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]VIEWview_name[(column_list)]ASSELECT_statement[WITH[CASCADE......
  • 如何实现mysql高可用
      1.机器资源耗尽2.单点故障3.认为操作4.网络 单点故障解决方案?1.搭建mysql主从集群(双主,一主多从,多主多从)2.可以用MyCat,ShardingJdbc实现 A节点同步到B节点流程?1.从库通过IO线程,连接到主库,并且向主库要对应的binlog文件2.主库通过dump线程获取binlog文......
  • MySQL触发器trigger的使用
    Q:什么是触发器?A:触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的特性:1、有beginend体,beginend;之间的语句可以写的简单或者复杂2、什么条件会触发:I、D、U3、什么时候触发:在增删改前或者后4、触发频率:针对......
  • MySQL 性能压测工具-sysbench使用详解
    sysbench是一个开源的、基于LuaJIT(LuaJIT是Lua的即时编译器,可将代码直接翻译成机器码,性能比原生lua要高) 的、可自定义脚本的多线程基准测试工具,也是目前用得最多的MySQL性能压测工具。基于sysbench,我们可以对比MySQL在不同版本、不同硬件配置、不同参数(操作系统和数据......
  • JDBC,SQL注入,事务,C3P0与Druid连接池(最详细解析)bh
    JDBCJDBC(JavaDataBaseConnectivty,Java数据库连接)API,是一种用于执行Sql语句的JavaAPI,可以为关系型数据库提供统一的访问,其由一组Java编写的类和接口组成.JDBC驱动程序起初,SUN公司推出JDBCAPI希望能适用于所有数据库,但实际中是不可能实现的,各个厂商提供的数据库......
  • SQL中的事务、索引、视图、游标、触发器、存储过程概念详解
    SQL中的事务、索引、视图、游标、触发器、存储过程概念详解前几天面试的时候,面试官突然问了句“怎么解释SQL的事务?”,太久没接触了,突然就答不上来这种基础的问题了,好丢捻。于是今天打算整理一下基础概念,发在博客里时刻提醒自己。一、事务想象你正在超市购物。事务就好比你从挑......
  • 升级MySQL5.7,开发要注意哪些坑
    前段时间,将线上MySQL数据库升级到了5.7。考虑到可能产生的不兼容性,在升级之前,确实也是战战兢兢,虽然测试环境,开发环境早在半年前就已提前升级。基于前期的调研和朋友的反馈,与开发相关的主要有两点:sql_modeMySQL5.6中,其默认值为"NO_ENGINE_SUBSTITUTION",可理解为非严格模式,譬如......
  • sqlserver下利用sqlps.exe白名单绕杀软
    sqlserver下利用sqlps.exe白名单绕杀软前言:在一次攻防里通过sqlserver盲注拿到一个执行命令权限,但是由于是盲注回显很有问题以及有杀软,所以利用起来非常难受而且拿不到webshell或者上线c2,所以才找到这个方法。介绍:sqlps.exe是SQLServer附带的一个具有Microsoft签名的二进制文......
  • SQL 用SP检查两个表中否有内容重复
    SQL用SP检查两个表中否有内容重复ALTERPROCEDURE[dbo].[CheckDuplicateValues] @ShowTypeNVARCHAR(5),@Table1NVARCHAR(128),@Table2NVARCHAR(128),@FieldsNVARCHAR(MAX)ASBEGIN--构建动态SQL查询语句DECLARE@SqlQueryNVARCHAR(MAX) if......