❶ sql 倆條普通sql查詢語句和一句級聯sqll查詢語句哪個快
首先必須確定兩句和一句完成的是同樣的功能,這樣才有可比性,在什麼情況下兩句能夠完成一句級聯查詢的功能呢?好像不行,除非你確定第一句查詢結果為一條。否則你在第一句中得到的結果集有怎樣單獨的方法使其成為第二條SQL語句的需要的查詢集呢?
一句嵌套查詢和一句級聯查詢有相同功能的可能,這是嵌套查詢相對較高。例如Select
*
from
table1
where
tabe1.name
in
(Select
tabe2.name
from
table2
where
tabe2.age>20)
嵌套查詢
Select
*
from
table1
a
inner
join
table2
b
on
a.name=b.name
where
b.age>20
級聯查詢
❷ sql中的觸發器與存儲過程有什麼相同點和不同點希望能專業點,謝謝
一、功能不同:
1、存儲過程的功能:
(1) 變數說明
(2) ANSI(美國國家標准化組織)兼容的SQL命令(如Select,Update….)
(3) 一般流程式控制制命令(if…else…、while….)
2、觸發器的功能:
(1)強化約束(Enforce
restriction)
(2)跟蹤變化Auditing
changes
(3)級聯運行(Cascaded
operation)
二、指代不同
存儲過程:在大型資料庫系統中,一組為了完成特定功能的SQL語句集。
觸發器:SQL server 提供給程序員和數據分析員來保證數據完整性的一種方法。
三、作用不同:
1、存儲過程:局時存儲過程,以兩個井字型大小(##)號開始,則該存儲過程將成為一個存儲在tempdb資料庫中的全局臨時存儲過程,全局臨時存儲過程一旦創建,以後連接到伺服器的任意用戶都可以執行它,而且不需要特定的許可權。
2、觸發器:可用於強制引用完整性,以便在多個表中添加、更新或刪除行時,保留在這些表之間所定義的關系。然而,強制引用完整性的最好方法是在相關表中定義主鍵和外鍵約束。
四、相同點:
觸發器是自動的:它們在對表的數據作了任何修改(比如手工輸入或者應用程序採取的操作)之後立即被激活。
觸發器可以通過資料庫中的相關表進行層疊更改。例如,可以在 titles 表的 title_id 列上寫入一個刪除觸發器,以使其它表中的各匹配行採取刪除操作。該觸發器用 title_id 列作為唯一鍵,在 titleauthor、sales 及 roysched 表中對各匹配行進行定位。
觸發器可以強制限制,這些限制比用 CHECK 約束所定義的更復雜。與 CHECK 約束不同的是,觸發器可以引用其它表中的列。
(2)級聯和sql的區別擴展閱讀:
觸發器可通過資料庫中的相關表實現級聯更改;通過級聯引用完整性約束可以更有效地執行這些更改。觸發器可以強制用比 CHECK 約束定義的約束更為復雜的約束。與CHECK約束不同,觸發器可以引用其它表中的列。例如,觸發器可以使用另一個表中的 SELECT 比較插入或更新的數據,以及執行其它操作,如修改數據或顯示用戶定義錯誤信息。
觸發器也可以評估數據修改前後的表狀態,並根據其差異採取對策。
❸ SQL cascade和外鍵約束
更改foreign
key約束定義的引用行為(delete
cascade/delete
set
null/delete
no
action),默認是delete
on
action
引用行為(當主表中一條記錄被刪除時,確定如何處理字表中的外部碼欄位):
delete
cascade
:
刪除子表中所有的相關記錄
delete
set
null
:
將所有相關記錄的外部碼欄位值設置為NULL
delete
no
action:
不做任何操作
就是說如果你只設置了外鍵,此外鍵密人定義的引用行為是delete
on
action
也就是說你刪除時候設置外鍵的表裡有數據時就會報錯。除非沒有數據。
你這問題的概念不明吧。
希望對你有幫助
❹ SQL cascade和外鍵約束
更改foreign key約束定義的引用行為(delete cascade/delete set null/delete no action),默認是delete on action
引用行為(當主表中一條記錄被刪除時,確定如何處理字表中的外部碼欄位):
delete cascade : 刪除子表中所有的相關記錄
delete set null : 將所有相關記錄的外部碼欄位值設置為NULL
delete no action: 不做任何操作
就是說如果你只設置了外鍵,此外鍵密人定義的引用行為是delete on action
也就是說你刪除時候設置外鍵的表裡有數據時就會報錯。除非沒有數據。
你這問題的概念不明吧。
希望對你有幫助
❺ 什麼叫級聯排序
Order By [Field1],[Field2]...[FieldN]
這就是級聯
顯示結果是對[Field1]先排,對於[Field1]值相同的,再按[Field2],如此一級一級下去排
❻ 資料庫中什麼是「級聯更新關聯欄位」和「級聯刪除關聯欄位」
sql的外鍵約束可以實現級聯刪除與級聯更新;
oracle則只充許級聯刪除。
sql級聯刪除與級聯更新使用格式:
create
table
a001(id
int
primary
key,name
varchar(20))
create
table
a002(id
int
references
a001(id)on
delete
cascade
on
update
cascade,age
tinyint)
oracle級聯刪除使用格式:
create
table
a001(id
int
primay
key,name
varchar2(20))
create
table
a002(id
int
references
a001(id)on
delete
cascade,age
number(2,0))
❼ sql中級聯刪除,級聯更新是怎麼理解的
主外鍵的用用到的!當你設置主外鍵時可以選擇是否進行級聯刪除,級聯更新;當刪除或更新主鍵表中的記錄時,sql會自動刪除或者更新該主鍵所對應外鍵表中的記錄。具體的情況你可以測試一下!
❽ sql2005和sql2008的區別
2005支持所有2000的語法,但是2005有新的功能,所以對系統要求也不一樣,比如你必須安裝.net 3.5的框架,其還有以下區別:
1、欄位類型。
SQL Server 2005引入了一系列 新的被稱為MAX的數據類型。這是VARCHAR,NVARCHAR和VARBINARY類型的擴展,這幾種類型 以前被限制在8000位元組以下。MAX可以容納高達2GB的數據,與TEXT和IMAGE一樣。
可以使用字元串函數對CLOB類型進行操作。但是這就引發了對varchar和char效率討論的老問題。到底如何分配varchar的數據,是否會出現大規模的碎片?是否碎片會引發效率問題?這都是需要進一步探討的東西。
2、外鍵的級聯更能擴展
新版本中外鍵級聯加入了SET NULL 和 SET DEFAULT 屬性,能夠提供能好的級聯設置
如果沒有指定 ON DELETE 或 ON UPDATE,則默認為 NO ACTION。
3、索引附加欄位
即在索引中存儲一些常用欄位以提高查詢速度,這是一個不錯的新特性。雖然索引的附加欄位沒有索引鍵值效率高,但是相對映射到數據表中效率還是提高了很多。在實驗環境中會比映射到表中提高30%左右的效率。
4、計算欄位的持久化
原來的計算欄位其實和虛擬欄位很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了計算欄位的持久化,這就提高了查詢的性能,但是會加重insert和update的負擔。OLTP慎用。OLAP可以大規模使用。
5、分區表
分區表是個亮點!從分區表也能看出微軟要做大作強SQL Server的信心。資料很多,這里不詳細說。但是重點了解的是:現在的SQL Server2005的表,都是默認為分區表的。因為它要支持滑動窗口的這個特性。這種特性對歷史數據和實時數據的處理是很有幫助的。
6、CLR類型
微軟對CLR作了大篇幅的宣傳,這是因為資料庫產品終於融入.net體系中。最開始我們也是狂喜,感覺對象資料庫的一些概念可以實現了。但是作了些試驗, 發現使用CLR的存儲過程或函數在達到一定的閥值的時候,系統性能會呈指數級下滑!這是非常危險的!只使用幾個可能沒有問題,當一旦大規模使用會造成嚴重 的系統性能問題!
7、索引視圖
索引視圖2k就有。但是2005對其效率作了一些改進但是schema.viewname的作用域真是太限制了它的應用面。還有一大堆的環境參數和種種限制都讓人對它有點卻步。
8、語句和事務快照
語句級快照和事務級快照終於為SQL Server的並發性能帶來了突破。個人感覺語句級快照大家應該應用。事務級快照,如果是高並發系統還要慎用。如果一個用戶總是被提示修改不成功要求重試時,會殺人的!
9、資料庫快照
原理很簡單,對要求長時間計算某一時間點的報表生成和防用戶操作錯誤很有幫助。但是比起Oracle10g的閃回技術還是細粒度不夠。
2005與2008的區別
2008 引入新的日期和時間數據類型:
DATE - 僅表示日期的類型
TIME - 僅表示時間的類型
DATETIMEOFFSET - 可以感知時區的 datetime 類型
DATETIME2 - 比現有 DATETIME 類型具有更大小數位和年份范圍的datetime 類型
新的數據類型允許應用程序擁有獨立的日期和時間類型,同時為時間值提供大的數據范圍或用戶定義的精度。
2008的備份採用了比較好的壓縮策略。
2008的庫文件可以加密了,別人拷走也沒意義。
2005不能調試,要調試必須裝VS2005開發板或者企業版以上才行。
2008把調試器又請回來了!方便多了!!
2008 增加了輸入智能提示功能。
❾ SQL級聯查詢
select * from #T
❿ SQL 級聯中的級聯是什麼意思
Sql有兩個很好的功能。一個是級聯更新,另一個是級聯刪除。 比如說:當客戶A刪除時,級聯刪除就會把A的所有訂單全刪除了,如果不要求級聯刪除,則只刪客戶A,而不刪除它的訂單。
這就是級聯的作用。。
不過至於你那題怎麼答,你看明白了組織一下語言就行了。