版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、讀書破萬卷下筆如有神sybase基本語法2009-04-07 12:36:06| 分類:默認分類|標簽:|字號大中小 訂閱資料定語言是指對資料的格式和形態(tài)下定義的語言,他是每個資料庫要建立時候時首先要面對的,舉凡資 料分哪些表格關(guān)系、表格內(nèi)的有什麼欄位主鍵、表格和表格之間互相參考的關(guān)系等等,都是在開始的時候 所必須規(guī)劃好的。1、建表格:create table table_name(columnl datatype not null not null primary key,column2 datatype not null,)說明:datatype -是資料的格式,詳見表。nut null-
2、可不可以允許資料有空的(尚未有資料填入)。primary key -是本表的主鍵。2、更改表格alter table table_nameadd column column_name datatype說明:增加一個欄位(沒有刪除某個欄位的語法。alter table table_nameadd primary key (column_name)說明:更改表得的定義把某個欄位設(shè)為主鍵。alter table table_namedrop primary key (column_name)說明:把主鍵的定義刪除。3、建立索引create index index_name on table_name
3、 (column_name)說明:對某個表格的欄位建立索引以增加查詢時的速度。4、刪除drop table_namedrop index_name二、的資料形態(tài) datatypessmallint16位元的整數(shù)。interger32位元的整數(shù)。decimal(p,s)p精確彳!和s大小的十進位整數(shù),精確值 p是指全部有幾個數(shù)(digits)大小值,s是指小數(shù)點彳爰有幾位數(shù)。如果沒有特別指定,則系統(tǒng)會設(shè)為p=5; s=0 ofloat32位元的實數(shù)。double64位元的實數(shù)。char(n)n長度的字串,n不能超過254。varchar(n)長度不固定且其最大長度為n的字串,n不能超過4000
4、ographic(n)和chan) 一樣,不過其單位是兩個字元double-bytes , n不能超過127。這個形態(tài)是為了支援兩個字元長度的字體,例如中文字。vargraphic(n)可變長度且其最大長度為 n的雙字元字串,n不能超過2000 0date包含了 年份、月份、日期。time包含了 小時、分鐘、秒。timestamp包含了 年、月、日、時、分、秒、千分之一秒。三、資料操作dml (data manipulation language)資料定義好之彳爰接下來的就是資料的操作。資料的操作不外乎增加資料( insert)、查詢資料(query )、更 改資料(update)、刪除資料(
5、delete )四種模式,以下分 別介紹他們的語法:1、增加資料:insert into table_name (column1,column2,)values ( value1,value2,)說明:1 .若沒有指定column系統(tǒng)則會按表格內(nèi)的欄位順序填入資料。2 .欄位的資料形態(tài)和所填入的資料必須吻合。3 .table_name 也可以是景觀 view_name 。insert into table_name (column1,column2,)select columnx,columny,from another_table說明:也可以經(jīng)過一個子查詢(subquery )把別的表格的資
6、料填入。2、查詢資料:基本查詢select column1,columns2,.from table_name說明:把table_name 的特定欄位資料全部列出來select *from table_namewhere columnl = *and column2 ; yyy or column3 ; zzz說明:1 .*表示全部的欄位都列出來。2 .where之彳爰是接條件式,把符合條件的資料列出來。select column1,column2from table_nameorder by column2 desc說明:order by是指定以某個欄位做排序,desc是指從大到小排列,若沒
7、有指明,則是從小到大 排列組合查詢組合查詢是指所查詢得資料來源并不只有單一的表格,而是聯(lián)合一個以上的表格才能夠得到結(jié)果的。select *from table1,table2where table1.colum1=table2.column1說明:1 .查詢兩個表格中其中column1值相同的資料。2 .當然兩個表格相互比較的欄位,其資料形態(tài)必須相同。3 .一個復雜的查詢其動用到的表格可能會很多個。整合性的查詢:select count (*)from table_namewhere column_name = *說明:查詢符合條件的資料共有幾筆。select sum(column1)from
8、 table_name說明:1 .計算出總和,所選的欄位必須是可數(shù)的數(shù)字形態(tài)。2 .除此以外還有 avg()是計算平均、max()、min()計算最大最小值的整合性查詢。select column1,avg(column2)from table_namegroup by column1having avg(column2) ; *說明:1 .group by:以column1 為一組計算 column2 的平均值必須和 avg、sum等整合性查詢的關(guān)鍵字 一起使用。2 .having :必須和group by 一起使用作為整合性的限制。復合性的查詢select *from table_name
9、1where exists ( select *from table_name2where conditions )說明:1 .where 的 conditions 可以是另夕卜個的 query。2 .exists在此是指存在與否。select *from table_name1where column1 in (select column1from table_name2 where conditions ) 說明:1. in彳爰面接的是一個集合,表示 column1存在集合里面。2. select出來的資料形態(tài)必須符合column1。其他查詢select *from table_name1
10、where column1 like x%說明:like必須和彳爰面的x%相呼應表示以 x為開頭的字串。select *from table_name1where column1 in (*,yyy,.)說明:in彳爰面接的是一個集合,表示 column1存在集合里面。select *from table_name1where column1 between xx and yy說明:between 表示column1的值介於 xx和yy之間。3、更改資料:update table_nameset column1=*where conditoins說明:1 .更改某個欄位設(shè)定其值為*。2 .co
11、nditions 是所要符合的條件、若沒有 where則整個table的那個欄位都會全部被更改。4、刪除資料:delete from table_namewhere conditions說明:刪除符合條件的資料。說明:關(guān)于where條件后面如果包含有日期的比較,不同數(shù)據(jù)庫有不同的表達式。具體如下:(1)如果是 access 數(shù)據(jù)庫,則為: where mydate;#2000-01-01#(2)如果是 oracle 數(shù)據(jù)庫,貝u為:where mydate;cast(2000-01-01 as date)或:where mydate;to_date(2000-01-0t,yyyy-mm-dd)
12、在delphi中寫成:thedate=2000-01-01;query1.sql.add(select * from abc where mydate;cast(+thedate+ as date);如果比較日期時間型,則為:where mydatetime;to_date(2000-01-01 10:00:01,yyyy-mm-dd hh24:mi:ss)存儲過程的特點:sybase的存儲過程是集中存儲在sql server中的預先定義且已經(jīng)編譯好的事務。存儲過程由sql語句和流程控制語句組成。它的功能包括:接受參數(shù);調(diào)用另一過程;返回一個狀態(tài)值給調(diào)用過程或批處理,指示調(diào)用成功或失敗;返回若
13、干個參數(shù)值給 調(diào)用過程或批處理,為調(diào)用者提供動態(tài)結(jié)果;在遠程sql server 中運行等。存儲過程的性能特點如下:存儲過程是預編譯過的,這就意味著它與普通的 sql語句或批處理的 sql語句不同, 當首次運行一個存儲過程時,sql server的查詢處理器對其進行分析,在排除了語法錯誤之 后形成存儲在系統(tǒng)中的可執(zhí)行方案。由于查詢處理的大部分工作已經(jīng)完成,所以存儲過程執(zhí)行速度很快。存儲過程和待處理的數(shù)據(jù)都放在同一臺運行sql server的計算機上,使用存儲過程查詢當?shù)氐臄?shù)據(jù),效率自然很高。存儲過程一般多由 client端通過存儲過程的名字進行調(diào)用,即跨網(wǎng)傳送的只是存儲過 程的名字及少量的參數(shù)
14、(如果有的話,而不是構(gòu)成存儲過程的許多sql語句,因此可以減少網(wǎng)絡(luò)傳輸量,加快系統(tǒng)響應速度。讀書破萬卷下筆如有神存儲過程還有著如同c語言子函數(shù)那樣的被調(diào)用和返回值的方便特性。所以,存儲過程大大增強了sql語言的功能、效率和靈活性。掌握和應用好存儲過程,對進一步發(fā)揮sybase數(shù)據(jù)庫系統(tǒng)的強大功能有著重要的意義。存儲過程的語法規(guī)則建立存儲過程的語法規(guī)則為:create proccedurename;number(parameter_name datatype=defaultoutput,parameter_name datatype=defaultoutpu川)wit
15、h recompileas sql_statements使用存儲過程的語法規(guī)則為:executereturn-status=cedurename;numberparameter_name=value|parameter_name=varialbeoutput,parameter_name=value|parameter_name=variableoutput with recompilepage下面簡要介紹這兩個命令的常用選項以及建立和使用存儲過程的要點,關(guān)于選項的更為詳細的說明請參考有關(guān)手冊。
16、cedure_name:存儲過程的名字。parameter_name datatype=defaultoutput:形式參數(shù)(形參)的名稱、類型。df ault是賦予的缺省值(可選),output指定本參數(shù)為輸出參數(shù)(可選)。形參是存儲過程中 的自變量,可以有多個,名字必須以打頭,最長30個字符。sql_statements:定義存儲過程功能的sql語句。return_status:接受存儲過程返回狀態(tài)值的變量。讀書破萬卷下筆如有神parameter_name=value:實際參數(shù)(實參),parameter_name 為實參的名稱(可選)。如果某個實參以 parameter_name=val
17、ue 提供,那么隨后的實參也都要采用 這一形式提供。parameter_name=varialbeoutput:將變量 varialbe 中的值作為實參傳遞給形參 parameter_name(可選),如果變量varialbe 是用來接受返回的參數(shù)值 ,則選項output不可缺少。存儲過程的建立和使用,我們將通過幾個例子進行介紹。假設(shè)有一個用下述語句生成的技能工資表rs-ls-gz-jineng:create table rs_ls_gz_jineng /*技能工資表 */(geren_id char(4), /*個人代碼 */riqi smalldatetime, /*執(zhí)行日期 */yuan
18、yin_id char(1) null, /*變動原因代碼 */jine smallmoney) /*技能工資金額*/該表存儲著某單位員工多年來技能工資的歷史檔案。例1.如果要查詢?nèi)w員工的技能工資變動歷史,則可先建立一個存儲過程p-rsgz-jineg-all:create procedure p_rsgz_jineng_all asselect *from rs_ls_gz_jinengorder by gerenid,riqi然后用批處理語句調(diào)用存儲過程p_rsgz_jineng_all進行查詢:execute p_rsgz_jineng_all本例只顯示查詢到的數(shù)據(jù),無輸入、輸出參量,
19、是最簡單的一個存儲過程。例2.如果要查詢某人技能工資的變動歷史,可建立另一個存儲過程 p_rsgz_jineng:create procedure p_rsgz_jineng c_gerenid char(4)asselect *from rs_ls_gz_jinengwhere geren_id=c_gerenidorder by riqi之后用批處理語句調(diào)用存儲過程p_rs_gz_jineng進行查詢:declare gerenid char(4)select gerenid=0135” /*設(shè)要查詢員工的個人代碼為0135 */execute p_rsgz_jeneng c_gereni
20、d=gerenid存儲過程p_rsgz_jineng 中定義了一個形參c_gerenid,是字符型變量。在調(diào)用該 過程的批處理中,既可以用具體的值也可以用變量作為實參。用變量作實參(如本例)時,必須用del are語句加以說明。值得注意的是,在批處理的調(diào)用過程語句中,c_gerenid=gerenid 中的 c_gerenid是存儲過程 p_rsgz_jineng 中的形參名,不是批處理中的變量,所以不能將它列入 d eclare 語句的變量單中。例3.如果要計算當月工資,就必須從工資歷史中查出員工距離當前最近的一次技能工資 變動的結(jié)果:create procedure p_rsgz_jine
21、ng_slt(c_gerenid char(4),sm_jine smallmoney output)asselect sm_jine=jinefrom rs_ls_gz_jinengwhere riqi=(select max(riqi)from rs_ls_gz_jinengwhere gerenid=c-gerenid)/*找出歷史記錄中距離當前最近的日期*/調(diào)用存儲過程p_rsgz_jineng_slt進行查詢:declare gerenid char(4),jine smallmoneyselect gerenid=0135”/*設(shè)要查詢員工的個人代碼為0135*/select ji
22、ne=0讀書破萬卷下筆如有神execute p_rsgz_jineng_slt c_gerenid=gerenid,sm_jine= jine output這里,變量 jine用來存儲過程形參 sm_jine 傳回的金額。在調(diào)用過程語句 中,sm_jie = jine output中的output 不可省略。否則,變量jine將得不到形參傳回的數(shù)值而始終為零(等于初值)。例4.查到了個人代碼為0135”員工的技能工資就顯示其歷史紀錄,查不到則顯示一條 出錯信息。create procedure p_rsgz_jineng_rtnc_gerenid char(4)asdeclare errcode smallintselect errcode=0if exists(select* from rs-ls-gz-jinengwhere gerenid=c-gerenid)beginselect *from rs_ls_gz_jinengwhrer geren_id=c_gerenidorder by riqireturn errcodeendeslebeginselect errcode=1return errcodeend調(diào)用存儲過程p_rsgz_jineng_rtn:declare gerenid c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度排水設(shè)施保險合同4篇
- 二零二五版飯店蔬菜肉類產(chǎn)地直供合作合同2篇
- 二零二五年度全新科技項目居間合作費合同模板下載2篇
- 二零二五年度內(nèi)蒙古肉牛產(chǎn)業(yè)鏈人才培養(yǎng)與引進合同
- 2025年度汽車銷售促銷活動執(zhí)行合同模板
- 二零二五年度學校室內(nèi)外體育設(shè)施一體化采購合同范本3篇
- 2025年度民間借貸合同監(jiān)督與委托管理服務合同4篇
- 2025年度面粉加工企業(yè)二零二五年度綠色有機面粉采購合同4篇
- 2025年度新能源汽車抵押擔保服務合同
- 二零二五年度公共綠地養(yǎng)護管理合同范本3篇
- 廣東省茂名市電白區(qū)2024-2025學年七年級上學期期末質(zhì)量監(jiān)測生物學試卷(含答案)
- 2024版?zhèn)€人私有房屋購買合同
- 2024爆炸物運輸安全保障協(xié)議版B版
- 2025年度軍人軍事秘密保護保密協(xié)議與信息安全風險評估合同3篇
- 《食品與食品》課件
- 讀書分享會《白夜行》
- 光伏工程施工組織設(shè)計
- DB4101-T 121-2024 類家庭社會工作服務規(guī)范
- 化學纖維的鑒別與測試方法考核試卷
- 2024-2025學年全國中學生天文知識競賽考試題庫(含答案)
- 自動駕駛汽車道路交通安全性探討研究論文
評論
0/150
提交評論