① 什麼是sql
SQL是Structured Quevy Language(結構化查詢語言)的縮寫。SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。在使用它時,只需要發出「做什麼」的命令,「怎麼做」是不用使用者考慮的。SQL功能強大、簡單易學、使用方便,已經成為了資料庫操作的基礎,並且現在幾乎所有的資料庫均支持SQL。 <br>
##1 二、SQL資料庫數據體系結構 <br>
SQL資料庫的數據體系結構基本上是三級結構,但使用術語與傳統關系模型術語不同。在SQL中,關系模式(模式)稱為「基本表」(base table);存儲模式(內模式)稱為「存儲文件」(stored file);子模式(外模式)稱為「視圖」(view);元組稱為「行」(row);屬性稱為「列」(column)。名稱對稱如^00100009a^: <br>
##1 三、SQL語言的組成 <br>
在正式學習SQL語言之前,首先讓我們對SQL語言有一個基本認識,介紹一下SQL語言的組成: <br>
1.一個SQL資料庫是表(Table)的集合,它由一個或多個SQL模式定義。 <br>
2.一個SQL表由行集構成,一行是列的序列(集合),每列與行對應一個數據項。 <br>
3.一個表或者是一個基本表或者是一個視圖。基本表是實際存儲在資料庫的表,而視圖是由若干基本表或其他視圖構成的表的定義。 <br>
4.一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲上一個物理文件對應。 <br>
5.用戶可以用SQL語句對視圖和基本表進行查詢等操作。在用戶角度來看,視圖和基本表是一樣的,沒有區別,都是關系(表格)。 <br>
6.SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada語言等。SQL用戶也能作為獨立的用戶介面,供交互環境下的終端用戶使用。 <br>
##1 四、對資料庫進行操作 <br>
SQL包括了所有對資料庫的操作,主要是由4個部分組成: <br>
1.數據定義:這一部分又稱為「SQL DDL」,定義資料庫的邏輯結構,包括定義資料庫、基本表、視圖和索引4部分。 <br>
2.數據操縱:這一部分又稱為「SQL DML」,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。 <br>
3.數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。 <br>
4.嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。 <br>
下面我們將分別介紹: <br>
##2 (一)數據定義 <br>
SQL數據定義功能包括定義資料庫、基本表、索引和視圖。 <br>
首先,讓我們了解一下SQL所提供的基本數據類型:(如^00100009b^) <br>
1.資料庫的建立與刪除 <br>
(1)建立資料庫:資料庫是一個包括了多個基本表的數據集,其語句格式為: <br>
CREATE DATABASE <資料庫名> 〔其它參數〕 <br>
其中,<資料庫名>在系統中必須是唯一的,不能重復,不然將導致數據存取失誤。〔其它參數〕因具體資料庫實現系統不同而異。 <br>
例:要建立項目管理資料庫(xmmanage),其語句應為: <br>
CREATE DATABASE xmmanage <br>
(2) 資料庫的刪除:將資料庫及其全部內容從系統中刪除。 <br>
其語句格式為:DROP DATABASE <資料庫名> <br>
例:刪除項目管理資料庫(xmmanage),其語句應為: <br>
DROP DATABASE xmmanage <br>
2.基本表的定義及變更 <br>
本身獨立存在的表稱為基本表,在SQL語言中一個關系唯一對應一個基本表。基本表的定義指建立基本關系模式,而變更則是指對資料庫中已存在的基本表進行刪除與修改。 <br>
……<br>
② SQl指的是什麼
SQL全稱是「結構化查詢語言(Structured Query Language)」
SQL(STructured Query Language)是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統。
SQL同時也是資料庫文件格式的擴展名。
SQL是高級的非過程化編程語言,允許用戶在高層數據結構上工作。他不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統可以使用相同的SQL語言作為數據輸入與管理的介面。它以記錄集合作為操縱對象,所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為另一條SQL語句的輸入,所以SQL語言可以嵌套,這使他具有極大的靈活性和強大的功能,在多數情況下,在其他語言中需要一大段程序實現的一個單獨事件只需要一個SQL語句就可以達到目的,這也意味著用SQL語言可以寫出非常復雜的語句。
結構化查詢語言(Structured Query Language)最早的是IBM的聖約瑟研究實驗室為其關系資料庫管理系統SYSTEM R開發的一種查詢語言,它的前身是SQUARE語言。SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應用。如今無論是像Oracle ,Sybase,Informix,SQL server這些大型的資料庫管理系統,還是像Visual Foxporo,PowerBuilder這些微機上常用的資料庫開發系統,都支持SQL語言作為查詢語言。
美國國家標准局(ANSI)與國際標准化組織(ISO)已經制定了 SQL 標准。ANSI 是一個美國工業和商業集團組織,發展美國的商務和通訊標准。ANSI 同時也是 ISO 和 International Electrotechnical Commission(IEC)的成員之一。ANSI 發布與國際標准組織相應的美國標准。1992年,ISO 和 IEC 發布了 SQL 的國際標准,稱為 SQL-92。ANSI 隨之發布的相應標準是 ANSI SQL-92。ANSI SQL-92 有時被稱為 ANSI SQL。盡管不同的關聯式資料庫使用的 SQL 版本有一些差異,但大多數都遵循 ANSI SQL 標准。SQL Server 使用 ANSI SQL-92 的擴展集,稱為 T-SQL,其遵循 ANSI 制定的 SQL-92 標准。
SQL語言包含4個部分:
數據定義(DDL)語言(如CREATE, DROP,ALTER等語句)
數據操縱(DML)語言(INSERT, UPDATE, DELETE語句)
數據查詢語言(SELECT語句)
數據控制語言(如GRANT,REVOKE,COMMIT, ROLLBACK等語句)
SQL 語言包括兩種主要程式設計語言類別的陳述式: 資料定義語言 (DDL)與資料操作語言 (DML)。
③ SQL的組成分有哪幾部分
SQL的組成一般可以分為6個部分,分別是【數據查詢語言】、【數據操作語言】、【事務處理語言】、【數據控制語言】、【數據定義語言】、【指針控制語言】。
1:數據查詢語言(DQL:Data Query Language):
它的語句也稱為「數據檢索語句」,用以從表中獲得數據。保留字SELECT是用得最多的,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING,一般與其他類型SQL語句一起使用。
2:數據操作語言(DML:Data Manipulation Language):
它的語句包括動詞INSERT,UPDATE和DELETE。它們分別用於添加,修改和刪除表中的行。也稱為動作查詢語言。
3:事務處理語言(TPL):
它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
4:數據控制語言(DCL):
它的語句通過GRANT或REVOKE獲得許可,確定單個用戶和用戶組對資料庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對表單個列的訪問。
5:數據定義語言(DDL):
它的語句包括動詞CREATE和DROP。在資料庫中創建新表或刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引等。
6:指針控制語言(CCL):
它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用於對一個或多個表單獨行的操作。
④ SQL包含哪四個部分功能
數據定義語言(DDL),用於定義和管理對象,例如資料庫、數據表以及視圖,例如:CRE-ATE、DROP、ALTER等語句。
數據操作語言(DML),用於操作資料庫對象所包含的數據,例如:INSERT(插入)、UP-DATE(修改)、DELETE(刪除)語句。
數據查詢語言(DQL),例如:SELECT語句。
數據控制語言(DCL),用於控制對資料庫對象操作的許可權,例如:GRANT、REVOKE、COMMIT、ROLLBACK等語句。
⑤ 請問SQL語句必須用大寫,是不是規范
SQL推薦使用大寫,但是使用小寫也可以,沒有硬性要求。
1、SQL語言簡介:
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。
2、功能:
SQL具有數據定義、數據操縱和數據控制的功能。
SQL數據定義功能:能夠定義資料庫的三級模式結構,即外模式、全局模式和內模式結構。在SQL中,外模式叫做視圖(View),全局模式簡稱模式( Schema),內模式由系統根據資料庫模式自動實現,一般無需用戶過問。
SQL數據操縱功能:包括對基本表和視圖的數據插入、刪除和修改,特別是具有很強的數據查詢功能。
SQL的數據控制功能:主要是對用戶的訪問許可權加以控制,以保證系統的安全性。
(5)sql部分要求擴展閱讀:
語句結構
結構化查詢語言包含6個部分:
1、數據查詢語言(DQL:Data Query Language):其語句也稱為「數據檢索語句」,用以從表中獲得數據,確定數據怎樣在應用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動詞。DQL保留字常與其它類型的SQL語句一起使用。
2、數據操作語言(DML:Data Manipulation Language):其語句包括動詞INSERT、UPDATE和DELETE。它們分別用於添加、修改和刪除。
3、事務控制語言(TCL):它的語句能確保被DML語句影響的表的所有行及時得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存點)命令、ROLLBACK(回滾)命令。
4、數據控制語言(DCL):它的語句通過GRANT或REVOKE實現許可權控制,確定單個用戶和用戶組對資料庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對表單個列的訪問。
5、數據定義語言(DDL):其語句包括動詞CREATE,ALTER和DROP。可在資料庫中創建新表或修改、刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引等。
6、指針控制語言(CCL):它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT,用於對一個或多個表單獨行的操作。
⑥ SQL的SELECT語句有哪幾部分構成, 作用分別是什麼, 如何利用它們表達查詢要求
1)SELECT 關鍵字
2)謂詞 :DISTINCT, TOP n
3)查詢欄位:* 或 用,分隔的欄位列表
4)FROM子句:用,分隔的表或視圖列表
5)WHERE子句 : 查詢條件
6)GROUP BY 子句 : 分組欄位
7)HAVING 子句 :針對分組欄位的查詢條件
8)ORDER BY子句 : 排序欄位列表
⑦ SQL SERVER 2008 對系統的要求
組件
要求
框架2
SQL Server 安裝程序安裝該產品所需的以下軟體組件:
.NET Framework 3.5 SP11
SQL Server Native Client
SQL Server 安裝程序支持文件
軟體2
SQL Server 安裝程序要求使用 Microsoft Windows Installer 4.5 或更高版本
安裝了所需的組件後,SQL Server 安裝程序將驗證要安裝 SQL Server 2008 R2 的計算機是否也滿足成功安裝所需的所有其他要求。有關詳細信息,請參閱系統配置檢查器的檢查參數。
網路軟體
SQL Server 2008 R2 64 位版本的網路軟體要求與 32 位版本的要求相同。
支持的操作系統都具有內置網路軟體。獨立的命名實例和默認實例支持以下網路協議:
Shared memory
Named Pipes
TCP/IP
VIA
注意 故障轉移群集不支持 Shared memory 和 VIA。
注意
不推薦使用 VIA 協議。後續版本的 Microsoft SQL Server 將刪除該功能。請避免在新的開發工作中使用該功能,並著手修改當前還在使用該功能的應用程序。
虛擬化
在以 Windows Server 2008 SP2 Standard、Enterprise 和 Datacenter 版本中的 Hyper-V 角色運行的虛擬機環境中支持 SQL Server 2008 R2。虛擬機必須運行本主題稍後部分中列出的特定 SQL Server 2008 R2 版本所支持的操作系統。
除了父分區所需的資源以外,還必須為每個虛擬機(子分區)的 SQL Server 2008 R2 實例提供足夠的處理器資源、內存和磁碟資源。具體要求在本主題的稍後部分中列出。3
在 Windows Server 2008 SP2 上的 Hyper-V 角色中,最多可以為運行 Windows Server 2008 SP2 32 位或 64 位版本的虛擬機分配四個虛擬處理器。最多可以為運行 Windows Server 2003 32 位版本的虛擬計算機分配 2 個虛擬處理器。對於承載其他操作系統的虛擬計算機,最多可以為虛擬計算機分配一個虛擬處理器。
注意:
建議在關閉虛擬機之前先關閉 SQL Server 2008 R2。
有關 Windows Server 2008 SP2 中 Hyper-V 角色的詳細信息,請參閱 Windows Server 2008 網站。
在 SQL Server 2008 R2 中支持來賓故障轉移群集。有關用於來賓故障轉移群集的 SQL Server 和操作系統的支持版本的詳細信息,請參閱 Support policy for Microsoft SQL Server procts running in a hardware virtual environment(針對在硬體虛擬環境中運行的 Microsoft SQL Server 產品的支持策略)。
Internet 軟體
所有的 SQL Server 2008 R2 安裝都需要使用 Microsoft Internet Explorer 6 SP1 或更高版本。Microsoft 管理控制台 (MMC)、SQL Server Management Studio、Business Intelligence Development Studio、Reporting Services 的報表設計器組件和 HTML 幫助都需要 Internet Explorer 6 SP1 或更高版本。
硬碟
磁碟空間要求將隨所安裝的 SQL Server 2008 R2 組件不同而發生變化。有關詳細信息,請參閱本主題稍後部分中的硬碟空間要求。
驅動器
從磁碟進行安裝時需要相應的 CD 或 DVD 驅動器。
顯示器
SQL Server 2008 R2 圖形工具需要使用 Super VGA 或更高解析度:解析度至少為 800x600 像素。
其他設備
指針設備:需要 Microsoft 滑鼠或兼容的指針設備。
⑧ SQL的四個組成部分,到底是怎麼分的
(1)數據定義語言,即SQL DDL,用於定義SQL模式、基本表、視圖、索引等結構。
(2)數據操縱語言,即SQL DML。數據操縱分成數據查詢和數據更新兩類。
(3)數據查詢語言,即SQL DQL。
(4)數據控制語言,即SQL DCL,這一部分包括對基本表和視圖的授權、完整性規則的描述、事務控制等內容。
結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統, 可以使用相同的結構化查詢語言作為數據輸入與管理的介面。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。
(8)sql部分要求擴展閱讀:
SQL可以獨立完成資料庫生命周期中的全部活動,包括定義關系模式、錄入數據、建立資料庫、査詢、更新、維護、資料庫重構、資料庫安全性控制等一系列操作,這就為資料庫應用系統開發提供了良好的環境,在資料庫投入運行後,還可根據需要隨時逐步修改模式,且不影響資料庫的運行,從而使系統具有良好的可擴充性。
⑨ 請簡單介紹sql語句的基本格式
下列語句部分是Mssql語句,不可以在access中使用。
SQL分類:
DDL—數據定義語言(CREATE,ALTER,DROP,DECLARE)
DML—數據操縱語言(SELECT,DELETE,UPDATE,INSERT)
DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,簡要介紹基礎語句:
1、說明:創建資料庫
CREATE DATABASE database-name
2、說明:刪除資料庫
drop database dbname
3、說明:備份sql server
--- 創建 備份數據的 device
USE master
EXEC sp_admpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 開始 備份
BACKUP DATABASE pubs TO testBack
4、說明:創建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
--A:
create table tab_new like tab_old --(使用舊表創建新表)
--B:
create table tab_new as select col1,col2… from tab_old definition only
5、說明:刪除新表
drop table tabname
6、說明:增加一個列
Alter table tabname add column col type
註:列增加後將不能刪除。DB2中列加上後數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
7、說明:添加主鍵:
Alter table tabname add primary key(col)
說明:刪除主鍵:
Alter table tabname drop primary key(col)
8、說明:創建索引:
create [unique] index idxname on tabname(col….)
刪除索引:
drop index idxname
註:索引是不可更改的,想更改必須刪除重新建。
9、說明:創建視圖:
create view viewname as select statement
刪除視圖:
drop view viewname
10、說明:幾個簡單的基本的sql語句
選擇:select * from table1 where 范圍
插入:insert into table1(field1,field2) values(value1,value2)
刪除:delete from table1 where 范圍
更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like 』%value1%』 ---like的語法很精妙,查資料!
排序:select * from table1 order by field1,field2 [desc]
總數:select count * as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、說明:幾個高級查詢運算詞
A: UNION 運算符
UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符
EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。
C: INTERSECT 運算符
INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重復行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。
註:使用運算詞的幾個查詢結果行必須是一致的。
12、說明:使用外連接
A、left outer join:
左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right outer join:
右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full outer join:
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
其次,大家來看一些不錯的sql語句
1、說明:復製表(只復制結構,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a
2、說明:拷貝表(拷貝數據,源表名:a 目標表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;
3、說明:跨資料庫之間表的拷貝(具體數據使用絕對路徑) (Access可用)
insert into b(a, b, c) select d,e,f from b in 『具體資料庫』 where 條件
例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..
4、說明:子查詢(表名1:a 表名2:b)
select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)
5、說明:顯示文章、提交人和最後回復時間
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6、說明:外連接查詢(表名1:a 表名2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7、說明:在線視圖查詢(表名1:a )
select * from (SELECT a,b,c FROM a) T where t.a > 1;
8、說明:between的用法,between限制查詢數據范圍時包括了邊界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 數值1 and 數值2
9、說明:in 的使用方法
select * from table1 where a [not] in (『值1』,』值2』,』值4』,』值6』)
10、說明:兩張關聯表,刪除主表中已經在副表中沒有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
11、說明:四表聯查問題:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
12、說明:日程安排提前五分鍾提醒
SQL: select * from 日程安排 where datediff('minute',f開始時間,getdate())>5
13、說明:一條sql 語句搞定資料庫分頁
select top 10 b.* from (select top 20 主鍵欄位,排序欄位 from 表名 order by 排序欄位 desc) a,表名 b where b.主鍵欄位 = a.主鍵欄位 order by a.排序欄位
14、說明:前10條記錄
select top 10 * form table1 where 范圍
15、說明:選擇在每一組b值相同的數據中對應的a最大的記錄的所有信息(類似這樣的用法可以用於論壇每月排行榜,每月熱銷產品分析,按科目成績排名,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
16、說明:包括所有在 TableA 中但不在 TableB和TableC 中的行並消除所有重復行而派生出一個結果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)
17、說明:隨機取出10條數據
select top 10 * from tablename order by newid()
18、說明:隨機選擇記錄
select newid()
19、說明:刪除重復記錄
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
20、說明:列出資料庫里所有的表名
select name from sysobjects where type='U'
21、說明:列出表裡的所有的
select name from syscolumns where id=object_id('TableName')
22、說明:列示type、vender、pcs欄位,以type欄位排列,case可以方便地實現多重選擇,類似select 中的case。
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
顯示結果:
type vender pcs
電腦 A 1
電腦 A 1
光碟 B 2
光碟 A 2
手機 B 3
手機 C 3
23、說明:初始化表table1
TRUNCATE TABLE table1
24、說明:選擇從10到15的記錄
select top 5 * from (select top 15 * from table order by id asc) table_別名 order by id desc
隨機選擇資料庫記錄的方法(使用Randomize函數,通過SQL語句實現)
對存儲在資料庫中的數據來說,隨機數特性能給出上面的效果,但它們可能太慢了些。你不能要求ASP「找個隨機數」然後列印出來。實際上常見的解決方案是建立如下所示的循環:
Randomize
RNumber = Int(Rnd*499) +1
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... 這里是執行腳本 ...
end if
objRec.MoveNext
Wend
這很容易理解。首先,你取出1到500范圍之內的一個隨機數(假設500就是資料庫內記錄的總數)。然後,你遍歷每一記錄來測試ID 的值、檢查其是否匹配RNumber。滿足條件的話就執行由THEN 關鍵字開始的那一塊代碼。假如你的RNumber 等於495,那麼要循環一遍資料庫花的時間可就長了。雖然500這個數字看起來大了些,但相比更為穩固的企業解決方案這還是個小型資料庫了,後者通常在一個資料庫內就包含了成千上萬條記錄。這時候不就死定了?
採用SQL,你就可以很快地找出准確的記錄並且打開一個只包含該記錄的recordset,如下所示:
Randomize
RNumber = Int(Rnd*499) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
不必寫出RNumber 和ID,你只需要檢查匹配情況即可。只要你對以上代碼的工作滿意,你自可按需操作「隨機」記錄。Recordset沒有包含其他內容,因此你很快就能找到你需要的記錄這樣就大大降低了處理時間。
再談隨機數
現在你下定決心要榨乾Random 函數的最後一滴油,那麼你可能會一次取出多條隨機記錄或者想採用一定隨機范圍內的記錄。把上面的標准Random 示例擴展一下就可以用SQL應對上面兩種情況了。
為了取出幾條隨機選擇的記錄並存放在同一recordset內,你可以存儲三個隨機數,然後查詢資料庫獲得匹配這些數字的記錄:
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3
假如你想選出10條記錄(也許是每次頁面裝載時的10條鏈接的列表),你可以用BETWEEN 或者數學等式選出第一條記錄和適當數量的遞增記錄。這一操作可以通過好幾種方式來完成,但是 SELECT 語句只顯示一種可能(這里的ID 是自動生成的號碼):
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
注意:以上代碼的執行目的不是檢查資料庫內是否有9條並發記錄。
隨機讀取若干條記錄,測試過
Access語法:SELECT top 10 * From 表名 ORDER BY Rnd(id)
Sql server:select top n * from 表名 order by newid()
mysqlelect * From 表名 Order By rand() Limit n
Access左連接語法(最近開發要用左連接,Access幫助什麼都沒有,網上沒有Access的SQL說明,只有自己測試, 現在記下以備後查)
語法elect table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...
使用SQL語句 用...代替過長的字元串顯示
語法:
SQL資料庫:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename
Access資料庫:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;
Conn.Execute說明
Execute方法
該方法用於執行SQL語句。根據SQL語句執行後是否返回記錄集,該方法的使用格式分為以下兩種:
1.執行SQL查詢語句時,將返回查詢得到的記錄集。用法為:
Set 對象變數名=連接對象.Execute("SQL 查詢語言")
Execute方法調用後,會自動創建記錄集對象,並將查詢結果存儲在該記錄對象中,通過Set方法,將記錄集賦給指定的對象保存,以後對象變數就代表了該記錄集對象。
2.執行SQL的操作性語言時,沒有記錄集的返回。此時用法為:
連接對象.Execute "SQL 操作性語句" [, RecordAffected][, Option]
·RecordAffected 為可選項,此出可放置一個變數,SQL語句執行後,所生效的記錄數會自動保存到該變數中。通過訪問該變數,就可知道SQL語句隊多少條記錄進行了操作。
·Option 可選項,該參數的取值通常為adCMDText,它用於告訴ADO,應該將Execute方法之後的第一個字元解釋為命令文本。通過指定該參數,可使執行更高效。