• 沒有找到結果。

第一章 系統設計相關原理

1.2 SQL 語句介紹

SQL 全稱是“結構化查詢語言(Structured Query Language)",最早 的是 IBM 的聖約瑟研究實驗室爲其關聯資料庫管理系統 SYSTEM R 開發的一 種查詢語言,它的前身是 SQUARE 語言。SQL 語言結構簡潔,功能強大,簡 單易學,所以自從 IBM 公司 1981 年推出以來,SQL 語言,得到了廣泛的應 用。如今無論是像 Oracle ,Sybase,Informix,SQL server 這些大型的資料 庫管理系統,還是像 Visual Foxporo,PowerBuilder 這些微機上常用的資 料庫開發系統,都支援 SQL 語言作爲查詢語言。

Structured Query Language 包含 4 個部分:

☆資料查詢語言 DQL-Data Query Language SELECT

☆據操縱語言 DQL-Data Manipulation Language INSERT, UPDATE, DELETE

☆資料定義語言 DQL-Data Definition Language CREATE, ALTER, DROP

☆資料控制語言 DQL-Data Control Language COMMIT WORK, ROLLBACK WORK

☆查詢資料

☆在表中插入、修改和刪除記錄

☆建立、修改和刪除資料物件

☆控制對資料和資料物件的存取

☆保證資料庫一致性和完整性

以前的資料庫管理系統爲上述各類操作提供單獨的語言,而 SQL 將全部任務統一在一種語言中。

3.是所有關聯資料庫的公共語言

由於所有主要的關聯資料庫管理系統都支援SQL語言,用戶可將使用 SQL的技能從一個RDBMS轉到另一個。所有用SQL編寫的程式都是可以移植 的。SQL是PostgreSQL(和大多數其他關係型數據庫)用做查詢語言的語言。

它是可以移植的,並且容易學習使用。但是所有SQL語句都必須由資料庫伺 服器獨立地執行。這就意味著用戶端應用必須把每條查詢發送到資料庫伺 服器,等待它處理這個查詢,接收結果,做一些運算,然後給伺服器發送 另外一條查詢。所有這些東西都會産生進程間通訊,並且如果用戶端在另 外一台機器上甚至還會導致網路開銷。如果使用了 PL/pgSQL,那麽可以把 一塊運算和一系列查詢在資料庫伺服器裏面組成一個塊,這樣就擁有了過 程語言的力量並且簡化SQL的使用,因而節約了大量的時間,因爲用不著付 出用戶端/伺服器通訊的過熱。通過使用PL/pgSQL,應用可以獲得可觀的性 能提升。

1.2.2 SQL 的使用

1.ASP 與 Access 資料庫連接:

<%@language=VBscript%>

<%

dimconn,mdbfile

mdbfile=server.mappath("資料庫名稱.mdb")

setconn=server.createobject("adodb.connection") conn.open"driver={microsoftaccessdriver

(*.mdb)};uid=admin;pwd=資料庫密碼;dbq="&mdbfile

%>

2.ASP 與 SQL 資料庫連接:

<%@language=VBscript%>

<%

dimconn

set conn=server.createobject("ADODB.connection") conn.open"PROVIDER=SQLOLEDB;DATA

SOURCE=SQL 伺服器名稱或 IP 地址;UID=sa;PWD=資料庫密 碼;DATABASE=資料庫名稱

%>

建立記錄集物件:

setrs=server.createobject("adodb.recordset") rs.openSQL 語句,conn,3,2

3.SQL 常用命令使用方法:

(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 源資料表"(把源資 料表的記錄添加到目標資料表)

sql="selectsum(欄位名)as 別名 from 資料表 where 條件運算 式"

setrs=conn.excute(sql)

用 rs("別名")獲取統的計值,其他函數運用同上。

(5)資料表的建立和刪除:

CREATETABLE 資料表名稱(欄位 1 類型 1(長度),欄位 2 類型 2(長度)……)

DROPTABLE 資料表名稱(永久性刪除一個資料表) 4.記錄集物件的方法:

rs.movenext 將記錄指標從當前的位置向下移一行 rs.moveprevious 將記錄指標從當前的位置向上移一行 rs.movefirst 將記錄指標移到資料表第一行

rs.movelast 將記錄指標移到資料表最後一行

rs.absoluteposition=N 將記錄指標移到資料表第 N 行 rs.absolutepage=N 將記錄指標移到第 N 頁的第一行 rs.pagesize=N 設置每頁爲 N 條記錄

rs.pagecount 根據 pagesize 的設置返回總頁數 rs.recordcount 返回記錄總數

rs.bof 返回記錄指標是否超出資料表首端,true 表示是,

false 爲否

rs.eof 返回記錄指標是否超出資料表末端,true 表示是,

false 爲否

rs.delete 刪除當前記錄,但記錄指標不會向下移動 rs.addnew 添加記錄到資料表末端

rs.update 更新資料表記錄

相關文件