當年學習的基本sql
都是當年我學sql時候記錄的筆記,要是有馬虎寫的不對的地方,歡迎評論~
主鍵:具有唯一性,自動加索引(index),且不能為空索引:加快查詢速度 varchar-字串 int-整數型
檢視當前主鍵及更改自增主鍵
(t_risk_item_rule表名,item_rule_id自增主鍵欄位名)
--檢視序列號
select nextval('t_risk_item_rule_item_rule_id_seq');
--修改序列號
select setval('t_risk_item_rule_item_rule_id_seq', 1111);
常規查詢: select * from t_user 丨 丨 丨 查詢 欄位(*代表查詢所有資料)表名
模糊查詢: select * from t_user where user_name like '高%' | 丨 丨 丨 | 欄位名 像 模糊查姓高的人
(%放置位置決定模糊查詢的方式,例:user_name like‘%王%’,該句查名字中間有王字的人)
計數:count select count (*) from t_user | 丨 丨 | 計數 欄位
分組:group by select count(*),iMonth from wx_hr_salary where cPsn_Name like '高%' group by iMonth | 丨 丨 丨 | 欄位名 (%代表萬用字元,任意值) 分組
求和:sum select sum(F_1),iMonth from wx_hr_salary where cPsn_Name like '高%' group by iMonth | 丨 丨 | 求和 要求和的欄位名
插入: insert into t_user(user_id,user_name,age,sex)values(1,'關羽',21,'男') 丨 丨 丨 丨 插入資料 表名 需要插入資料的欄位名 值 字元型需加單引號,數值型不需要
修改: update t_user set user_pass = '123' where user_id=1 and age=21 丨 丨 丨 丨 丨 丨 丨 修改 表名 放置 需改的欄位名 修改的資料 改哪裡 改主鍵是1並且年齡為21的位置
(根據實際情況更改,連線用and)
刪除: delete from t_user where user_id=2------刪除來自t_user表裡欄位名為user_id欄位資料為2的位置 丨 刪除
排序: order by news_id asc(放在where後面) 丨 丨 丨 排序 欄位名(asc升序,desc降序)
消重複: select distinct cPsn_Name from wx_hr_salary | 丨 丨 丨 | 消重 按照欄位名消重 表名
查看錶中從第0條資料開始查詢,向後查10條記錄 select * from wx_hr_salary limit 0 , 10 | 丨 丨 丨 丨 | 表名 限定範圍 從第x條資料開始查 向後查詢y條
不是主鍵不允許建立外來鍵
表之間的連線: select * from t_news inner join t_user on t_news .create_by = t_user.user_no | 丨 丨 丨 丨 丨 丨 丨 | B表名 連線 A表名 B 表名 欄位名 A表名 欄位名
(inner可替換left,左邊表完全顯示,右邊表符合條件的顯示;用right相反)
表之間的聯合: select user_no from t_user union all select create_by from t_news | 丨 丨 丨 丨 | 欄位名 表名 聯合 顯示所有不消除重複(可不寫)
select new_id as aa from t_news (as可省略,例 select new_id aa from t_news,效果同上) | 丨 丨 丨 | 欄位名 起的名字 表名
子查詢: select * from (select new_id as aa from t_news) t | 丨 丨 | 在select()中放入另一個select查詢語句 必須命名一個表名
select 姓名,sum(case 科目 when '語文' then 成績 else 0 end) as 語文 from score group by 姓名 order by 姓名 desc;
查詢姓名欄位,求(假如科目是語文則留下該行語文的成績,否則留下0,進行下一行直到運算結束)所留下的所有數相加,所得結果在命名為語文的欄位下顯示,顯示結果按姓名分組並按姓名倒序排序。
把null換成數字--------ifnull( t2.faka,0) | 丨 丨 丨 | 表名 欄位名 替換的數字
max 最大值:(並且運用了case···then···end)
select max(t.A) A,max(t.B) B,max(t.C) C from (select sum(case Db_type when 'A' then Db_value else 0 end) as A,sum(case Db_type when 'B' then Db_value else 0 end) as B,sum(case Db_type when 'C' then Db_value else 0 end) as C from Db_test group by Db_type order by Db_type ) t
select sum(case Db_type when 'A' then Db_value else 0 end)
在select語句中插入一列自增id:
SELECT row_number() over (order by t.serv_id) as row_id, t.name from table t