oracle varchar2转date_5分钟学会精算师常用Oracle语句
前言
作為精算師,在保險公司需要處理千萬量級+保單數據和財務數據。
經驗分析團隊利用龐大的歷史保單數據及理賠數據建議合適的最優估計假設(Best Estimate Assumption);
評估團隊利用有效/新業務保單和財務數據報送高質量的報告;
產品團隊對產品的回溯和分析離不開數據的支持;
再保團隊和再保公司處理再保賬單也需要保單數據和理賠數據。
因此數據庫軟件算是除了Excel和精算模型軟件之外必備的第三大軟件。
目前,國內保險公司常用的數據庫軟件主要有Access,SQL server,FoxPro和Oracle。
一般小公司喜歡使用Access和FoxPro,這兩個軟件適用于小型程序,處理的數據相對較少,像FoxPro支持2G字節的數據,但是價格便宜,操作簡單,對小公司來說是不錯的選擇,但是當公司業務龐大后,數據表不得不分為多個表,降低了程序的效率,也不利于保存。
因此大公司青睞SQL server和Oracle。
SQL server和Oracle是企業級數據庫,支持海量數據存儲和應用,?數據安全性較高,但是收費較貴。許多數據處理軟件都有Oracle的接口,像Tableau,使得后續的數據可視化、數據處理更加方便,因此像友邦人壽、太平洋人壽等大公司選擇Oracle作為數據庫。
今天簡單介紹一下Oracle常用語句,都是一些簡單但是使用頻率高的語句,本人接觸Oracle時間不長,還請數據庫高手手下留情,如果有高效的語句,也歡迎留言或者分享在論壇,一起交流。
數據
以TableA和TableB作為示例
TableA:保單信息
| P01 | TermLife A | 20 | F | 2500 | A11 |
| P02 | WholeLife B | 30 | M | 10000 | A12 |
| P03 | TermLife C | 45 | M | 3000 | A13 |
| P04 | UniversalLife D | 20 | F | 50000 | A11 |
TableB:被保險人信息
| A11 | 5000 | Y | ? ? ? ? SH |
| A12 | 10000 | N | ? ? ? ? BJ |
| A13 | 20000 | N | ? ? ? ? SZ |
查詢語句
1簡單查詢簡單查詢TableA里的數據
Select?*?from?TableA;2條件查詢查詢承保年齡在30歲以內的保單
Select?*from?TableA?where IssueAge<=30;查詢男性保單的總保費
Select?sum(AP)?from?TableA?where?Sex='M';查詢產品A和產品C被保險人的平均承保年齡
Select?Sum(IssueAge)/Count(*)?from?TableA?where?Product='TermLife?A'?or?Product='TermLife?C';3模糊查詢查詢IDnum開頭為‘A’的保單
Select?*?from?TableA?where?ID?like'A%';查詢定期壽險保單
Select?*?from TableA where Product like '%Term%';4聚合查詢查詢男性和女性的總保費
Select?sex,sum(AP)?from?TableA?group?by?sex;創建、插入、刪除及清空表
1導入創建創建一張新表TableC,將TableA導入
Create?table?TableCas?select?*?from?TableA;創建一張新表TableC,將TableA中男性導入
Create?table?TableC?as?select?*?from?TableA where?where Sex='M';創建一張新表TableC,將TableA導入,將其放在USERS的存儲空間
Create table TableC tablespace users as?select?*?from?TableA;2多表關聯創建創建一張新表TableC,將TableA導入,并導入TableB的收入信息和城市信息
Create?table?TableC?as?select?a.*,b.Salary,b.City?from?TableA?a?left?join?TableB?b?on?trim(a.ID)=trim(b.ID);3插入表將TableA插入到TableC(插入的表是已經存在的表)
Insert into TableC select * from TableA;4清空表清空TableA
Truncate?table?TableA;5刪除表?刪除TableA
Drop?table?TableA;添加、更改,刪除列或數據
1添加列?給TableA添加列Age,格式為Number
Alter table TableA add (Age number);給TableA添加列SmokerStatus,格式為varchar2(2),括號里20是設置的最大字節數
Alter table TableA add (SmokerStatus varchar2(20));2更新列?更新TableA的列AnnualPrem,對AnnualPrem乘以1.1
Update table TableA set AP= AP*1.1更新TableA的列AnnualPrem,對吸煙者AnnualPrem乘以1.1
Update?table?TableC?set?AP=?AP*1.1?where?SmokerStatus?='Y';3刪除列?刪除TableA列ID
Alter?table?TableA?drop?column?ID;刪除TableA列AnnualPrem和列ID
Alter table TableC drop (AP, ID);4刪除數據?刪除TableA男性保單數據
Delete?from?TableC?where?Sex='M';在TableA里刪除ID在TableB的數據
Delete from TableA where ID in (select ID from TableB);5提交數據?在insert/delete/update操作后,需要提交數據,數據庫才能真正修改數據
Commit;多條件查詢
1Case when?在TableA查詢保單號和性別,如果是M則顯示“男”,F顯示“女”,都不是顯示“其他”
Select Pol, (Case?Sex??when M then '男' when?F?then?'女'??else?'空'??END)?性別from TableA2Decode?Sex如果是M返“男“,F返回“女“
Decode?(Sex,'M','男','F','女')數據格式轉換
1轉為日期?將20190101轉為日期類型
To_date('20190101','YYYYMMDD')2轉為數字?將20190101轉為數字類型
To_number(20190101)3截取字符串?截取20190101中的月份
Substr(20190101,5,2)投票
以上就是常用的一些語句,比較簡單,歡迎大家點擊閱讀原文進入論壇分享一些高端語句和交流,最后推薦一個學習數據庫程序的網站https://www.w3school.com.cn/sql/index.asp,里面有所有語句的用法和實例,對學習非常有幫助。
另外我們發起了關于公司使用的數據庫軟件的投票,歡迎投票!
完
圖片來源:網絡
往期精彩回顧行業洞察
解讀 | 市場收款可調費率終身醫療險獨家深度解讀
解讀 | 百萬醫療險長期化探討 ——固定免賠額是橘是枳?
解讀 | 重大疾病保險形態演進的回顧和預判(上)
解讀 | 重大疾病保險形態演進的回顧和預判(下)
精算考試
大事件 | 機 考 or 筆 試 ?
分享 | 【SOA系列】我是如何取得FSA的
分享 | 【SOA系列】我是如何通過前五門基礎課程的
分享 | 【SOA系列】我是如何通過高級課程的
名校之旅
分享 | 在人大統計學院就讀精算是一種什么樣的體驗(上)
分享 | 在人大統計學院就讀精算是一種什么樣的體驗(下)
分享 | 在卡斯商學院就讀精算科學是一種什么樣的體驗 —— 實習工作篇
分享 | 在卡斯商學院就讀精算科學是一種什么樣的體驗 —— 學習生活篇
分享 | 在卡斯商學院就讀精算管理是一種什么樣的體驗
分享 | 在赫瑞瓦特大學就讀精算管理是一種什么樣的體驗
論壇雜談
解惑 | 作 為 精 算 師 是 怎 樣 一 種 體 驗 ?
投票 | 剛起步的精算師最適合/不適合哪些崗位
求職 | 精算招聘信息-2020.7.15.
精算屋熊貓論壇,旨在為精算師及未來精算師提供交流平臺
在這里我們提倡平等,開放,互助,創新
或許你還不是精算師,來到這里,你已經成為了我們的一員
總結
以上是生活随笔為你收集整理的oracle varchar2转date_5分钟学会精算师常用Oracle语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java五子棋胜负判定_五子棋的判断输赢
- 下一篇: 推荐系统的架构图