oracle脚本如何写,怎样写sql脚本
接触数据库这么多年,这个问题也被问了无数遍。
做过很多数据库模型设计,最近的两次:
一次是设计了四百来张表的系统,整个系统的脚本统一xml管理,其中90%的脚本都出自我手。
另一次是设计了200来张表的系统,整个团队的能力很强,我只是出了几个脚本的模板。
关于写脚本,概括起来也就三点:基础知识、业务知识、逻辑思维
基础知识
是指掌握的数据库基础理论知识,以Oracle数据库来说,包括数据库的体系架构、系统视图、常用函数、分析函数、正则表达式、隐式转换、空值理论等。
熟悉这些基础理论知识,能让你写出来的脚本简洁、漂亮,一定程度上提升脚本的性能
业务知识
是指底层的数据架构,数据对接的业务含义。数据架构不仅要了解整个系统的表架构、每张表的主键、表之间的关系、字段的含义与约束,还要了解数据在各个表之间的流转,以及,实际存放的数据是怎样的。
逻辑思维能力
就是考验你能不能在脑海中把各个表之间的关联关系画出来,针对业务需求去构建实现方法(其实不止是sql脚本、java语言、hadoop技术道理都是一样的)
谈完理论,接下来说说实践。
拿到一个功能或者提数的需求之后,怎么写sql?
跟写java代码一样:需求分析、设计、开发、测试。
不一样的是,做事的方式略有不同。
1、需求分析第一要搞清楚功能或者提数的目标,或者说你做这件事的意义何在。
很多需求拿到手的时候,只是非常简单的几个字。对方提需求的时候并不了解系统多复杂,也不关心你实现多麻烦,需求提出人的要求很简单,你把我要的东西给我就成了。
要的是什么?不就这几点嘛,这你都看不明白?
接下来做需求分析,就要搞清楚对方到底要什么,已什么样的展现形式提供更合适。谈话过程中你要结合你了解的系统功能,你了解的业务知识,准确夯定对方要表达的内容,落实成为可以从系统中获取到的东西。
如果你接触过的展现形式多,那就可以在谈需求时给对方多一些选择,尽量提供一些与对方目标偏离比较小、又能节省很多开发工作量的方案。
2、设计
写脚本的设计,与java开发的设计方式是完全迥异的,前段时间也有幸听到另一位仁兄提到过。
写脚本,第一你要清楚所需要的数据可以从哪些表(集合)中获取,表之间如何关联。
第二,希望你大学里学的集合的概念、集合运算的公理、定理还记得,如果记得,能更好的梳理思路。甚至思路不清晰的时候把他们抽象成集合,运用集合的理论去简化、验证。
第三,你要熟悉各种理论上的注意事项,比如空值,not
in会出错,为什么会出错呢?比如偷懒字符串相等不加单引号有时报错有时不报错,原因是什么?比如过滤条件加在where、join、having上的区别是什么?对效率和执行结果分别有什么影响?
3、开发
基础牢固、思路清晰、目标明确的话,开发真的是简单的不能再简单了。最近有位同事跟我一起做开发,应该深有体会,他做了一周,没做对,我做了半天,告诉他,这就是我需要的结果。
4、测试
很多人都不会测试,写完了就写完了,最多重新审一下逻辑。
正向来讲
写完一个提数脚本,最起码要确认出来的总数据量是跟期望的一样的,如果你还不清楚你的期望值,那你该好好检讨。
确认完总量,就需要检查每一列的内容,检查最基础的,要做一下group by,看看都有什么内容,分别多少条。
第三步,就是抽查,或者根据别人的成果核对。抽查就是抽单个人的记录,出来的结果是不是跟系统中的实际情况相符。
反向来讲
开发一个功能,会有各种各样的异常导致你的数据出问题。
比如,数据库中没加限制,该列可以为空,如果为空,你的程序会不会报错?
比如,入参、出参的某个参数的长度超长,输入内容超出限定范围,你的程序能不能返回友好的提示?
比如,计算量太大时,你的程序执行会怎样处理?你的计算量上限是多少?有没有跟其他人统一约定?
针对测试的经验之谈:不要只在最后一步做集成测试,把你的工作拆分成一项项逻辑简单、容易掌控、容易验证的脚本。
啰啰嗦嗦写了这么多,都是一些大白话。如果你觉得看了完全没概念,那么只能说你在数据库方面的实践经验太少。如果你觉得写的太基础,那应该是前辈了。。。
sunseawind原创,如果你喜欢,转载请注明出处。
oracle脚本如何写,怎样写sql脚本相关推荐
- ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL、DBA必备)
ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 文章目录 ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 前 ...
- datagrip 导出 Oracle 数据库结构和数据到sql脚本中
文章目录 1. 问题描述 2. 数据库右键 -- 仅对 MySQL 和 PostgreSQL 有效 1. MySQL 备份 -- mysqldump 2. PostgreSQL 备份 -- pgdum ...
- mysql 导入导出脚本_MySQL导入和导出sql脚本
MySQL导入和导出sql脚本 首先,使用mysqldump命令的前提是,在Cmd中进入mysql安装目录下的bin目录下,才可以使用该命令. 我的mysql安装在E:盘,所以,首先进入bin目录下: ...
- mysql执行文件脚本文件_MySQL执行外部sql脚本文件的命令
sql脚本是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中(我们称之为"sql脚本文件"),然后通过相关的命令执行这个sql脚本文件.基本步骤如下: ...
- mysql脚本文件生成工具_SqlDataToScript(sql脚本生成工具)
SQLServer脚本生成工具是一款用于SQLServer表生成Insert脚本的工具,可以快速的为您自动生成脚本,而且格式规范,可自动生成也可以手动生成.. 相关软件软件大小版本说明下载地址 SQL ...
- mysql定时sql脚本_定时执行的SQL脚本
因为要同步一个表,所以每天要同步一次数据,但是对SQL不是精通的我,为了测试写了一段代码来测试定时功能 创建一个存储过程,是用来插数据的,没有输出和输出参数 create or replace pro ...
- linux执行.sql脚本 db2,DB2 如何执行sql脚本
如果现在没有连接则你的sql种一定需要有连接的sql. 如果现在已经建立连接,且在db2=>字符下,则必须按照如下操作: db2 => quit c:/> db2 -stvf sql ...
- mysql 脚本导出_mysqldump导出完整sql脚本
#导出某个数据库--结构+数据 shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt db_name |gzip -9 > /db ...
- linux mysql 写shell_Linux—编写shell脚本操作数据库执行sql
修改数据库数据 在升级应用时,我们常常会遇到升级数据库的问题,这就涉及到sql脚本的编写. 一般我们会通过写sql脚本,然后将xxx.sql脚本放到数据库中进行source xxx.sql执行.本篇文 ...
- sqlplus中批量执行sql脚本(Oracle)
假如我们有很多sql脚本,如果一个一个sql脚本文件执行显然过于麻烦,下边我们演示sql脚本批量执行. 解决方法:将需要执行的sql脚本文件的@绝对路径 存放到一个脚本文件中,然后执行这个脚本文件就可 ...
最新文章
- nodejs 获取文件路径_Qunar 酒店 Nodejs 覆盖率收集实践
- swift学习之set和get方法
- 这个拖后腿的“in”
- HTML 元素内部添加预加载
- 现代软件工程 - 期末评比及作业要求
- OpenCV--solvePnp
- 计算机中如何取消家长控制用户,电脑怎么设置家长控制? 家长控制功能的使用技巧...
- 读《JavaScript语言精粹(修订版)》心得
- 车险赔付率分析报告_汽车保险理赔案例分析报告.ppt
- 用gambit学博弈论--完全信息动态博弈-扩展式表述的博弈的纳什均衡
- mysql+语句+when_MySQL的CASEWHEN语句
- 新玺配资:板块轮动加快 多看少动均衡配置为主
- Primary主类和Catagory分类都存在相同事件
- mac重置系统_如何在Mac上重置打印系统
- android中倒计时计算器,死亡计算器生命倒计时下载-死亡计算器生命倒计时软件下载 v8.8.0_5577安卓网...
- 深入学习VMware vSphere---基础知识
- 2、Ubuntu介绍加环境搭建详细教程
- Android(Java)加载SO文件
- 词霸天下---词根234【-zo(o)- 动 物】
- mySQL 事物提交成功不等于数据保存成功