當前位置:首頁 » 編程語言 » sql遞歸演算法
擴展閱讀
datax抽取ftp數據 2022-08-20 04:07:38

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;