為驗證不同連線表示式的區別,先建立下面的表:
(1) (inner) join: 對錶a和表b取笛卡爾積(內連線,inner可以省略)
select students.*,teacher_name,course_id from students join teachers;
結果如下:
(2)natural (inner) join: 自然連線只考慮在兩個關係表中都出現的屬性取值上相同的元組對
select students.*,teacher_name,course_id from students natural join teachers;
結果如下:
事實上
select students.*,teacher_name,course_id from students join teachers using(teacher_id);與select students.*,teacher_name,course_id from students natural join teachers;結果相同
(3) left join
select students.*,teacher_name,course_id from students left join teachers;
這樣寫會出現語法錯誤提示,需要加using:
select students.*,teacher_name,course_id from students left join teachers using(teacher_id);結果如下:
此時可能還無法發現left join與普通join的區別,那麼看下面的right join就能發現
(4) right join
仔細觀察可以發現,teachers表中的teacher_id=4的教師沒有對應的學生,
此時可以發現沒有對應學生的老師zkx也會出現在表中,可以通過結果來體會left和right join與普通join 的區別。
sql正規表示式 SQL中的正規表示式
sql正規表示式 sql中的正規表示式 sql的查詢語句中,有時會需要引進正規表示式為其複雜搜尋指定模式。下面給出一些 regexp 在mysql 語句中應用 非全部 1 匹配字串的開始部分。mysql select fo nfo regexp fo 0mysql select fofo regex...
SQL 正規表示式
由mysql提供的模式匹配的其他型別是使用擴充套件正規表示式。當你對這類模式進行匹配測試時,使用regexp和not regexp操作符 或rlike和not rlike,它們是同義詞 擴充套件正規表示式的一些字元是 匹配任何單個的字元。乙個字元類 匹配在方括號內的任何字元。例如,abc 匹配 a ...
SQL正規表示式
當我們要進行一些簡單的糊塗查詢時用百分號 萬用字元 就可以了.其中 表達任意長度的字串,表示任意的某乙個字元.比如select from emp where ename like s or ename like s 但如果在一些複雜的查詢中關用這兩個符號sql語句就會非常複雜,而且也不一定能實現.從...