連線多個資料表
我們來看一下如果使用sql語言連線多個資料表,實現對多個資料表的查詢。為方便講解,我們在資料庫中分別建立了兩個名為store_information和region的資料表。
下面,我們就來看一下通過資料表的連線實現按不同區域查詢銷售額。
我們注意到在名為region的資料表中包含區域和商店兩個字段資訊,而在名為store_information的資料表中則包含每一家商店的銷售資訊。因此,為了得到按區域劃分的銷售資訊,我們需要將兩個不同資料表的資訊結合在一起進行查詢。通過對上述兩個資料表的分析,我們發現每個資料表中都包含乙個名為store_name的字段,因此,我們可以使用如下命令實現查詢目的:
select a1.region_name region, sum(a2.sales) sales
from geography a1, store_information a2
where a1.store_name = a2.store_name
group by a1.region_name
查詢結果顯示為:
region sales
east $700
west $2050
說明:上述查詢命令的前兩行用於指定所要查詢的目標字段,分別為region資料表中的region_name欄位和store_information資料表中sales欄位的記錄值總數。這裡,我們設定兩個欄位的別名分別為region和sales,兩個資料表的別名分別為a1和a2。如果我們只使用字段別名而不設定資料表別名的話,上述sql命令的第一行就變成 如下形式:
select region.region_name region, sum(store_information.sales) sales
由此我們可以看出有效的使用資料表別名,可以極大的簡化對多個資料表進行操作的sql命令。
上述查詢命令的第3行為where從句,正是該從句設定了兩個資料表的連線條件。因為我們希望確保region資料表中的store_name欄位能夠與store_information資料表中的同名字段相對應,所以我們規定兩個欄位的記錄值應當相等。在連線多個資料表時,一定要準確設定資料表的連線條件,如果where從句設定不正確,則可能導致查詢結果中出現眾多不相關的資料
用SQL語言建立資料表
用sql語言建立資料表 1 建立學生表student create table student sno char 8 sname char 20 s char 2 sdept char 20 sage smallint 2 建立課程表course create table course cno ch...
ThinkPHP同時操作多個資料庫
除了在預先定義資料庫連線和例項化的時候指定資料庫連線外,我們還可以在模型操作過程中動態的切換資料庫,支援切換到相同和不同的資料庫型別。用法很簡單,只需要呼叫model類的db方法,用法 this db 1,mysql root 123456 localhost 3306 test query 查詢s...
SQL學習隨筆 資料表操作
1.檢視當前資料庫的所有表 show tables 2.建立表 create table 資料表名字 字段 型別 約束 字段 型別 約束 auto increment 表示自動增長 多個約束,不分先後順序 設定主鍵,可以不寫not null 建立表 students create table stu...