我的周末就耗在這道題上了。。
來來去去,然後中間又夾雜一些雜事,做到現在終於做完。。
1.【create table語句】
create table bank(
cardid number primary key,
perid number unique,
name varchar2(20),
sex char(2),
brithday varchar2(40),
constraint sex check(sex in ('男','女')) ,
constraint perid check(length(perid) in (15,18))
);
create table money(
cid number,
score number,
foreign key(cid) references bank(cardid));
2.【insert bank表測試數據】
insert into bank (cardid,perid) values (1,43090319851130);
insert into bank (cardid,perid) values (2,430903851130230);
insert into bank (cardid,perid) values (3,430903001130234);
insert into bank (cardid,perid) values (4,430903981120231);
insert into bank (cardid,perid) values (5,430903011111228);
insert into bank (cardid,perid) values (6,430903200112212103);
insert into bank (cardid,perid) values (7,430903311111221);
insert into bank (cardid,perid) values (8,430903198112212103);
insert into bank (cardid,perid) values (9,430913981120239);
insert into bank (cardid,perid) values (10,431903001130234);
insert into bank (cardid,perid) values (11,420903198112212133);
3.【更新性別,出生日期】
update bank set
sex = decode(length(perid),15,
decode(mod(substr(perid,14,1),2),0,'女',1,'男'),18,
decode(mod(substr(perid,17,1),2),0,'女',1,'男')),brithday =
decode(length(perid),15,19||substr(perid,7,6),18,substr(perid,7,8));
4.【update name測試數據】
注意:修改姓,但是名裡面的牛不要改。策略:把牛姓的名字替換為'劉'||第二個字元開始到結束的串。
create sequence seq1;
update bank set name = '牛XX牛劉'||seq1.nextval;
update bank set name = '劉'||substr(name,2,length(name)-1) where name like '牛%';
5.【insert money表測試數據】
insert into money values (1,1.1);
insert into money values (2,12);
insert into money values (3,0.9);
insert into money values (4,122);
insert into money values (5,12);
insert into money values (6,12);
insert into money values (7,131);
insert into money values (8,12);
insert into money values (9,123);
insert into money values (10,12);
insert into money values (11,0.11);
6.delete from money where score < 2;
7.insert into money select cardid,2 from bank
where cardid not in (select cid from money);
8.select name from bank,money
where cardid = cid and rownum < 4 order by money.score desc;
9.select name from bank
where substr(brithday,5,2) = to_char(sysdate,'mm');
--本月生日的客戶姓名
select name from bank where
to_char(to_date(brithday,'yyyymmdd'),'ww') = to_char(sysdate,'ww');
--本周生日的客戶姓名
10.題意不清,個人理解為顯示所有客戶余額為平均余額的客戶姓名,其中平均存款計算時不算一個最高和一個最低余額。
select name from bank where cardid in
(select cid from money where score in
(select (sum(score)-max(score)-min(score))/(count(score)-2)
from money));
花絮:
1.查找了下身份證的生成規則,同時研究了下生成演算法。。
資料:http://www.xaccp.com/Article/200808/1016.shtml
2.在由身份證號碼更新生日時,遇到一個問題,就算是上面的鏈接處引用的演算法也無法解決,那就是15位身份證的日期段為00XXXX時,無法判斷生日為1900XXXX或是2000XXXX。
2.1 在連接字元串時,因為想到用substr函數取perid欄位得到的是字元類型,本來可以隱式轉換為數字類型,但是強制轉換為數字類型後,連接時會出問題,比如select 01||00 from al;得到的是01而不是0100。所以當時在更新生日時用到一個很復雜的decode語句。。
update bank set
sex = decode(length(perid),15,decode(mod(substr(perid,14,1),2),0,'女',1,'男'),18,
decode(mod(substr(perid,17,1),2),0,'女',1,'男')),
brithday = decode(length(perid),15,
decode(length(19||to_number(substr(perid,7,6))),8,19||to_number(substr(perid,7,6)),7,190||to_number(substr(perid,7,6)),6,
1900||to_number(substr(perid,7,6))),18,substr(perid,7,8));
2.2在整個編譯過程中由於文檔和SQL環境的多次變換,導致符號半全形混雜,帶來極大不便。。經常莫名其妙的錯誤。應對策略,在使用ORACLE的過程養成用E文編譯,測試學習的習慣,ORACLE認證考試OCA,OCP也是全E文化的。
3.在第8問中,本來想到可以用以下語句解決的
【select name from bank where cardid in (select cid from money where rownum < 4 order by score desc)】
多次出錯後,查筆記想起order by 子句不能用到嵌套語句中,只能放在最外層語句的最後,不知可對,各位看官提下意見。
4.關於第10題,如果去掉所有最高和最低余額,不是都只去掉一個計算平均余額時的查詢:
select name from bank where cardid in
(select cid from money where score in
( select sum(score)/count(score) from money where score not in
((select max(score) from money),(select min(score) from money))));
大功告成!以上全是ORACLE支持的,MYSQL的話,需要更換MYSQL自適應的函數,還有其中的7問中的insert語句,insert into money select cardid,2 from bank where cardid not in (select cid from money);MYSQL不支持。
吃飯。。
2. 銀行招聘有專業限制嗎
銀行招聘有專業限制的。
銀行招聘通常都會有專業限制,也有一些銀行的少部分職位是不限專業的,這些崗位通常競爭比較激烈。
銀行招聘的專業要求一般為:金融、會計、財務、市場營銷、經濟管理、電子銀行等經濟類及信息科技類相關專業。具體要求以最新公告為准。
銀行招聘要求有哪些?銀行由於其穩定的工作,不錯的薪資福利成為了許多應屆生夢寐以求的職業。但與此同時,考取銀行編制的競爭壓力也是相對較大的。
銀行專業要求主要招收但不限於經濟、金融、管理、理學、工學、法學、文學、計算機等專業,其中計算機專業的招聘人數較往年有所增長。
其中還有部分銀行甚至很多崗位都放寬了專業的限制,比如建設銀行的招聘還增加了哲學類、新聞學類、歷史學類、產品設計類等相關專業,甚至銀行招聘直接不限專業。
1.銀行春招流程
春招一般從 2 月底就開始,宣講會集中在 3 月和 4 月,招聘的筆試和面試集中在 3 月-5 月,拿到 offer 一般是在 4-5 月。春招實際的程序同秋招,也可以說春招是由秋招未招滿崗位發起的又一招聘時間段。參加春招的人員大多來源於秋招未成功就業或考研、國考失利的群體,加之部分企業只開秋招,不開春招,企業數量減少,競爭也會很激烈。
銀行的招聘流程分為公告-網申-筆試-面試-體檢-錄取通知。
2.銀行求職准備
01.簡歷
簡歷書寫是求職過程中最為基礎的階段,一份好的簡歷可以大大增加其通過網申篩選的概率,而簡歷的書寫也需要遵循一定的基本原則以及一些可以變通的技巧。
1.基本內容
簡歷中的銀行招聘要求有哪些?一份簡歷需要涵蓋的基本內容有:教育經歷,實習經歷,項目經歷,校園經歷,技能證書。教育經歷必須要包含學校、專業、學位、起止時間,GPA 或者排名情況比較好的話也需要寫上去,如果不是很好的話,可以不寫,用主要課程補上空位。經歷的書寫要遵循「STAR 法則」,在經歷充足的情況下,篇幅佔比應該是實習經歷>項目經歷>校園經歷。
實習經歷不夠的情況下可將學校的小組作業、科研作業等內容作為項目經歷補充。技能證書方面,學校的獎學金獎勵、專業技能證書、獲獎比賽等都可以寫,此外一些資格證或者從業證對於申請金融行業都有加分,例如證券從業資格證、CFA、ACCA、FRM 等,如果成績較好的話可以加括弧註明。
2.注意事項
簡歷在書寫過程中一定要實事求是,不能造假,尤其是教育經歷和實習經歷,一般都有據可查。行文排版一定要規范。
中文、外文、數字各自使用相同的字體;同一級內容使用相同的字型大小與格式;中英文簡歷篇幅各自以一頁為標准,並隔頁排布,可以不完全寫滿一頁,但一定不能超出;中文簡歷中切忌出現中英文混雜的情況出現,專有名詞或縮寫(如 GPA、CPA、SQL 等)以及無法匹配中文翻譯的專業性學術性名詞除外。
3. 寫出銀行模擬系統的取款業務對應的SQL語句
1. update Customer_Balance set balance = balance - 200 where card_id = '77777777'
insert into BillingHistory(card_id, amount, billing_date) values ('77777777', -200, '2012-02-18')
2. update Customer_Balance set balance = balance - 300 where card_id = '77777777'
update Customer_Balance set balance = balance + 300 where card_id = '99999999'
insert into BillingHistory(card_id, amount, billing_date) values ('77777777', -300, '2012-02-19')
insert into BillingHistory(card_id, amount, billing_date) values ('99999999', 300, '2012-02-19')
這樣可以嗎,加入一張表示客戶余額表,一張表示存取歷史表
4. 在銀行工作需要學習sql嗎
如果是在科技的話,需要的。
5. 銀行的sql查詢語句是什麼樣子的。
1. update Customer_Balance set balance = balance - 200 where card_id = '77777777'
insert into BillingHistory(card_id, amount, billing_date) values ('77777777', -200, '2012-02-18')
2. update Customer_Balance set balance = balance - 300 where card_id = '77777777'
update Customer_Balance set balance = balance + 300 where card_id = '99999999'
insert into BillingHistory(card_id, amount, billing_date) values ('77777777', -300, '2012-02-19')
6. sql server 在銀行資料庫應用中 實際要做些什麼操作
如果是銀行的數據中心的話,可能更多的是數據及系統維護的知識,例如伺服器維護,集群管理,虛擬化管理等。
如果是普通的信用卡中心的話,可能更多的是軟體的開發,包括網站,數據維護,數據安全,安全認證,這個就需要有編程語言的功底了,多是系統驅動或者安全軟體,編程能力要求比較高。
如果是銀行普通的科技部門那麼就是閑職,喝茶看報紙,然後維修一下機器,重裝個系統什麼的,有點像普通公司的機修和網管,但是比那個養人得多,還可能維護一些使用的辦公軟體,可能會涉及到一些資料庫的操作,但基本上都是基礎的。
7. 負責管理銀行的資料庫,,應採取哪些措施來保證銀行數據的安全性
老大,你這個問題比較大啊
1、資料庫伺服器得有完善的備份制度以保證最基本的容災能力吧;
2、系統的事務處理應該是完備,基本的sql注入應該有針對性的防範,資料庫操作用戶的許可權應該有針對性的設置
3、實施安全驗證機制,CA證書什麼的,保證系統的使用者是合法用戶
4、獨立的訪問控制
個人理解,僅供參考
8. 在銀行工作,需要具備哪些專業知識呢
普通職員沒有什麼特別的要求,進去實習以下就完全應付日常的工作拉! 若想有所發展,成就的話,進入管理層,就需要補充知識,要學些金融學的知識,熟悉金融領域的知識,入門可選擇金融學,貨幣銀行學,證券投資,財政學等.另外要懂的財務的一寫知識,也就是最開始學習的會計,財務管理,這些在金融工作當中是基礎的平台,一定要學習.
所以你要進金融單位的話,沒有關系最好先充電學習關於這方面的知識. 計算機要懂得銀行專業操作
9. 資料庫SQL里有張表銀行卡信息,表裡的銀行卡號的約束既要16數、又要每四位數之間有空格怎麼寫
兩種方案,要麼你的資料庫欄位設置為18個字元,這樣在銀行卡號的存儲時設置4位空格另外一種是在資料庫中約束16字元存儲16位銀行卡信息。在讀取顯示出來的時候處理為4位數字加空格。推薦後種
10. SQL銀行模擬系統增加賬戶計息功能
存儲過程+維護計劃 完美搞定!