|
訪問數(shù)據(jù)庫(4)
大家好,我是武漢華師的sunwen,前些天給大家講述了一些SQL的基本語法,然后就好幾天沒有了下文。這是因為學校這幾天正在開運動會,我也跑了800米,雖然沒有名次,但也累得半死,畢竟我已拼盡了全力。本來我今天是沒有力氣寫下去的,但是想起我的學習ASP的過程,我就又打起精神,打開電腦,寫了起來。(很有敬業(yè)精神吧。
今天開始我還是要向大家講一點SQL的知識,然后再回到ASP中來。
B.插入數(shù)據(jù)
這當然也是一個非常重要內(nèi)容,看下面的介紹吧:
1.column_list參數(shù)指定insert語句向哪些列中插入數(shù)據(jù)
2.values子句為新插入行中column_list參數(shù)所指定列提供數(shù)據(jù),這些數(shù)據(jù)可以用常量或表達式表示,也可使用defalt關(guān)鍵字說明向列中插入其默認值
3.default values說明向表中所有列插入其默認值
4.選用select_statement時,insert語句將select_statement子句所返回的結(jié)果插入到指定表中
5.table_souces說明要插入數(shù)據(jù)的表或視圖
例一:使用數(shù)值列表方式向表中插入數(shù)據(jù)的時候,要求values子句中各列數(shù)據(jù)的排列順序與表中定義順序完全一致 insert tb values ('ypf','china','99999')
這個例子中tb表示一個表的名稱,values后表示要向表中的列插入的數(shù)據(jù),其排列順序應與實際表中的順序一致
例二:也可以指明順序:例如 insert tb(phone,name) values ('899999','user')
這個例子中tb(phone,name)表示tb表中的phone和name這兩列,而values ('899999','user')指定了向這兩列插入的內(nèi)容。列與要插入的數(shù)據(jù)是一一對應的。另外,我們可以變量來代替數(shù)據(jù),如:values (a,b)中,a,b就是兩個變量,但是要切記,其變量類型一定要與列的類型一致,否則將產(chǎn)生錯誤。我們還可以將數(shù)據(jù)用default代替,用來表示向這一列插入默認值。如:insert tb(phone,name) values (DEFAULT','user')
好了,讓我們再開始ASP吧!
通過上面的課程我們已經(jīng)知道了如何對一個數(shù)據(jù)庫進行一些操作。但是我們知道,我們現(xiàn)在是在用vbscript來編寫ASP,而vb中字符型變量的賦值形式是a="abcd",也就是說,我們在引用a這個字符型數(shù)據(jù)時,實際上是在引用"abcd"。比如說一句這樣的語句:insert tb values (a,'poi')這其中的a代表"abcd",而這個語句實際上就是insert tb values ("abcd",'poi'),發(fā)現(xiàn)問題了吧!我們在上一節(jié)課中講到SQL中的字符型變量的引用應當是用單引號來分界的,而我們前面一個語句中用的是雙引號。這必將產(chǎn)生問題。所以,當我們要在一個頁面中放置一個表單,其中包括一個text的話,我們用另一個ASP來引用這個text的內(nèi)容,并要將這個text中的內(nèi)容寫入數(shù)據(jù)庫的時候,用一個insert語句就會產(chǎn)生問題,而要將其中的雙引號變?yōu)閱我栍质潜容^困難的。所以,我今天要向大家介紹另一種向數(shù)據(jù)庫插入數(shù)據(jù)的方法,這個方法便是利用記錄集的addnew方法。
首先看下面一個例子:
set objconn=server.createobject("adodb.connection") objconn.open "dsn=mydb;database=db2;uid=;pwd=;" set rs=server.createobject("adodb.recordset") rs.open "ships",objconn,,,adcmdtable objrs.addnew objrs("companyname")="華師科技" objrs.update objrs.close
是不是看得懂呢?讓我來解釋一下吧!rs.open "ships",objconn,,,adcmdtable這一句就是要利用objconn這個連接來打開ships這個表。接著有objrs.addnew這個語句來告訴系統(tǒng)我要進行addnew操作了,然后將表中的companyname這個字段的內(nèi)容替換成“華師科技”,其實這一系列動作都是在內(nèi)存中進行的,并沒有寫入磁盤,而objrs.update這一句則將其寫入磁盤.最后關(guān)閉記錄集。是不是很簡單。
好了,下一課再見!
慢著!隨著大學學習的不斷進行,我在高中養(yǎng)成的勤奮學習的好習慣也漸漸沒有了,變得異常懶(原來大學遠沒有想象的那么好),所以這一篇寫完了,下一篇不知什么時候才會出來。所以大家多摧一摧我,給我打一打氣!mrfat@china.com
|