關於資料庫的知識點
表的子查詢,聯合查詢,連線查詢
子查詢
查詢中巢狀查詢。把子查詢的結果作為父查詢的查詢物件
如 select * from (
select cname,cid from tblclass
union
select dname,did from department
) as t1
order by cname
聯合查詢
將多個結果集合並成乙個結果集,前提是列數相同,並且相應的列的型別相同。判斷標準以第乙個表的結果集為準。
執行結果集的特點:結果集的列名以第乙個為準;
如上面的語句的結果集為在第乙個表的基礎上,插入第二個表的資料。列數和原來一致,只增加行數。
使用union關鍵字
自動排序、消除重複項
使用union all關鍵字
不自動排序,也不消除重複項
sql資料庫中有兩張表,一張人員(t_person)表、一張卡(t_card)表,人基本上都那麼幾張卡,像銀行卡、飯卡、水卡、電費卡……
連線查詢
做多個表的資料查詢。有時,結果集中的資料被包含在多個表中,則需要使用連線查詢。
自連線inner join …on
在實際開發過程中,如果幾個表(實體)滿足樹狀結構,每個表處於單獨一級,且觀察發現表的結構非常類似,於是考慮將這些表合成一張表,這個時候就可以用自連線。
1.內連線(inner join 或 join)
內連線是等值連線,它使用「=、>、<、<>」等運算子根據每個表共有的列的值匹配兩個表中的行 共有的
查詢語句:
select * from t_person inner join t_card on t_person.cardid = t_card.cardid
外連線
2.左連線(left join 或 left outer join)
左連線又稱左向外連線,查詢的結果集包括sql語句中左表的所有行,右表中匹配的行。如果左表的某行在右表中沒有匹配行,則用空值表示
select * from t_person left join t_card on t_person.cardid = t_card.cardid
3.右連線(right join 或 right outer join)
右連線也成右向外連線,查詢的結果集包括sql語句中右表的所有行,左表中匹配的行。如果右表的某行在左表中沒有匹配的行,則用空值表示
查詢語句:
select * from t_person right join t_card on t_person.cardid = t_card.cardid
4.完全外連線(full join 或 full outer join)
完全外連線,查詢的結果集包括sql語句中左表和右表的所有行。如果某行在另乙個表中沒有匹配行時,則用空值表示。
select * from t_person full join t_card on t_person.cardid = t_card.cardid
left join:左表中的資訊全部出現,右表中的資訊必須能夠匹配的才出現
未匹配的項使用null填充
right join:右表中的資訊全部出現,左表中的資訊必須能夠匹配的才出現
未匹配的項使用null填充
full join:所有資料都會出現,不匹配的項使用null填充
只要想做連線查詢,必須分析出兩個表間的關係
總結 sql中連線查詢分內、外連線,外連線分左連線、右連線和完全外連線,它們的功能與檢視差不多。其中左右連線查詢是相對應的,即把連線型別和左表、右表互換位置就可得到相同的結果集。
資料庫知識
1 資料庫的建立 建立格式 create table table name 字段 其中,字段包含三部分內容 名稱 域 逗號 域即資料型別,資料庫包含5中資料型別 integer real text blob null 2 改變表 altertable 命令可以改變表的結構,sqlite版的alter...
資料庫知識
dml data manipulation language 資料庫操作語言 update,insert,delete 資料庫在執行dml時,是先把資料放到記憶體的回滾段 rollback 如果執行提交 commit 時,才把回滾段裡的資料儲存到資料庫中,如果還沒執行提交 commit 使用者可以將...
資料庫知識
資料庫知識 1.簡述索引的原理及意義?答 索引是對錶的一列或多列進行排序的結構,因為絕大多 的搜尋方法在搜尋排序結構時效率都會大大提高,所以如果表中 某一列經常被作為關鍵字搜尋,則建議對此列建立索引,索引提供指標以指向儲存在表中指定列的資料值,根據指定的排 序次序排序這些指標,資料庫使用索引的方法 ...