sql生成可读性逻辑图】的更多相关文章

下面这张图是我自己画的sql逻辑图.规定了一些画法.然后画出来是这样的. 因为经常要读别人的sql,又臭又长,可读性很差,于是想做一个程序自动生成的逻辑图. 为什么不用执行语法树,因为个人觉得语法树可读性也不是很高. 打个比方说,a join b join c ,你explain一下,就会得到执行计划是 1.a join b 2. 上一个结果 join b. 这样对表之间关系的理解不是很有帮助. 因为  a b c 是同一层的表.但是按照执行计划就会有先后顺序. 以下是对上图的解释: 1.每一个…
ilovejinglei 原文 C#中保存datagridview中的数据时报错"动态SQL生成失败.找不到关键信息" 问题描述     相关代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Th…
Rafy 领域实体框架设计 - 重构 ORM 中的 Sql 生成   前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能.由于在 09 年最初设计时,ORM 部分的设计并不是最重要的部分,那里 Rafy 的核心是产品线工程.模型驱动开发.界面生成等.所以当时,我们简单地采用了一个开源的小型 ORM 框架:<Lite ORM Library>.这个 ORM 框架可以生成比较简单的 Sql 语句,以处理一般性…
有个字典表并定期维护,对DBA和开发很重要,终于把他们整合在一起了,看有没问题? 一条SQL生成数据字典,包含所有OPEN用户.表名.字段名.字段序号.字段属性.默认值.是否非空.字段意思.主键标识.外键标识.主键表名.主键字段名.外键表名.外键字段名.外键名.外键标识.外键表用户其中联合外键会出现字段列出现多行,TIMESTAMP(6)(,6)需要手工处理 CREATE TABLE DICT_ZGY_20180814 AS SELECT S.OWNER, S.TABLE_NAME, S.COL…
大家知道,DataSet保存的数据是位于服务器内存里面的原数据库的“副本”.所以用DataSet更新数据的过程就是先对“副本”进行更新,然后 在将“原本”更新,按照我的理解就是把“原本”覆盖掉.具体到过程,首先是要找到需要更新的行,然后赋新值,最后更新原数据库. 要找到需要修改的行,比较方便的做法就是根据记录中的某个值进行查找,这样比用“列号”“行号”什么的方便多了.要做到这一点,首先就是要 给数据库指定一个主键,然后即可按照主键进行查找.要注意的是这个主键必须要是在程序中指定的,并且这个主键不…
查看Linq to Sql生成的sql语句   在控制台项目中,比较简单,直接db.Log = Console.Out;就OK了 但是在其他项目中,需要处理如下: StreamWriter sw = new StreamWriter("F:\\Linqlog.txt", true); db.Log = sw; ......//Linq to Sql代码 sw.Close(); 然后就可以去txt文件中查看了…
/** * PHP通过sql生成CSV文件并下载 * @param string $sql 查询sql,结果为二维数组 * @param array $title 数据,CSV文件标题 * @param boolean $retuen 是否只返回数据 * @param string $filename 文件名 */ function DownLoadCsvBySQL($sql,$title,$retuen=false,$filename='DownLoad.csv'){ $resoure = m…
前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能.由于在 09 年最初设计时,ORM 部分的设计并不是最重要的部分,那里 Rafy 的核心是产品线工程.模型驱动开发.界面生成等.所以当时,我们简单地采用了一个开源的小型 ORM 框架:<Lite ORM Library>.这个 ORM 框架可以生成比较简单的 Sql 语句,以处理一般性的情况. 随着不断使用,我们也不断对 ORM 的源码做了不少改动,让它…
在项目中我需要使用到一个随机数(Random Number),该随机数将作为 Hashtable 中的 Key 用于唯一索引数据,所以需要保持单机唯一性. 同时该随机数还需要具备可排序性以便对数据进行排序. 此时,我可以考虑使用随机字符串<C#生成MongoDB中的ObjectId>,这里的 ObjectId 具备单机唯一性和可排序性. 但另一个需求是,我需要该随机数为 int 或 long 类型,以便与依赖的 Service 进行通信,部分取代 TransactionId 或 Token 的…
BI分析中,经常需要将事实表与时间维度表关联起来,按年/月/日来逐层展示,常用的做法是创建一张日历表,结构类似如下: create table T_BAS_CALENDAR ( d_year ) not null, d_month ) not null, d_day ) not null ); comment on table T_BAS_CALENDAR is '日历表'; comment on column T_BAS_CALENDAR.d_year is '年'; comment on c…
在开发中可能会遇到这几种情况 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要先建一个类 ,头痛 4.如果通过代码生成器要写模版,需要安装或者不想生成一堆不用的类 为了解决上面的不便之处,我封装了一个实体生成类,可以扔到程序里面任意调用 封装类: using System; using System.Collections.Generic; using System.Linq…
在SQLServer中使用该sql语句可以生成GUID:select cast(NEWID() as varchar(36)) as uuid 通过一下语句将GUID中的'-'字符去掉: select SUBSTRING(uuid,1,8)+SUBSTRING(uuid,10,4)+SUBSTRING(uuid,15,4)+ SUBSTRING(uuid,20,4)+SUBSTRING(uuid,25,12) from (select cast(NEWID() as varchar(36)) a…
有时想按日或月生成一个序列,就像2014-1-1.2014-1-2.2014-1-3... 在sql server中可以写个函数来实现. /* 生成一个日期范围,如2014.01.2014.02... @Increment 步进值 @StartDate 开始日期 @EndDate 结束日期 ---------------------- @SelectedRange 返回值名称(多语句表值函数的返回值必须存放在返回值变量中) 返回表的字段和类型: iDate DATETIME, iYear cha…
数据库环境:SQL SERVER 2005 以前用C/JAVA穷举双色球的所有排列,今天想着换成用SQL实现,只生成一柱双色球. 简单说下双色球的规则,双色球由红色球和蓝色球组成,每注投注号码由6个红色球号码和1个蓝色球号码组成. 红色球号码从1--33中选择:蓝色球号码从1--16中选择.同时,一柱号码中,蓝色球不能出现在红色球里. 规则讲完了,我们来看实现,直接上代码,代码里有注释,应该都能看懂 /*生成1-33个号码的球*/ WITH x0 AS ( SELECT number AS ba…
工作好几年了,一直没有写博客,准备捡起来...   以下脚本适用环境:SQL SERVER (starting with 2012)   1.构建序列:   /*1-1:利用交叉连接,推荐下列这种写法*/   SELECT /*2012 开始已支持OFFSET 语法,不再推荐使用TOP N */ s1.i + s2.i + s3.i + s4.i + s5.i + s6.i + s7.i + s8.i + s9.i AS seq ) s1 as i) s2 as i) s3 as i) s4 a…
Ø  简介 在 C# 中与数据交互最常用的语句就是 LINQ 了,而 LINQ to SQL 是最直接与数据库打交道的语句,它可以根据 LINQ 语法生成对应的 SQL 语句,在数据库中去执行.本文主要研究什么样 LINQ 语句会生成什么样 SQL 语句,从而确保编写 LINQ 语句时,便知道该语句会执行什么样的 SQL 语句,得到什么结果,这是很有必要的.因为很多时候会考虑到 SQL 效率问题,和数据是否有误等问题.主要包括: 1.   插入数据 2.   判断记录是否存在 3.   左连接情…
生成三位随机字母+12位数字 ),), @c int; select @CardCode=abs(CHECKSUM(NEWID())) -LEN(@CardCode); ,@c)) set @CardCode=@CardCode+@str ) ,) ; ) )+ )) )+ )) ) )) 下面这个是生成大写字母的 ) ,) ; ) )+ )) )+ )) ) select @name 生成随机字母+数字的存储过程 ALTER proc [dbo].[randStr] ( @digitalLen…
1.生成1至10记录 select rownum from dual connect 结果: 12345678910 2.生成最近12个月记录 ), 'yyyyMM') time from dual connect 结果: 201805201806201807201808201809201810201811201812201901201902201903201904 一个用途:查询最近12个月数据,如果没有数据,也要返回记录,可以用上面sql语句作为主表左关联业务表.…
参考:http://www.cnblogs.com/CareySon/archive/2012/02/20/2359444.html 使用VS2010的数据生成计划来生成测试数据 以下面两个表来做例子,大伙也可以根据参考连接来看. 一.新建项目选择"数据库"->SQL Server->SQL Server 2008 数据库项目 二.点击确定以后,得到database1项目"Data Generation Plans"->添加->"数…
此随笔主在分享日常可能用到的sql函数,用于生成连续日期(年份.月份.日期) 具体的看代码及效果吧! -- ============================================= -- Author: <Author,Jearay> -- Create date: <Create Date,2018/7/12> -- Description: <Description,返回连续日期(年份或月份或日期)> -- ====================…
在项目需求分析的阶段,通常需要画数据库表的pdm图.有时候会直接画pdm来设计表,有时候是通过其他方式,如用纸和笔去画……当数据库中的表已经建立好了,怎么把数据库中的表导成SQL形式,然后生成pdm图呢? 数据库:oracle.数据库工具:dbVisual ①在dbVisual中可以连接各种数据库,这里连接oracle数据库,用的也是dbVisual.在dbVisual中,ctrl选择多个要生成pdm的表,右击,导出SQL形式,生成导出的SQL文件. ②打开powerDesigner, File…
此类根据JAVA实体BEAN生成MYBATIS的接口SQL(mapper) package com.sicdt.sicsign.bill.service.hessian; import java.lang.reflect.Field; import com.sicdt.sicsign.bill.service.entity.InvoiceEntity; public class MyBatisSqlUtils { public static void main(String[] args) {…
开发一个项目时都会有一个蛋疼的问题——写数据库需求文档,然后根据这个文档来建数据库,如果后来需求改了,要改数据库还要改文档,有时忙着忙着就忘改了,导致文档是过期的.那么我们自己写个脚本在数据库运行直接生产数据字典,这样只要改数据库就行了.目前在网上搜了下,发现sqlServer只有2005的生成工具,没有08的,存储过程倒是有,不过下载运行一遍到处是坑,写的也太差了,于是对脚本进行改进. -- ============================================= -- Au…
不使用表达式树,使用强类型生成where子句,好处是性能高,相比表达式树生成的sql,10倍+ 目前只支持生成where条件.查询语句,后期会增加生成Update SQL where子句支持相等.比较大小.Between.Like.In操作 sql语句支持设置select字段.top.order by:不支持联表查询.group by 客户端调用: public static void Main(string[] args) { var sqlBuilder = new SqlBuilder(t…
今天按照公司需求,需要做一个sql作业来对数据库定时触发,其中有个难点,就是在sql中需要在1-n中随机出来一个结果. google了半天,找到一个比较好的方式. 写下这个sql: DECLARE @Result INT DECLARE @Upper INT DECLARE @Lower INT SET @Lower = 1 SET @Upper = 10 SELECT @Result = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0) SE…
PowerDesigner版本:15.2.0 步骤如下: 1.打开PowerDesigner软件如下图: 2.选择:File->Reverse Engineer->Database... ,如下图所示: 3.弹出如下图所示框,设置你的模型(Model Name),根据实际选择DBMS,我选择的是MySQL5.0,并选择确定: 4.在如下图所示的弹框中点击红色按钮,添加*.sql文件: 5.选择你的*.sql文件,点击确定执行*.sql文件,完成.…
ALTER FUNCTION [dbo].[ufn_Random] ( @A INT, @B INT ) RETURNS INT AS BEGIN /* 功能:生成随机数 */ ,) , SELECT @R=RandValue*(@A-@B)+@B FROM VW_RAND ) AS INT) RETURN(@R) END…
1创建存储过程 create PROCEDURE [dbo].[UP_Export_Data_To_CSV] @Table NVARCHAR(), @Path NVARCHAR(), @Subfix NVARCHAR(), @Server VARCHAR(), @User VARCHAR(), @Password VARCHAR() AS BEGIN DECLARE @SQL NVARCHAR() DECLARE @File NVARCHAR() IF (LEN(ISNULL(@Path,) B…
1.SQLserve生成随机字符串 SELECT replace(newid(), '-', '')…
在使用pd时发现生成的语句中没有行凝视,这样就得手动来加这些凝视,后来在网上找了一些方法.确实得到了解决,分享一下. 在Database-->edit Current DBMS... 设置dbms的属性,找到mysql5.0-->script-->objects-->column-->add 把原来的内容: %20:COLUMN% [%National%?national ]%DATATYPE%[%Unsigned%? unsigned][%ZeroFill%? zerofi…