關註上方「數據挖掘工程師」,選擇星標,
關鍵時間,第一時間送達!
整理自:SQL資料庫開發
關於Insert字符串 ,在(單引號,雙引號)這個方面發生了問題,其實主要是因為數據類型和變量在作怪。下面我們就分別講述,雖然說的是Insert語句, 但是Select、Update、Delete語句都是一樣的。mytabe
假如要插入一個名為張紅的人,因為是字符串,所以Insert語句中名字兩邊要加單撇號,數值型可以不加單引號
欄位1 username 字符串型(姓名)
欄位2 age 數字型(年齡)
欄位3 birthday 日期型(生日)
欄位4 marry 布爾型(是否結婚,結婚為True,未結婚為False)
欄位5 leixing 字符串型(類型)strsql="Insert into mytable(username) values('張紅')"
strsql="Insert into mytable(username) values('" & thename & "')"
Insert into mytable(username) values('是張紅前面的部分,thename是字符串變量,')
將thename變量替換成張紅,再用&將三段連接起來,就變成了strsql="Insert into mytable(username) values(『張紅')」
如果要插入兩個欄位,如姓名為「張紅」,類型為「學生」strsql="Insert into mytable(username,leixing) values('張紅','學生')"
如果現在姓名是一個變量thename,類型也是一個變量thetype,strsql=」Insert into mytable(username,leixing) values(『」 & thename & 「','」 & thetype & 「')」
和第一個例子一樣,將thename和thetype替換後,再用連接符,就連接成和上面一樣的字符串了。假如插入一個年齡為12的記錄,要注意數字不用加單撇號strsql=「Insert into mytable(age) values(12)」
strsql=「Insert into mytable(age) values(「 & theage & 「)」
Insert into mytable(age) values
(是12前面的部分,theage是年齡變量,)是12後面部分。將theage替換,再用&連接符將三部分連接起來,就變為了和上面一樣的字符。日期型和字符串型類似,但是要將單撇號替換為#號。(不過,access資料庫中用單撇號也可以)strsql=「Insert into mytable(birthday) values(#1980-10-1#)」
strsql=「Insert into mytable(birthday) values(#」 & thedate & 「#)」
布爾型和數字型類似:只不過只有兩個值 True和False,strsql=「Insert into mytable(marry) values(True)」
strsql=「Insert into mytable(birthday) values(」 & themarry& 「)」
strsql=「Insert into mytable(username,age) values(『張紅',12)」
仔細注意上式:因為姓名是字符串,所以張紅兩邊加了單撇號;年齡是數字,所以沒有加單撇號。如果換成字符串變量thename和數字變量theage,則變為:strsql=「Insert into mytable(username,age) values(『」 & thename & 「',」 & theage & 「)」
注意上式,總之,替換變量,再連接後要完成和上邊一樣的字符串。strsql=「Insert into mytable(username) values(『張紅')」
strsql=「Insert into mytable(username) values(『」 「')」
strsql=「Insert into mytable(username) values(『」 & & 「')」
strsql=「Insert into mytable(username) values(『」 & thename & 「')」 -
我們在寫SQL查詢的時候還是不厭其煩的加上單引號吧,似乎那沒有壞處。因為對於主鍵為字符串類型的查詢語句,加不加單引號的性能是相差百倍一上的。