第七講:子查詢
1.定義:語句內部的查詢語句,就是子查詢語句,子查詢語句需要用括號括起來;
2.子查詢分類
①不同的分類會有不同的使用方式;
② 分類標準:子查詢出現的位置:where型:where後;from型:from後;exists型;
子查詢返回值形式:單一值、一列、多列、表(多行多列);
列子查詢,強調的是一列,使用集合類的操作符來完成in|not in;還有其他集合操作符any(任何乙個)、all(全部)
其中,=any()等同於in,!=all()等同於not in;
③返回一行
在參與比較時,使用括號可以構建一行(filed1,filed2)
例:select t_name,gender,c_name from teacher_class where (gender,c_name) =
(select distinct gender,c_name from teacher_class where t_name = '李白' and c_name = 'php115
');
④返回乙個表
如果用於在from子句內,要求使用乙個表,不能是乙個結果,應該給這個結果起個名字;
select * from (select t_name,c_name,days from teacher_class where days >15) as temp
where t_name like '李%';
注:外部查詢所使用列名,是由子查詢指定;
⑤exists:exists(subquery)
判斷依據:如果子查詢可以返回資料,則認為exists表示式返回真,否則,返回假;
例:select * from teacher_class where exists(select * from teacher where teacher_class.id = t_id;
3.連線查詢(join)
每個實體乙個表,乙個業務邏輯,使用多個實體的資料,多張表應該在一起使用,將多個表記錄連線起來
總體思路:將所有的資料,按照某種條件連線起來,再進行篩選處理。
連線分類:根據連線條件不同分類:內連線、外連線、自然連線
①內連線:資料內部連線,要求連線的多個資料必須存在才能進行連線
語法:tbl_left inner join tbl_right on 連線條件
例:select * from join_teacher inner join join_teacher_class on join_teacher.id = join_teacher_class.t_id;
注:不存在連線不到的資料;
②外連線:如果負責連線的乙個或多個資料不真實存在,則稱之為外連線。
語法:tbl_left left outer join tbl_fight on 連線條件
例:select * from join_teacher left outer join join_teacher_class on join_teacher.id = join_teacher_class.t_id;
③內連線的處理
ⅰ.內連線,在連線時,是可以省略條件的,意味著所有左表資料都要與右表的資料連線,存在m*n個連線;
這種連線稱之為:交叉連線,或者笛卡爾積;此時可以使用cross join代替inner join
注:mysql中cross join與inner join相同,但在資料庫定義上,交叉連線就是笛卡爾積,是沒有條件的內連線;
mysql inner join是預設的連線方案,可以省略inner
ⅱ.有條件的內連線會過濾非法的連線
連線條件:where條件:過濾條件;on 條件:連線條件;using 條件:負責連線的兩個欄位名稱一致。
④ 外連線的處理
ⅰ.分類:左外連線、右外連線、全外連線(暫不支援)
ⅱ.左連線 left outer join (outer可以省略):
在連線時,如果出現左邊表資料連線不上右邊表的情況,則左邊表達的資料在最終結果內保留;
如果出現右表的資料連線不到左表的情況,右表資料被丟棄;
ⅲ.右連線:右表保留左表丟棄,right join
注:外連線條件:on、using 不能使用where(using會去掉結果中的重複字段,並放在列前)
不能使用沒有條件的外連線;
⑤自然連線:內:natural join、左外:natural left join、右外:natural right join
通過mysql自己的判斷完成連線過程,不需要指定連線條件,mysql會使用多表內的相同字段作為連線條件;
4.select匯出語句
將檢索到的資料,儲存到伺服器的檔案內
例:select * into outfile 'e:/amp/one' from teacher_class;
注:可以自動建立檔案,不可以重寫已建立檔案
生成檔案格式:行用來區分記錄,製表符區分字段;
機器學習第七講
第七講 最優化 1.優化目標 2.梯度下降 隨機梯度下降sgd 訓練乙個樣本,更新 次引數 mini batch是sgd的推廣,通常所說sgd即是mini batch。病態條件 病態條件 不同方向有不同的梯度 學習率的選擇困難。區域性最小 區域性最小 local minima 權重空間是對稱的 放大...
讀書筆記(第七講)
本講主要是講述迴圈控制語句包括 while,do.while,for語句。跟前面講的差不多,這些不是物件導向程式設計,以上講的都是一些語言學習的基礎。在任何語言上都會接觸到。對於迴圈控制語句有乙個比較經典的例子就是從1加到100,求和!這題目已經百做都厭了。public class whiletes...
java學習基礎第七講
for 表示式 判斷條件 表示式 執行順序 看表示式 值賦給變數 變數去判斷條件,如果條件成立執行迴圈體 如果不成立不執行.for迴圈變數的作用域問題 在for迴圈表示式內定義的變數只能在當前迴圈體使用,如果變數在for迴圈體外面 則作用域在for迴圈外使用,for迴圈內不可重複定義 while 判...