一、背景:
本文記錄的是sql學習過程中多表查詢的知識內容和練習題
二、多表查詢的重要知識點
2.1表的加法
1)表的加法用關鍵字union,是將兩個表按行合併在一起,合併時會刪除資料結果完全一樣的行,如果想保留相同的行就使用union all
2)表的加法,查詢結果表的欄位名,會使用第乙個select語句定義的欄位名
3)新增union可以同時合併多個select查詢語句;select查詢語句的結果字段數量不一致會報錯
2.2表的聯結
1)關係型資料庫中,表和表之間是通過列產生對應關係的,聯結是通過表與表的關係,將表合併在一起的操作
2)交叉聯結(又叫笛卡爾積):是將表中每一行都和另乙個表中的每一行合併在一起。學習交叉聯結的意義,它是其它聯結的基礎,其它聯結是在交叉聯結的基礎上加了過濾條件
3)內聯結(inner join):是取出兩個表中都符合條件的行,進行交叉聯結
4)左聯結(left join):會將左側表視為主表,將主表中的資料全部取出來,再取右側表中符合條件的行,進行交叉聯結
5)右聯結(right join)會將右側表視為主表,將主表中的資料全部取出來,再取左側表中符合條件的行,進行交叉聯結
6)全聯結(full join)會返回兩個表中所有的行,兩個表中有匹配的行會進行交叉聯結,沒有匹配的行會對應填充空值。mysql不支援全聯結
2.3表聯結總結
1)聯結記憶圖
2)如何選擇哪種聯結:
2.1)當需要生成固定行數的表單,或說明了要哪一張表中的全部資料時,就使用左(右)聯結
2.2)其他情況都使用內聯結,獲取兩個表中的公共部分
3)加入聯結的sql執行順序
2.4case表示式
1)case表示式的作用相當於乙個條件判斷函式
2)case表示式中,else子句可以省略,此時else預設為空值,但建議不省略;end不能省略
3)當有多種情況需要條件判斷時,就要用到case表示式
2.5排查語句錯誤的步驟總結
1)看報錯資訊
2)首先檢查每個子查詢
3)檢查欄位名是否寫錯,關鍵字有沒有錯
4)檢查標點符號:符號中英文狀態、符號是否多寫漏寫、列名用了單引號、值內容沒有用單引號
5)分段執行
三、練習:the join operation
11題的錯誤經驗:當有分組存在時,select子句中的列名要在group by 子句中有,同時要考慮group by中的多個列名不會影響分組
查詢表的欄位名
select name from syscolumns where id in select id from sysobjects where type u and name 相應表名 用以上sql語句輸入相應表名就可以查到表的欄位名,對應好資料庫 查詢是否存在該錶語句 if exists sele...
查詢表的欄位名 SQL的基本查詢
基本的查詢語句 select,from語句用法,從表中選擇需要查詢的字段 常用句式 select 欄位名1 欄位名2 from 表 號代表查詢表中所有字段 除了基本查詢外,還可以將列 欄位名 在查詢時重新命名,使用as distinct 刪除重複值的資料 select distinct 姓名 fro...
SQL查詢表,表的所有欄位名
sql server 檢視所有表名 select name from sysobjects where type u 查詢表的所有欄位名 select name from syscolumns where id object id 表名 select from information schema....