SQL點滴學習記錄(一)

2021-09-26 15:07:14 字數 1333 閱讀 1116

alter table table_name 

add column column_name1 varchar(100) default null comment "注釋",

add column column_name2 varchar(100) default null comment "注釋";

1)最近用的比較多的left join,當兩表左連線時,on連線欄位在多條記錄中都有時,會導致查詢出多條重覆記錄,我的解決辦法是group by 左表的主鍵id

2)left join 查詢為null值

需求:a left join b,希望得到的是 那些 與b有關聯,並且b滿足 b.b < c的結果,以及沒有與b關聯的結果都出來

問題:當以右表的字段作為where條件時,並且沒有關聯資料時,查詢為空

解決①

select  a.a,b.b from a left join b on a.c = b.c where  a.a > 0 and (b.b is null or  b.b < c);
解決②

select  a.a,b.b from a left join b on a.c = b.c and b.b < c where a.a > 0;
基本使用limit ?,?

在篩選查詢時,設定limit為第一頁,而不是當前頁,當limit的偏移量超出了符合掉件的總記錄數,就會查詢為空列表

update pro_base_knowledge

inner join (

select

knowledge_id,

count(0) nums

from

pro_base_timu_knowledge

group by

knowledge_id

) b on pro_base_knowledge.id = b.knowledge_id

set pro_base_knowledge.timu_num = b.nums

sql利用上述標題的語法在一條語句中count出不同條件的值

select c_id,

count(case when status = 0 then 'state' end) as 成功,

count(case when status = 1 then 'state' end) as 失敗,

count(case when status = 2 then 'state' end) as 中斷

from tablename

SQL優化點滴記錄

1 在where和order by 涉及的列上加索引 2 引擎會放棄使用索引的情況 1 避免where子句字段進行null值判斷 2 避免where子句中使用 或 操作符 3 避免where子句中使用or。3 慎用in 和not in,in和not in也會進行全表掃瞄 4 like 子句盡量少用,...

C點滴記錄(一)

c基礎部分備忘 強制型別轉換得到所需型別的中間變數,原變數型別不變 不能用於常量 因為常量值不可變 和表示式,屬於單目運算子,結合方向自右向左 在呼叫函式時,對於實參的求值順序,ansi並無規定,因編譯器而異 關係運算子的結合方向 自右向左。關係表示式的值只能是真或假 優先順序 表示式去較高的型別 ...

c 學習知識點滴記錄 一

這些知識都是從別人關於c 知識的講解而自己手敲的,照著大佬們的敲一遍,加深自己的理解。map是stl的乙個關聯容器,它提供一對一 其中第乙個可以稱為關鍵字,每個關鍵字只能在map 現一次,第二個可能稱為該關鍵字的值 的資料處理能力,由於這個特性,它完成有可能在我們處理一對一資料的時候,在程式設計上提...