① sql 各種連接的使用條件,
只有一個單純的join 就是內連接。
比如有表A與表B,都有欄位X,通過欄位X相關聯。
想取表A與表B中X相等的數據,就用內連接,就是join
如果想取表A所有的,表B中X與表A相等的,就是左連接 left join
右連接與左連接的原理一樣,只是兩表換一下,就是左變右了。
外聯接,就是把兩個表有的數據都取出來,有關聯的,就關聯上了,沒有關聯的,表A有的,表B沒有,這些數據,表B的欄位都是null,表B有的,表A沒有,表A這些欄位就是null
② 資料庫——關系代數運算
關系代數是一門抽象的查詢語言,它用對關系的運算來表達查詢。
運算對象、運算符、運算結果是運算的三大要素。關系代數的運算對象是關系,運算結果也是關系。
設R和S是n元關系,而且兩者各對應屬性的數據類型也相同。R和S的並操作定義為:
條件:① 等目、同元,即他們的屬性數目必須相同 ② 對任意i,r的第i個屬性域和s的第i個屬性域相同
如:Πname(instructor)∪Πname(student)
簡單來說就是: R和S所有關系都組合在一起, 重復的就不寫
p是選擇操作,p用的是邏輯連接詞,如∧、∨、┐
註:執行選擇時,選擇條件必須是針對同一元組中的相應屬性值代入進行比較
簡單來說就是: 把符合元組的拿出來
a1,a2等是屬性名,r是關系名。其結果為保留此k列的值,並刪除重復的行
條件:①等目、同元,即他們的屬性數目必須相同 ②對任意i,r的第i個屬性域和s的第i個屬性域相同(和並運算一樣的條件)
簡單來說就是:因為是R-S, 找R在S關系中沒有的
假設R的屬性和S的屬性沒有交集就如圖一,如果R和S的屬性有交集,那麼必須重命名這些有交集的屬性
返回表達式E的結果,並賦給它名字X,同時將屬性重命名為A1,A2....An
例一:找出貸款額大於1200的元組
例二:找出貸款大於1200的貸款號
例三:找出有貸款或有賬戶兩者兼有的所有客戶姓名
例四:找出至少有一個貸款及一個賬戶的客戶姓名
例五:找出Perryridge分支機構有貸款的顧客姓名
這個查詢運用了兩個關系,這個時候就要運用笛卡爾積
為什麼要做「σ borrow.loan-number = loan.loan-number」的判斷?因為這裡面的組合很多,而我們要去除掉沒有意義的組合
查詢二要比查詢一更好一點,因為borrower x loan的數據有可能是很龐大的,降低了查詢效率,而查詢二先做了選擇再進行笛卡爾積運算,數據量相較小一點。
例六:找出在Perryridge分支機構有貸款,但在其他分支機構沒有賬號的顧客姓名
例七:找出銀行中最大的賬戶余額
③ 在SQL語句中條件之間應該用「逗號」連接還是用「AND」連接
連接的邏輯操作符號有很多種,就你目前的情況而言,應該使用 AND
select*from表where條件欄位1>15or條件欄位2<7and條件欄位3in('m','ml')
④ sql連接資料庫語句
<%
Set
conn
=
Server.CreateObject("ADODB.Connection")
strsql="PROVIDER=SQLOLEDB;DATA
SOURCE=(local);UID=用戶名;PWD=密碼;DATABASE=資料庫名"
conn.Open
strsql
%>
⑤ where在SQL中是什麼意思
where是查詢條件的意思,後面跟上你的查詢條件,如果沒有查詢條件,則不需要where部分。
SQL語法:
SELECT 列名稱 FROM 表名稱 WHERE 條件
舉例:
SELECT * FROM Persons WHERE FirstName='Bush'
⑥ sql中邏輯值如何表述呀比如vb中用false代表假,以true代表真
用表達式進行邏輯判斷如:1<>1則條件永不成立,為false