連線查詢
1.連線(join)
也稱θ連線,從兩個關係的笛卡爾積中選擇屬性間滿足一定條件的元組。
等值連線:θ為「=」的連線運算稱為等值連線。從關係r和s的廣義笛卡爾積中選取a、b屬性值相等的元組。
自然連線:一種特殊的等值連線。要求關係中進行比較的分量必須是同名的屬性組,並且在結果中把重複的屬性去掉。
外連線:把懸浮元組也儲存在結果關係中,而在其他屬性上填null。outer join
左外連線:只保留左邊r關係的懸浮元組。 left outer join
右外連線:只保留右邊s關係的懸浮元組。 right outer join
2.連線查詢:
查詢同時設計兩個以上的表,則稱之為連線查詢。是資料庫中最主要的查詢,包括等值連線查詢、自然連線查詢、非等值連線查詢、自身連線查詢、外連線查詢和復合條件連線查詢。
1.等值與非等值連線查詢:
select student.*,sc.* from student,sc where student.sno=sc.sno; 等值連線
select student.sno,sname,s***,sage,sdept,cno,grade 自然連線
from student,sc where student.sno=sc.sno;
一條sql語句可以同時完成選擇和連線查詢,這是where子句是由連線謂詞和選擇謂詞組成的復合條件。
select student.sno,sname,s***,sage,sdept,cno,grade
from student,sc where student.sno=sc.sno and sc.grade>90;
該查詢的一種優化的執行過程,先從sc中挑選出cno=『2『並且grade>90的元組形成乙個中間關係,再和student中滿足連線條件的元組進行連線得到最終的結果關係。
2.自身連線:
查詢有先修課的課
select first.cno,second.cno from course first,course second where first.cpno=second.cno;
為course取了兩個別名fist,second
3.外連線:
把懸浮元組儲存在結果集合中。
select student.sno,sname,s***,sage,sdept,cno,grade
from student left outer join sc on(student.sno=sc.sno);
4.多表連線:
涉及多張表。
select student.sno,sname,cname,grade
from student,sc,course where student.sno=sc.sno and sc.cno=course.cno;
python連線mysql並提交mysql事務示例
複製 如下 coding utf 8 import sys import mysqldb reload sys sys.setdefaultencoding utf 8 class db object def init self,host 127.0.0.1 port 3306,user root ...
qt連線mysql安全麼 Qt連線Mysql的問題
標頭檔案 include include include 工程中需要加入 qt sql 資料庫中的中文顯示為亂碼的解決方法 在main函式中加入 include qtextcodec setcodecfortr qtextcodec codecforname utf 8 qtextcodec set...
mysql連線查詢例項 MySQL連線查詢例項詳解
建立表suppliers create table suppliers s id int not null auto increment,s name char 50 not null,s city char 50 null,s zip char 10 null,s call char 50 not...