sqlsetselect
① sql2000的insert,select,update和delete命令使用
(1)數據記錄篩選:
sql="select*from數據表where欄位名=欄位值orderby欄位名[desc]"
sql="select*from數據表where欄位名like'%欄位值%'orderby欄位名[desc]"
sql="selecttop10*from數據表where欄位名orderby欄位名[desc]"
sql="select*from數據表where欄位名in('值1','值2','值3')"
sql="select*from數據表where欄位名between值1and值2"
(2)更新數據記錄:
sql="update數據表set欄位名=欄位值where條件表達式"
sql="update數據表set欄位1=值1,欄位2=值2……欄位n=值nwhere條件表達式"
(3)刪除數據記錄:
sql="deletefrom數據表where條件表達式"
sql="deletefrom數據表"(將數據表所有記錄刪除)
(4)添加數據記錄:
sql="insertinto數據表(欄位1,欄位2,欄位3…)values(值1,值2,值3…)"
sql="insertinto目標數據表select*from源數據表"(把源數據表的記錄添加到目標數據表)
(5)數據記錄統計函數:
AVG(欄位名)得出一個表格欄平均值
COUNT(*|欄位名)對數據行數的統計或對某一欄有值的數據行數統計
MAX(欄位名)取得一個表格欄最大的值
MIN(欄位名)取得一個表格欄最小的值
SUM(欄位名)把數據欄的值相加
引用以上函數的方法:
sql="selectsum(欄位名)as別名from數據表where條件表達式"
setrs=conn.excute(sql)
用rs("別名")獲取統的計值,其它函數運用同上。
(5)數據表的建立和刪除:
CREATETABLE數據表名稱(欄位1類型1(長度),欄位2類型2(長度)……)
② Sql中的set和select賦值方式的區別
最近的項目寫的SQL比較多,經常會用到對變數賦值,而我使用SET和SELECT都會達到效果。
那就有些迷惑,這兩者有什麼區別呢?什麼時候哪該哪個呢?
經過網上的查詢,及個人練習,總結兩者有以下幾點主要區別:
假定有設定變數:
復制代碼 代碼如下:
DECLARE @VAR1 VARCHAR(1)
DECLARE @VAR2 VARCHAR(2)
1、SELECT可以在一條語句里對多個變數同時賦值,而SET只能一次對一個變數賦值,如下:
復制代碼 代碼如下:
SELECT @VAR1='Y',@VAR2='N'
-- 而SET要達到同樣的效果,需要:
SET @VAR1='Y'
SET @VAR2='N'
/*
說到這個,SQL內置的變數:@@ERROR 和 @@ROWCOUNT必須要在一句SQL語句中捕獲。如果用set分兩句來獲取它們,將獲取不完整,這時就應該用select來獲取值。
*/
2、表達式返回多個值時,用SET將會出錯,而SELECT將取最後一個值,如下:
復制代碼 代碼如下:
----以下假定Permission表有多個IsRight記錄
SELECT @VAR1 = IsRight FROM Permission --將取最後一個值
SET @VAR1 = IsRight FROM Permission --將報錯
3、表達式無返回值時,用SET將置變數值為NULL,用SELECT交保持變數值,如下:
復制代碼 代碼如下:
----以下假定Permission記錄為空
SET @VAR1 = '初始值'
SELECT @VAR1 = IsRight FROM Permission --此時@VAR1為'初始值'
SET @VAR1 = (SELECT IsRight FROM Permission) --此時@VAR1為NULL
4、使用標量子查詢時,如果無返回值,SET和SELECT一樣,都將置為NULL,如下:
復制代碼 代碼如下:
----以下假定Permission記錄為空
SET @VAR1 = '初始值'
SELECT @VAR1 =(SELECT IsRight FROM Permission ) --此時@VAR1為NULL
SET @VAR1 = ( SELECT IsRight FROM Permission) --此時@VAR1為NULL
③ pb 數據窗口中的 setsqlselect() 函數
setsqlselect() 函數:
獲取數據窗口的select語法。
定義一個字元變數:
string ls_sql
ls_sql = dw_1.getsqlselect()
用來拼接查詢條件,這樣可以不使用參數的形式動態拼接查詢條件來查詢。
要配合setsqlselect()函數一起使用。
先get出來,然後對ls_sql進行加工修改後,再dw_1.setsqlselect()重新給回去,那麼這個dw_1的後台語法就改變了,直接dw_1.retrieve(),就能按照新語法取值了。
這個修改的時候,只能修改where條件order by等。列的名字和個數,順序,都不能做任何改動。
④ SQL中SET和SELECT的區別,說通俗點
select是查詢,只是把表中的數據顯示出來給你看。例:select
姓名
from
表1(查詢表1裡面的姓名欄位)
set是設置值,一般配合update更新用。例:update
表1
set
姓名=小明
(把表1的姓名欄位設置為小明)