現(xiàn)在你下定決心要榨干Random 函數(shù)的最后一滴油,那么你可能會(huì)一次取出多條隨機(jī)記錄或者想采用一定隨機(jī)范圍內(nèi)的記錄。把上面的標(biāo)準(zhǔn)Random 示例擴(kuò)展一下就可以用SQL應(yīng)對(duì)上面兩種情況了。
為了取出幾條隨機(jī)選擇的記錄并存放在同一recordset內(nèi),你可以存儲(chǔ)三個(gè)隨機(jī)數(shù),然后查詢數(shù)據(jù)庫(kù)獲得匹配這些數(shù)字的記錄:
SQL = “SELECT * FROM Customers WHERE ID = ” & RNumber & “ OR ID = ” & RNumber2 & “ OR ID = ” & RNumber3
假如你想選出10條記錄(也許是每次頁(yè)面裝載時(shí)的10條鏈接的列表),你可以用BETWEEN 或者數(shù)學(xué)等式選出第一條記錄和適當(dāng)數(shù)量的遞增記錄。這一操作可以通過(guò)好幾種方式來(lái)完成,但是 SELECT 語(yǔ)句只顯示一種可能(這里的ID 是自動(dòng)生成的號(hào)碼):
SQL = “SELECT * FROM Customers WHERE ID BETWEEN ” & RNumber & “ AND ” & RNumber & “+ 9”
注意:以上代碼的執(zhí)行目的不是檢查數(shù)據(jù)庫(kù)內(nèi)是否有9條并發(fā)記錄。
隨機(jī)讀取若干條記錄,測(cè)試過(guò)
Access語(yǔ)法:SELECT top 10 * From 表名 ORDER BY Rnd(id)
Sql server:select top n * from 表名 order by newid()
mysql select * From 表名 Order By rand() Limit n
Access左連接語(yǔ)法(最近開發(fā)要用左連接,Access幫助什么都沒(méi)有,網(wǎng)上沒(méi)有Access的SQL說(shuō)明,只有自己測(cè)試, 現(xiàn)在記下以備后查)
語(yǔ)法 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where 。。。
使用SQL語(yǔ)句 用。。。代替過(guò)長(zhǎng)的字符串顯示
語(yǔ)法:
SQL數(shù)據(jù)庫(kù):select case when len(field)》10 then left(field,10)+’。。?!?else field end as news_name,news_id from tablename
Access數(shù)據(jù)庫(kù):SELECT iif(len(field)》2,left(field,2)+’。。?!琭ield) FROM tablename;
Conn.Execute說(shuō)明
Execute方法
該方法用于執(zhí)行SQL語(yǔ)句。根據(jù)SQL語(yǔ)句執(zhí)行后是否返回記錄集,該方法的使用格式分為以下兩種:
1.執(zhí)行SQL查詢語(yǔ)句時(shí),將返回查詢得到的記錄集。用法為:
Set 對(duì)象變量名=連接對(duì)象.Execute(“SQL 查詢語(yǔ)言”)
Execute方法調(diào)用后,會(huì)自動(dòng)創(chuàng)建記錄集對(duì)象,并將查詢結(jié)果存儲(chǔ)在該記錄對(duì)象中,通過(guò)Set方法,將記錄集賦給指定的對(duì)象保存,以后對(duì)象變量就代表了該記錄集對(duì)象。
2.執(zhí)行SQL的操作性語(yǔ)言時(shí),沒(méi)有記錄集的返回。此時(shí)用法為:
連接對(duì)象.Execute “SQL 操作性語(yǔ)句” [, RecordAffected][, Option]
·RecordAffected 為可選項(xiàng),此出可放置一個(gè)變量,SQL語(yǔ)句執(zhí)行后,所生效的記錄數(shù)會(huì)自動(dòng)保存到該變量中。通過(guò)訪問(wèn)該變量,就可知道SQL語(yǔ)句隊(duì)多少條記錄進(jìn)行了操作。
·Option 可選項(xiàng),該參數(shù)的取值通常為adCMDText,它用于告訴ADO,應(yīng)該將Execute方法之后的第一個(gè)字符解釋為命令文本。通過(guò)指定該參數(shù),可使執(zhí)行更高效。
·BeginTrans、RollbackTrans、CommitTrans方法
這三個(gè)方法是連接對(duì)象提供的用于事務(wù)處理的方法。BeginTrans用于開始一個(gè)事物;RollbackTrans用于回滾事務(wù);CommitTrans用于提交所有的事務(wù)處理結(jié)果,即確認(rèn)事務(wù)的處理。
事務(wù)處理可以將一組操作視為一個(gè)整體,只有全部語(yǔ)句都成功執(zhí)行后,事務(wù)處理才算成功;若其中有一個(gè)語(yǔ)句執(zhí)行失敗,則整個(gè)處理就算失敗,并恢復(fù)到處里前的狀態(tài)。
BeginTrans和CommitTrans用于標(biāo)記事務(wù)的開始和結(jié)束,在這兩個(gè)之間的語(yǔ)句,就是作為事務(wù)處理的語(yǔ)句。判斷事務(wù)處理是否成功,可通過(guò)連接對(duì)象的Error集合來(lái)實(shí)現(xiàn),若Error集合的成員個(gè)數(shù)不為0,則說(shuō)明有錯(cuò)誤發(fā)生,事務(wù)處理失敗。Error集合中的每一個(gè)Error對(duì)象,代表一個(gè)錯(cuò)誤信息。
SQL語(yǔ)句大全精要
? ?DELETE語(yǔ)句
DELETE語(yǔ)句:用于創(chuàng)建一個(gè)刪除查詢,可從列在 FROM 子句之中的一個(gè)或多個(gè)表中刪除記錄,且該子句滿足 WHERE 子句中的條件,可以使用DELETE刪除多個(gè)記錄。
語(yǔ)法:DELETE [table.*] FROM table WHERE criteria
語(yǔ)法:DELETE * FROM table WHERE criteria=’查詢的字’
說(shuō)明:table參數(shù)用于指定從其中刪除記錄的表的名稱。
criteria參數(shù)為一個(gè)表達(dá)式,用于指定哪些記錄應(yīng)該被刪除的表達(dá)式。
可以使用 Execute 方法與一個(gè) DROP 語(yǔ)句從數(shù)據(jù)庫(kù)中放棄整個(gè)表。不過(guò),若用這種方法刪除表,將會(huì)失去表的結(jié)構(gòu)。不同的是當(dāng)使用 DELETE,只有數(shù)據(jù)會(huì)被刪除;表的結(jié)構(gòu)以及表的所有屬性仍然保留,例如字段屬性及索引。
UPDATE
有關(guān)UPDATE,急?。。。。。。。。。?!
在ORACLE數(shù)據(jù)庫(kù)中
表 A ( ID ,F(xiàn)IRSTNAME,LASTNAME )
表 B( ID,LASTNAME)
表 A 中原來(lái)ID,F(xiàn)IRSTNAME兩個(gè)字段的數(shù)據(jù)是完整的
表 B中原來(lái)ID,LASTNAME兩個(gè)字段的數(shù)據(jù)是完整的
現(xiàn)在要把表 B中的LASTNAME字段的相應(yīng)的數(shù)據(jù)填入到A表中LASTNAME相應(yīng)的位置。兩個(gè)表中的ID字段是相互關(guān)聯(lián)的。
update a set a.lastname=(select b.lastname from b where a.id=b.id)
掌握SQL四條最基本的數(shù)據(jù)操作語(yǔ)句:Insert,Select,Update和Delete。
練掌握SQL是數(shù)據(jù)庫(kù)用戶的寶貴財(cái)富。在本文中,我們將引導(dǎo)你掌握四條最基本的數(shù)據(jù)操作語(yǔ)句—SQL的核心功能—來(lái)依次介紹比較操作符、選擇斷言以及三值邏輯。當(dāng)你完成這些學(xué)習(xí)后,顯然你已經(jīng)開始算是精通SQL了。
在我們開始之前,先使用CREATE TABLE語(yǔ)句來(lái)創(chuàng)建一個(gè)表(如圖1所示)。DDL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)對(duì)象如表、列和視進(jìn)行定義。它們并不對(duì)表中的行進(jìn)行處理,這是因?yàn)镈DL語(yǔ)句并不處理數(shù)據(jù)庫(kù)中實(shí)際的數(shù)據(jù)。這些工作由另一類SQL語(yǔ)句—數(shù)據(jù)操作語(yǔ)言(DML)語(yǔ)句進(jìn)行處理。
SQL中有四種基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于這是大多數(shù)SQL用戶經(jīng)常用到的,我們有必要在此對(duì)它們進(jìn)行一一說(shuō)明。在圖1中我們給出了一個(gè)名為EMPLOYEES的表。其中的每一行對(duì)應(yīng)一個(gè)特定的雇員記錄。請(qǐng)熟悉這張表,我們?cè)诤竺娴睦又袑⒁玫剿?/p>
The Execute method executes a specified query, SQL statement, stored procedure, or provider-specific text.
Execute的作用是:執(zhí)行一個(gè)查詢語(yǔ)句、陳述語(yǔ)句、程序或技術(shù)提供對(duì)象[provider]的詳細(xì)文本。
The results are stored in a new Recordset object if it is a row-returning query. A closed Recordset object will be returned if it is not a row-returning query.
如果返回行[row-returning]查詢語(yǔ)句,那么結(jié)果將被存儲(chǔ)在一個(gè)新的記錄對(duì)象中;如果它不是一個(gè)返回行[row-returning]查詢語(yǔ)句,那么它將返回一個(gè)關(guān)閉的記錄對(duì)象。
Note: The returned Recordset is always a read-only, forward-only Recordset!
注意:返回的Recordset是一個(gè)只讀的、只向前兼容的Recordset。
Tip: To create a Recordset with more functionality, first create a Recordset object. Set the desired properties, and then use the Recordset object‘s Open method to execute the query.
提示:在第一次創(chuàng)建Recordset對(duì)象時(shí),需要將它創(chuàng)建為一個(gè)更具功能性的Recordset對(duì)象。設(shè)置一個(gè)我們所希望的屬性,使用Recordset對(duì)象的Open方法去執(zhí)行查詢語(yǔ)句。
Syntax for row-returning
row-returning[返回行]語(yǔ)法
數(shù)據(jù)庫(kù)
1.創(chuàng)建數(shù)據(jù)庫(kù)
create database [if not exists] db_name [character set xxx] [collate xxx]
*創(chuàng)建一個(gè)名稱為freedom的數(shù)據(jù)庫(kù)。
create database if not exists freedom;
*創(chuàng)建一個(gè)使用utf8字符集的freedom2數(shù)據(jù)庫(kù)。
create database freedom2 character set utf8;
*創(chuàng)建一個(gè)使用utf8字符集,并帶校對(duì)規(guī)則的freedom3數(shù)據(jù)庫(kù)。
create database freedom3 character set utf8 collate utf8_bin ;
2.查看數(shù)據(jù)庫(kù)
show databases;查看所有數(shù)據(jù)庫(kù)
show create database db_name; 查看數(shù)據(jù)庫(kù)的創(chuàng)建方式
3.修改數(shù)據(jù)庫(kù)
alter database db_name [character set xxx] [collate xxxx]
4.刪除數(shù)據(jù)庫(kù)
drop database [if exists] db_name;
5.使用數(shù)據(jù)庫(kù)
切換數(shù)據(jù)庫(kù) use db_name;
查看當(dāng)前使用的數(shù)據(jù)庫(kù) select database();
評(píng)論