摘要:SID不對的話會(huì)拋出異常:java.sql.SQLException:Io異常:Connectionrefused(DEION=(TMP=)(VSNNUM=153092352)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)
SQL語法總結(jié)
1.按條件讀取字段,定義某個(gè)字段只取規(guī)定的幾個(gè)值,或一個(gè)值
selectos.*fromblis_ordero,blis_orderserviceoswhereo.orderid=os.orderidando.ordertypeidnotin(4,8,10,11)ando.statusin(‘New','Accepted','Pending-apPRoval','Pending-effective','Pending-correction’)andsnp.status='Active'andb.entityid=1
2.去掉重復(fù)(互異)的字段distinct
selectdistinctop.name,op.fromblis_chargeactivationca,blis_orderparameteropwhereop.mastertype='charge'andca.chargeactivationid=op.masteridandca.parentcodelike'%NBRStorageCharge%'
3.某個(gè)字段不可為null
selectos.orderserviceid,os.orderofferid,o.ordertypeid,o.statusfromBlis_Ordero,Blis_Orderserviceoswhereo.orderid=os.orderidandos.orderofferidisnotnull
4.刪除滿足某個(gè)條件的記錄
deletefromblis_bstoffermigplanbsfwherebsf.keyid='110206'
5.取name_a字段,放入字段別名name_b
selectbsf.keyidsubcode,bsf.bstoffermigplanidfromblis_bstoffermigplanbsf
這里取的是keyid字段,顯示的為subcode字段。
6.connectionrollbackcommit
rollback就是把在內(nèi)存中做的行為取消,不持久化到數(shù)據(jù)庫中,commit就是把內(nèi)存中做的行為持久化到數(shù)據(jù)庫中。
7.在Oracle中使用Dual。Dual是Oracle一個(gè)特有的虛擬表,Oracle中很多系統(tǒng)的sequence(序列),sequence一般和表建立了一一對應(yīng)關(guān)系,但是要編程插入的話,必須手工指定,比如增加條account數(shù)據(jù),相應(yīng)的值插入SEQ_ACCOUNT.nextval,變量和函數(shù)都可以通過Dual中獲得
S:selectgetdate();
O:selectsysdatefromdual;
selectSEQ_INTEGRATIONTASK.NEXTVALfromDUAL
8.(PK)主鍵(PK)(fordatabase)
9.排序(數(shù)字,字母由大到?。?/p>
selectbsf.*fromblis_bstoffermigplanbsforderbybsf.ordertypeiddesc
10.插入一條記錄
insertintoblis_bstoffermigplan(bstoffermigplanid,entityid,keyid,subioncode,ordertypeid,type,templatecode,currencycode,exceptioncount,lastexception,att1,att2,att3,att4,att5,offercode,status,createdby,creationdate,lastmodifiedby,lastmodifieddate)values(seq_bstoffermigplan.nextval,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,sysdate,?,sysdate)
11,更新一條記錄
updateoffermigplan.db_table_namesetentityid=?,keyid=?,subioncode=?,ordertypeid=?,type=?,templatecode=?,currencycode=?,exceptioncount=?,lastexception=?,att1=?,att2=?,att3=?,att4=?,att5=?,offercode=?,status=?,createdby=?,lastmodifiedby=?,lastmodifieddate=sysdatewherebstoffermigplanid=?
12.插入數(shù)據(jù)量比較大的類型clob
13.查詢?nèi)掌?/p>
下列兩條語句功能相同
select*fromblis_accountaccwhereto_char(acc.lastmodifieddate,'YYYYMMDD‘)>'20050101'
select*fromblis_accountaccwhereacc.lastmodifieddate>to_date('2005-01-01','yyyy-mm-dd’)
14.找出根據(jù)某個(gè)字段中的值重復(fù)的記錄
比如找出chargeactivationid有相同值的blis_usageaccess記錄
select*fromblis_usageaccesswherechargeactivationidin(selectchargeactivationidfromblis_usageaccessgroupbychargeactivationidhavingcount(*)>1)
USAGEACCESSIDCHARGEACTIVATIONIDSERVICEACCESSCODE
292518148701AUDIO-BROADCAST@
292517148701VOip@
292516148701CALLIN-DID@
292515148701CALLBACK-INTL@
292512148701CALLIN@
292513148701CALLIN-TOLLFREE@
292514148701CALLBACK@
292478147945AUDIO-BROADCAST@
292477147945VOIP@
292475147945CALLBACK-INTL@
292476147945CALLIN-DID@
292472147945CALLIN@
15.通過查詢獲得某個(gè)字段的合計(jì)值,如果這個(gè)值位null將給出一個(gè)預(yù)設(shè)的默認(rèn)值
selectnvl(ob.bookingvalue,0)bookingvaluefromblis_ordero,blis_orderbookingobwhereo.orderid=ob.orderidando.orderid=125034andob.bookingtypeid=215andob.status='Active'
這里關(guān)心nvl的用法,nvl(arg,value)代表如果前面的arg的值為null那么返回的值為后面的value
16.知道一個(gè)column的名字,但不清楚它屬于哪張table時(shí),可以使用
select*fromuser_col_commentsuccwhereucc.column_name='column_name'
比如:select*fromuser_col_commentsuccwhereucc.column_name='ORDERID'就會(huì)查出一系列有ORDERID字段的表。
17.遍歷兩字段排列
select(pf.offername||''||cur.name)offercodefromblis_packageofferpf,blis_currencycurwherecur.status='Active'andpf.status='Active'
結(jié)果如下:
offercode
a1b1
a1b2
a2b1
a2b2
18.條件判斷
casewhenpc.provisioningby='BPS'then'True'
else'False'end
selectsos.Sosorderserviceid,st.sosprovisionticketid,
(casewhenpc.provisioningby='BPS'then'True'
else'False'end)isConnector
fromblis_sosprovisionticketst,blis_sosorderformsof,
blis_sosorderservicesos,blis_packagecomponentpc
wheresof.sosorderformid=sos.sosorderformid
andsos.sosorderserviceid=st.sosorderserviceid
andsos.status='Active'andst.status='Active'
andpc.tagname(+)=st.servicetagandpc.provisioningby
andsof.sosorderformid=104789
19.pc.tagname(+)=st.servicetag
當(dāng)pc.tagname存在值,st.servicetag不存在值的話,記錄也可以檢索出來。
20.讓表可以手工編輯
selectrowid,st.*fromblis_sosprovisionticketstwherest.sosprovisionticketid=102508
用classes12.zip還是會(huì)拋出classNotFoundException:oracle.jdbc.driver.OracleDriver,換用class12.jar就正常了,classes12.zip或class12.jar是JDBCoracle驅(qū)動(dòng)類
創(chuàng)建數(shù)據(jù)庫:
查看所有表:select*fromdba_all_tables
查看所有用戶:select*fromall_users
查看所有DBA用戶:select*fromdba_users
創(chuàng)建role:createroleBLIS_ADMIN_ROLE;
創(chuàng)建新用戶:createuserusernameidentifiedbypassWord
授予表空間使用權(quán):grantresourcetousername
授予創(chuàng)建表權(quán)限:grantcreatetabletousername
授予連接數(shù)據(jù)庫的權(quán)限:grantcreatesessiontousername
查看所有表空間:select*fromdba_tablespaces
把任何表授予某用戶:grantcreateanytabletoBLIS_ADMIN_ROLE;
授予某用戶檢索功能:grantcreateanyindextoBLIS_ADMIN_ROLE;
授予某用戶對某表有檢索,插入,更新,刪除功能:grantselect,insert,update,deleteonBLIS_ACCAGENCYCOMMISSIONtoBLIS_ADMIN_ROLE;
導(dǎo)出數(shù)據(jù)庫:比如:expblis/blis@dblsfull=yfile=d:1.dmp
連接ORACLE數(shù)據(jù)庫的字符串格式是
jdbcracle:thin主機(jī):端口:SID
注意是SID而不是數(shù)據(jù)庫名
SID不對的話會(huì)拋出異常:java.sql.SQLException:Io異常:Connectionrefused(DEION=(TMP=)(VSNNUM=153092352)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)
更多資料請登錄希賽軟考網(wǎng)。
相關(guān)推薦:
數(shù)據(jù)庫系統(tǒng)工程師該怎么發(fā)展?
怎樣獲得數(shù)據(jù)庫系統(tǒng)工程師認(rèn)證?
數(shù)據(jù)庫系統(tǒng)工程師的基本要求與發(fā)展
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題