当前位置:首页 » 编程语言 » sql递归算法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql递归算法

发布时间: 2022-07-07 21:15:40

① 菜鸟 sql语句求解 最好把每一句都解释 一下 不胜感激、、

指定数据库
USE [Student]
GO
以下为系统自动生成的,一般没什么用,除非你改变了系统的环境
/****** Object: Table [dbo].[C] Script Date: 04/19/2011 21:25:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

建立数据表
CREATE TABLE [dbo].[C](
指定字段名称,类型,长度,是否允许为空
[Cno] [nchar](10) NOT NULL,
[Cname] [nchar](20) NULL,
[Credit] [float] NULL,
[Property] [nchar](14) NULL,
设置主键
CONSTRAINT [PK_C] PRIMARY KEY CLUSTERED
(
[Cno] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Check [CK_C] Script Date: 04/19/2011 21:25:17 ******/
增加检查CK_C,并且作用于刚才新建的表
ALTER TABLE [dbo].[C] WITH CHECK ADD CONSTRAINT [CK_C] CHECK (([Credit]>(0)))
GO
ALTER TABLE [dbo].[C] CHECK CONSTRAINT [CK_C]
GO

靠记忆写的,你对应查一下帮助就明白了

② XML 和数据库之间的映射有什么作用

楼主 首先我们应该明白xml的作用:
XML的简单使其易于在任何应用程序中读写数据,这使XML成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
————————————————————————
由上面我们可以得知,XML成为数据交换的唯一公共语言,异构系统 甚至 异构平台的信息交互 都要靠xml传输数据,举个例子:
.net 开发的系统 和 java开发的系统 如何进行数据交换,如何进行深度整合和互操作,考得就是webservice,而现在webservice数据格式一般都是采用xml的,因为xml是数据交换的事实上的工业标准了,通过它我们可以“穿透那个可亲又讨厌的防火墙”. 呵呵

数据一般都是从数据库中取出的吧,所以 研究xml与数据库数据的互相转化和映射关系,就显的非常重要了。

————————————————————————

XML在Web领域已经得到了广泛的应用,而XML数据库一直是个研究热点。各数据库厂商及研究机构纷纷投入对XML技术的研究及开发。大体上可以把XML数据库分为两类:原生XML数据库(Native XML Database)和使能XML数据库(Enable XML Database)。而XML数据一般可划分为粗粒度、中粒度及细粒度三种形式。以文档为中心的粗粒度形式,一般采用原生XML数据库,而以数据为中心的细粒度形式一般采用使能XML数据库。

XML数据是嵌套的树形结构,而关系数据库是简单、平面的二维表结构,结构的差异性,使得在存储XML数据时需要按一定的映射规则进行转换,并使能够恢复到原XML文件。

XML文件物理结构上由多种元素组成,本文的研究只考虑常用的ELEMENT、TEXT、ATTRIBUTE三种元素,采用三个表来保存XML数据。主要思想是把树结构中的中间节点(非属性和文本节点)放入mNode(Middle Node)表,叶子节点(属性和文本节点)放入eNode(End Node)表,另外一个是ePath表,用于保存从根节点到叶子节点的路径。当然保存多个XML时,我们会引入一个用于保存区分各个XML的表。详细说明如下:

1) Path(pathID, path)

该表主要保存从根结点到各个叶子结点的所有不同的路径,在查询时可满足类似于Xpat的查询。

pathID:各不同的路径标识符,在解析过程中产生。

path:实际路径名称。

2)mNode(nodeID, nodeName, parentID, order, pathID)

该表主要通过指定parentID来保存各节点间的父子关系,以保持原XML的树型结构。

nodeID:节点的唯一标识符,在解析过程中产生。

nodeName:节点的名称,即XML中的实际名称。

parentID:父节点的标识符,根节点置为-1。

order:兄弟节点的先后次序。

pathID:从根结点到本节点所走的路径。

3)eNode(nodeName, nodeValue, parentID, order, type)

该表主要保存属性及文本节点的值。

nodeName:属性名,如果是文本节点则取其父节点名。

nodeValue:属性文本值。

parentID:父节点的标识符。

order:兄弟节点的先后次序。

type:用于区分属性还是文本的标量。

4转换方法

从XML到SQL,一般都是采用递归算法,先根遍历XML树结构,而从SQL返回到XML时,一般采用队列生成XML节点。递归过程一般要消耗较多的时间和空间,在处理较大结构的XML时,性能上不是很理想。

本模型在XML和SQL中放入一个中间层,该层中主要有根据DTD或Schema生成的一系列Bean、一个操作SQL的模块、一个操作XML的模块,另外在此基础上还可以方便扩展给其他业务逻辑层调用的模块。结构如下图所示:

JavaBeans:这里所说的JavaBeans是根据XML 对应的DTD或Schema所产生的有级联关系的类。通过这些类逻辑上形成一棵XML树形结构,用于存放实际XML数据。对于如下的一部分DTD:

<! ELEMENT book (title, price, author+)>
<! ATTLIST book year CDATA>
<! ELEMENT title (#PCDATA)>
<! ELEMENT price (#PCDATA)>

我们可以设计一个BookItem类,它包括一个TitleTxt字段、一个PriceTxt字段、一个AuthorBean字段以及一个YearAttr字段,其中AuthorBean由多个AuthorItem组成,类似的,AuthorItem包含它下面的节点信息。在这个过程中,可以完成ePath表的信息建立。

根据前面的映射模型,对于BookItem类的title字段,设计如下形式的类结构:

Public Class BookItem(){
Private String titleTxt;
Public setTitleTxt(String title){}
Public getTitleTxt(){}
Public setTitleParentID(int parentID){}
Public getTitleParentID(){}
Public setTitleOrder(){int order}
Public getTitleOrder(){}

}

而对于AuthorBean类,类结构设计如下:

Public Class AuthorBean(){
Private Vector beanVector;
Public void add(AuthorItem authorItem){}
Public AuthorItem getByIndex(int index){}
Public int getSize(){}

}

从结构上容易看出,代码量非常大,但由于都是一些get()和set()方法,这些代码不用通过手工去撰写,而是根据DTD或Scheme的信息自动生成。在过程①及过程④中调用set()方法,在过程②及过程③中调用get()方法。

XML Operator:该模块可以支持DOM、SAX解析。根据层次信息依次解析每个节点,此过程中记录父子节点关系,并且记录一个节点中所有子节点的先后顺序,并设定到Bean中。

SQL Operator:该模块主要是把Bean中的信息写入数据库,以及从数据库中读取信息供重组XML。

楼主,希望我的给出信息和资料对你的问题的解决 有所帮助!:-)

③ sql 2000 递归算法

select
categoryName

from
表名

where
categoryCode
like
'01%'

order
by
Clevel

具体你01的取值可以通过参数实现

④ sql 怎么递归查询的方法:

1.创建测试表,createtabletest_connect(idnumber,p_idnumber);

⑤ Java项目启动:ORA-00604: 递归 SQL 级别 3 出现错误

JDBCExceptionReporter] ORA-00604: 递归 SQL 级别 3 出现错误
ORA-04031: 无法分配 4096 字节的共享内存 ("shared pool","select /*+ rule */ bucket_cn...","Typecheck heap","kgghteInit")
ORA-00604: 递归 SQL 级别 2 出现错误
ORA-04031: 无法分配 4096 字节的共享内存 ("shared pool","select /*+ rule */ bucket_cn...","Typecheck heap","kgghteInit")
11:31:45,625 INFO [STDOUT] 11:31:45,625 WARN [SettingsFactory] Could not obtain connection metadata
java.sql.SQLException: ORA-00604: 递归 SQL 级别 3 出现错误
ORA-04031: 无法分配 4096 字节的共享内存 ("shared pool","select /*+ rule */ bucket_cn...","Typecheck heap","kgghteInit")

你的这个字段是不是BLOB或CLOB类型,并且存了超过4K字节的内容啊?

还有建议你到SQL最好优化一下,我看你在其他强制索引,但你最好注意ORACLE的开销策略,SQL里ORACLE有自己的特殊算法,虽然程序里要求用索引,但ORACLE里不一定会用的,还有SQL最好不要一次关联太多表,不仅影响效率,还会影响系统的。

⑥ java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01003: 语句未进行语法分析

没代码,说不清楚……
你可以把你需要的写成一个存储过程……
然后用java直接调存储过程……妥妥的不会爆了吧
估计是和java的preparedStatement的机制有关系吧。

⑦ 学大数据需要什么基础

其实笼统地说大数据原理和基础都在数学这边,当然有很多偏应用和软件使用的技术,例如“深度学习调参”等,这些报个培训速成班就能学会的技术含量不那么高的东西,不在讨论范围内。


深度学习:目前非常火,打败了非常多几十年积累起来的经典方法。

增强学习:也很火,游戏AI、自动驾驶、机器人等等,它都是核心。

概率图模型:深度学习之前非常popular的“学习”方法,有严格的数学模型和优美的算法,虽然目前被前俩者盖过了风头,但是依然有它的立足之处。

再比如有用偏微分方程做图像处理的(比较小众),那么这时候你肯定要去学一下偏微分方程了,大都是以科研为主导的。

⑧ Sql server 如何实现递归算法

可去了解一下SQL的CTE算法,实现递归

⑨ sql递归建立公司结构的方法 下面有错误但是不知道错在哪里

ORA-00604:递归某个SQL层时出现错误-initSID.ora中,参数DC_FREE_EXTENTS或ROW_CACHE_ENQUEUES太低uycg可以根据操作系统和数据库的情况适当增加这两个参数的值628宕下并重新启动ORACLE.-运行超出空间(伴随ORA-1547错误)mq这时,要对表空间添加新文件,即增加表空间的大小ycg-达到了MAX_EXTENTS(伴随ORA-1556错误)m如果这样,就要修改表,允许更多的扩展。请从技术手册中查找MAX_EXTENTS的最大值。如果已经达到了最大值,必须用compressextents选项28把表卸出(export),再导入(import)数据库中。

⑩ oracle中使用sql递归算出1加到100的值

declare
iint;
kint;
begin
i:=1;
k:=0;
whilei<=100loop
k:=k+i;
i:=i+1;
endloop;
dbms_output.put_line(k);
end;

上边是用while循环,下边这个用for循环

declare
kint;
begin
k:=0;
foriin1..100loop
k:=k+i;
endloop;
dbms_output.put_line(k);
end;