版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、易語言與SQL (易語言使用SQL語句)易語言操作SQL Server數(shù)據(jù)庫全過 2011-02-27 11:43:18| 分類: 默認(rèn)分類 | 標(biāo)簽:sql 數(shù)據(jù)庫 字段 nvarchar 語句 |字號(hào)大中小 訂閱 易語言操作SQL Server數(shù)據(jù)庫全過程 Post By:2006-7-3 9:59:00最近看到很多初學(xué)者在問在易語言中如何操作SQL Server以外部數(shù)據(jù)庫,也有人提出想要個(gè)全面的操作過程,為了讓大家能夠盡快上手,我給大家簡(jiǎn)單介紹一下操作SQL的過程,希望能起到拋磚引玉的作用。由于我本身工作業(yè)比較忙,就以我目前做的一個(gè)軟件的部份內(nèi)容列給大家簡(jiǎn)單講講吧,高手就不要笑話了,只
2、是針對(duì)初學(xué)者第一步,首先需要建立一個(gè)數(shù)據(jù)庫:以建立一個(gè)員工表為例,各字段如下:3 員工ID int 4 00 登陸帳號(hào) nvarchar 30 10 密碼 nvarchar 15 10 所屬部門 nvarchar 30 10 姓名 nvarchar 10 10 性別 nvarchar 2 10 年齡 nvarchar 10 10 當(dāng)前職務(wù) nvarchar 10 10 級(jí)別 nvarchar 10 10 出生日期 nvarchar 40 10 專業(yè) nvarchar 10 10 學(xué)歷 nvarchar 8 10 婚姻狀況 nvarchar 4 10 身份證號(hào) nvarchar 17 10 籍貫
3、 nvarchar 50 10 畢業(yè)院校 nvarchar 50 10 興趣愛好 nvarchar 600 10 電話 nvarchar 11 10 家庭成員 nvarchar 20 10 工作經(jīng)歷 nvarchar 600 10 銷售行業(yè)經(jīng)驗(yàn)nvarchar 600 10 離職原因 nvarchar 600 10 升遷記錄 nvarchar 600 10 調(diào)崗記錄 nvarchar 600 10 特殊貢獻(xiàn) nvarchar 600 10 獎(jiǎng)勵(lì)記錄 nvarchar 600 10 處罰記錄 nvarchar 600 10 同事關(guān)系 nvarchar 4 10 企業(yè)忠誠(chéng)度 nvarchar 4
4、10 入司日期 nvarchar 30 10 在職狀態(tài) nvarchar 4 10 上級(jí)評(píng)語 nvarchar 600 10 最后登陸時(shí)間 nvarchar 20 10 登陸次數(shù) nvarchar 50 10 照片 image 16 1一般我習(xí)慣用nvarchar,因?yàn)檫@是可變長(zhǎng)的的非Unicode數(shù)據(jù),最大長(zhǎng)度為8000個(gè)字符,您可以根據(jù)您的情況來設(shè)定,我這里只是舉例說明。第二步:在易言語中建立數(shù)據(jù)庫連接,用外部數(shù)據(jù)庫控件,可先建立4個(gè)全局變量:1、建立全局變量:.版本 2.全局變量 服務(wù)器, 文本型.全局變量 服務(wù)器數(shù)據(jù)庫, 文本型.全局變量 服務(wù)器用戶名, 文本型.全局變量 服務(wù)器密碼,
5、 文本型2、給變量賦值:.版本 2服務(wù)器 讀配置項(xiàng) (取運(yùn)行目錄 () “sys.ini”, “server info”, “server”, “您的服務(wù)器地址”)服務(wù)器用戶名 讀配置項(xiàng) (取運(yùn)行目錄 () “sys.ini”, “server info”, “uid”, “您的服務(wù)器用戶名”)服務(wù)器密碼 讀配置項(xiàng) (取運(yùn)行目錄 () “sys.ini”, “server info”, “pwd”, “您的服務(wù)器密碼”)服務(wù)器數(shù)據(jù)庫 讀配置項(xiàng) (取運(yùn)行目錄 () “sys.ini”, “server info”, “database”, “您的數(shù)據(jù)庫名城”)3、然后建立外部數(shù)據(jù)庫的連接。.版本
6、 2.如果真 (外部數(shù)據(jù)庫1.打開 (“DRIVER=SQL Server;SERVER=” 服務(wù)器 “;UID=” 服務(wù)器用戶名 “;PWD=” 服務(wù)器密碼 “;WSID=” 服務(wù)器 “;DATABASE=” 服務(wù)器數(shù)據(jù)庫, ) 真).如果真 (外部數(shù)據(jù)庫1.打開SQL數(shù)據(jù)庫 (服務(wù)器, 服務(wù)器用戶名, 服務(wù)器密碼, 服務(wù)器數(shù)據(jù)庫, , ) 假)信息框 (“打開數(shù)據(jù)庫失敗”, #警告圖標(biāo), )結(jié)束 ().如果真結(jié)束到此,您已經(jīng)完成了與SQL數(shù)據(jù)庫的連接,可以開始使用,以下講講數(shù)據(jù)庫中要用到的增加、查詢、修改、刪除命令:建立全局變量:.版本 2.全局變量 腳本, 文本型.全局變量 記錄集句柄1
7、、 SQL增加語句的使用:.版本 2腳本 “insert into 員工表 (姓名,性別,年齡,出生日期,專業(yè),學(xué)歷,婚姻狀況,身份證號(hào),籍貫,畢業(yè)院校,興趣愛好,電話,家庭成員,工作經(jīng)歷,銷售行業(yè)經(jīng)驗(yàn),離職原因,所屬部門,當(dāng)前職務(wù),升遷記錄,調(diào)崗記錄,特殊貢獻(xiàn),獎(jiǎng)勵(lì)記錄,處罰記錄,同事關(guān)系,企業(yè)忠誠(chéng)度,入司日期,在職狀態(tài),上級(jí)評(píng)語,照片) values ('” 編輯框_職員信息_姓名.內(nèi)容 “','” 編輯框_職員信息_性別.取項(xiàng)目文本 (編輯框_職員信息_性別.現(xiàn)行選中項(xiàng)) “','” 編輯框_職員信息_年齡.內(nèi)容 “','” 編輯框
8、_職員信息_出生日期.內(nèi)容 “','” 編輯框_職員信息_專業(yè).內(nèi)容 “','” 組合框_職員信息_學(xué)歷.取項(xiàng)目文本 (組合框_職員信息_學(xué)歷.現(xiàn)行選中項(xiàng)) “','” 組合框_職員信息_婚姻狀況.取項(xiàng)目文本 (組合框_職員信息_婚姻狀況.現(xiàn)行選中項(xiàng)) “','” 編輯框_職員信息_身份證號(hào).內(nèi)容 “','” 編輯框_職員信息_籍貫.內(nèi)容 “','” 編輯框_職員信息_畢業(yè)院校.內(nèi)容 “','” 編輯框_職員信息_興趣愛好.內(nèi)容 “','” 編輯框_職員信息_電話.內(nèi)
9、容 “','” 編輯框_職員信息_家庭成員.內(nèi)容 “','” 編輯框_職員信息_工作經(jīng)歷.內(nèi)容 “','” 編輯框_職員信息_銷售行業(yè)經(jīng)驗(yàn).內(nèi)容 “','” 編輯框_職員信息_離職原因.內(nèi)容 “','” 編輯框_職員信息_所屬部門.內(nèi)容 “','” 編輯框_職員信息_當(dāng)前職務(wù).內(nèi)容 “','” 編輯框_職員信息_升遷記錄.內(nèi)容 “','” 編輯框_職員信息_調(diào)崗記錄.內(nèi)容 “','” 編輯框_職員信息_特殊貢獻(xiàn).內(nèi)容 “','” 編輯框
10、_職員信息_獎(jiǎng)勵(lì)記錄.內(nèi)容 “','” 處罰記錄編輯框.內(nèi)容 “','” 組合框_職員信息_同事關(guān)系.取項(xiàng)目文本 (組合框_職員信息_同事關(guān)系.現(xiàn)行選中項(xiàng)) “','” 組合框_職員信息_企業(yè)忠誠(chéng)度.取項(xiàng)目文本 (組合框_職員信息_企業(yè)忠誠(chéng)度.現(xiàn)行選中項(xiàng)) “','” 編輯框_職員信息_入司日期.內(nèi)容 “','” 組合框_職員信息_在職狀態(tài).取項(xiàng)目文本 (組合框_職員信息_在職狀態(tài).現(xiàn)行選中項(xiàng)) “','” 編輯框_職員信息_上級(jí)評(píng)語.內(nèi)容 “',?)”.如果 (SQL數(shù)據(jù)庫.執(zhí)行 (腳本,
11、 照片圖片框.圖片) 真)信息框 (“保存員工信息成功!”, 0, ).否則信息框 (“保存員工信息失敗!”, 0, ).如果結(jié)束SQL數(shù)據(jù)庫.關(guān)閉記錄集 (記錄集句柄)需要注意的是,在上面紅色部分有個(gè)?,這是保存圖片的字段,在藍(lán)色部分可以看見,(SQL數(shù)據(jù)庫.執(zhí)行 (腳本, 照片圖片框.圖片) 照片圖片框.圖片是字節(jié)集數(shù)據(jù),也就是數(shù)據(jù)庫中對(duì)應(yīng)的照片字段,image類型2、 SQL查詢語句的使用:.版本 2腳本 “select 員工ID,姓名 from 員工表 where 姓名” “= ” “'” 編輯框_職員信息_姓名.內(nèi)容 “'”記錄集句柄 SQL數(shù)據(jù)庫.查詢 (腳本).如
12、果真 (編輯框_職員信息_姓名.內(nèi)容 SQL數(shù)據(jù)庫.讀 (記錄集句柄, “姓名”)信息框 (“您要錄入的員工姓名:” 編輯框_職員信息_姓名.內(nèi)容 “已經(jīng)存在!”, 0 #詢問圖標(biāo), “銷售管理系統(tǒng)提醒您!”)返回 ().如果真結(jié)束SQL數(shù)據(jù)庫.關(guān)閉記錄集 (記錄集句柄)以上是查詢的時(shí)候,需要注意的是,如果是文本型數(shù)據(jù),需要用單引號(hào),紅色部分樣式,如果需要多表查詢,select可以這樣寫:,select A.*,B.* from A,B where A.ID=B.ID介紹一個(gè)小技巧,如果您SQL數(shù)據(jù)庫操作的很熟悉,可以用視圖來幫您建立多表的查詢,如果把視圖里的SQL語句稍微改動(dòng)一下就可以放到易
13、語言中使用了,如我這里需要把客戶表與其他的表關(guān)聯(lián),用視圖得到的SQL語句是這樣的:SELECT dbo.客戶表.客戶ID, dbo.客戶表.客戶姓名, dbo.客戶表.身份證號(hào),dbo.客戶表.客戶等級(jí), dbo.客戶表.性別, dbo.客戶表.年齡, dbo.客戶表.電話,dbo.客戶表.手機(jī), dbo.客戶表.電子郵件, dbo.客戶表.聯(lián)系地址,dbo.員工資料.姓名 AS 銷售顧問, dbo.客戶表.拜訪時(shí)間, dbo.客戶進(jìn)程表.回訪次數(shù),dbo.客戶進(jìn)程表.意向房號(hào), dbo.客戶進(jìn)程表.接待人員, dbo.客戶進(jìn)程表.主要問題,dbo.客戶進(jìn)程表.跟蹤次數(shù), dbo.客戶進(jìn)程表.
14、跟蹤人員, dbo.客戶進(jìn)程表.付款金額,dbo.客戶進(jìn)程表.預(yù)訂日期, dbo.客戶進(jìn)程表.首付日期, dbo.客戶進(jìn)程表.預(yù)訂金額,dbo.客戶進(jìn)程表.退定時(shí)間, dbo.客戶進(jìn)程表.退定原因, dbo.客戶進(jìn)程表.收款人,dbo.客戶進(jìn)程表.備注FROM dbo.員工資料 INNER JOINdbo.客戶表 ON dbo.員工資料.員工ID = dbo.客戶表.員工ID INNER JOINdbo.客戶進(jìn)程表 ON dbo.客戶表.客戶ID = dbo.客戶進(jìn)程表.客戶ID修改成我們要在易語言中使用的SQL語句就應(yīng)該寫成這樣:SELECT客戶表.客戶ID,客戶表.客戶姓名,客戶表.身份證
15、號(hào),客戶表.客戶等級(jí),客戶表.性別,客戶表.年齡,客戶表.電話,客戶表.手機(jī),客戶表.電子郵件,客戶表.聯(lián)系地址,員工資料.姓名 AS 銷售顧問,客戶表.拜訪時(shí)間,客戶進(jìn)程表.回訪次數(shù),客戶進(jìn)程表.意向房號(hào),客戶進(jìn)程表.接待人員,客戶進(jìn)程表.主要問題,客戶進(jìn)程表.跟蹤次數(shù),客戶進(jìn)程表.跟蹤人員,客戶進(jìn)程表.付款金額,客戶進(jìn)程表.預(yù)訂日期,客戶進(jìn)程表.首付日期,客戶進(jìn)程表.預(yù)訂金額,客戶進(jìn)程表.退定時(shí)間,客戶進(jìn)程表.退定原因,客戶進(jìn)程表.收款人,客戶進(jìn)程表.備注FROM 員工表,客戶表 ,客戶進(jìn)程表WHERE 員工資料.員工ID =客戶表.員工AND 客戶表.客戶ID =客戶進(jìn)程表.客戶ID細(xì)心
16、的讀者應(yīng)該可以看到,把上面的DBO,全部取消了,后面多加了一個(gè)WHERE和AND語句,只要大家多動(dòng)動(dòng)腦,復(fù)雜的語句也可以用SQL Server數(shù)據(jù)庫來為我們完成。3、 SQL修改語句的使用:.版本 2SQL數(shù)據(jù)庫.關(guān)閉記錄集 (記錄集句柄).判斷開始 (選定項(xiàng)目2 1)腳本 “update 員工表 set ” 選定項(xiàng)目1 “='” 刪首尾空 (新員工名稱編輯框.內(nèi)容) “', 備注” “='” 刪首尾空 (備注編輯框.內(nèi)容) “' where ” 選定項(xiàng)目1 “='” 項(xiàng)目文本1 “'”.判斷 (選定項(xiàng)目2 2)腳本 “update 員工表 se
17、t ” 選定項(xiàng)目1 “='” 刪首尾空 (新員工名稱編輯框.內(nèi)容) “', 備注” “='” 刪首尾空 (備注編輯框.內(nèi)容) “' where ” 部門編號(hào)1 “= ” “'” “1” “' and ” 選定項(xiàng)目1 “='” 項(xiàng)目文本1 “'”.默認(rèn).判斷結(jié)束.判斷開始 (SQL數(shù)據(jù)庫.執(zhí)行 (腳本, ) 真)部門管理窗口.讀取并顯示當(dāng)前記錄集 ()SQL數(shù)據(jù)庫.關(guān)閉記錄集 (記錄集句柄)銷毀 ().默認(rèn)信息框 (“修改員工姓名失敗!”, #警告圖標(biāo), )上面用了一個(gè)判讀語句,用來選擇要使用的SQL語句,第一個(gè)腳本是直接修改員工的
18、名字,第二個(gè)腳本是修改某個(gè)部門下的員工的名字,必須是在那個(gè)部門下的人員才可以修改。相信大家應(yīng)該可以看得明白。4、 SQL刪除語句的使用:.版本 2腳本 “delete from 員工表 where ” 選定姓名1 “='” 姓名 “' and 員工ID=”+取得的ID+”.判斷開始 (SQL數(shù)據(jù)庫.執(zhí)行 (腳本, ) 真)信息框 (“刪除員工成功!”, #信息圖標(biāo), )員工管理窗口.讀取并顯示當(dāng)前記錄集 ()SQL數(shù)據(jù)庫.關(guān)閉記錄集 (記錄集句柄)銷毀 ().默認(rèn)信息框 (“刪除員工失敗!”, #警告圖標(biāo), )上面出現(xiàn)的 選定姓名1、 姓名、 取得的ID、三個(gè),是我用的臨時(shí)的變
19、量,是為了從其他地方動(dòng)態(tài)的取得要?jiǎng)h除的內(nèi)容,簡(jiǎn)化以后得到的SQL語句就是這樣。delete from 員工表 where 員工姓名 = 姓名 and 員工ID=1以上是我目前開發(fā)的我們公司的一個(gè)銷售管理系統(tǒng)的程序,把大家想知道的內(nèi)容提出來并簡(jiǎn)化給大家做個(gè)參考,源代碼我就不送上了,相信大家也應(yīng)該可以看的明白,由于工作一直比較忙,沒有截圖,也沒有細(xì)心整理,不過語句都沒有錯(cuò)誤的,大家放心使用,等有時(shí)間給大家出一個(gè)專門操作SQL Server數(shù)據(jù)庫網(wǎng)絡(luò)版軟件的教程,這里只是簡(jiǎn)單的操作而已,給初學(xué)者一個(gè)借鑒。數(shù)據(jù)定義語言(DDL)和數(shù)據(jù)操作語言(DML)。 (1) 數(shù)據(jù)定義語言(DDL)數(shù)據(jù)定義語言用來
20、定義數(shù)據(jù)庫的各級(jí)模式。常用關(guān)鍵字有:Create(建立數(shù)據(jù)表)、Alter(更改數(shù)據(jù)表)、Drop(刪除數(shù)據(jù)表)。建立數(shù)據(jù)表CREATE TABLE table_name( column1 DATATYPE NOT NULL NOT NULL PRIMARY KEY, column2 DATATYPE NOT NULL, . )說明:上面的DATATYPE 指的是字段的類型,NUT NULL 指是否為空,PRIMARY KEY 指本表的主鍵。建立索引CREATE INDEX index_name ON table_name (column_name)說明:為數(shù)據(jù)表格的某個(gè)字段建立索引以增加查詢
21、時(shí)的速度。更改數(shù)據(jù)表ALTER TABLE table_name ADD COLUMN column_name DATATYPE說明:增加一個(gè)字段。ALTER TABLE table_name ADD PRIMARY KEY (column_name)說明:將某個(gè)字段設(shè)為主鍵。ALTER TABLE table_name DROP PRIMARY KEY (column_name)說明:將某個(gè)字段的主鍵定義取消。刪除數(shù)據(jù)表DROP table_name DROP index_name于ODBC數(shù)據(jù)源連接文本在外部數(shù)據(jù)庫的連接原理一講中我們說過,ODBC提供對(duì)多種數(shù)據(jù)庫的支持,如dBase、Ac
22、cess、MS SQL Server及Oracle,也就是說運(yùn)用ODBC數(shù)據(jù)源中所提供的連接代碼,我們可以實(shí)現(xiàn)對(duì)多種數(shù)據(jù)庫的連接。以連接Access數(shù)據(jù)庫為例,ODBC數(shù)據(jù)源連接文本的格式是:“Driver=數(shù)據(jù)庫驅(qū)動(dòng)程序;Dbq=數(shù)據(jù)庫文件;”在以上連接文本中,如果數(shù)據(jù)庫跟程序在同一目錄下,或者用變量DefaultDir指定了數(shù)據(jù)庫所在目錄,則數(shù)據(jù)庫文件可以不用全路徑名,如下即可:“ODBC;DBQ=MSAccess.mdb;Driver=Microsoft Access Driver (*.mdb);”如下也可:“ODBC;DBQ=MSAccess.mdb;DefaultDir=d:Dow
23、nloadse21;Driver=Microsoft Access Driver (*.mdb);”如果數(shù)據(jù)庫跟程序不在同一目錄下,或者沒有用變量DefaultDir指定數(shù)據(jù)庫所在目錄,則數(shù)據(jù)庫文件需要用全路徑名,如下:“ODBC;DBQ=E:Quake III ArenaMSAccess.mdb;Driver=Microsoft Access Driver (*.mdb);”以上所說的是連接Access數(shù)據(jù)庫的格式,那么連接其他數(shù)據(jù)庫的ODBC數(shù)據(jù)源連接文本又是怎樣的?連接不同類型的數(shù)據(jù)庫要使用不同的對(duì)應(yīng)驅(qū)動(dòng)程序,沒忘記吧!不同的驅(qū)動(dòng)程序當(dāng)然它們的參數(shù)組合也就不同了,每一種不同驅(qū)動(dòng)程序都有其
24、特定的的參數(shù)形式:、MS Access ODBC DSNless 連接:、參數(shù):Driver 設(shè)置值:Microsoft Access Driver (*.mdb)、參數(shù):Dbq 設(shè)置值:實(shí)際路徑文件名稱、例句:“Driver=Microsoft Access Driver (*.mdb);Dbq=c:somepathdbname.mdb;Uid=Admin;Pwd=pass; ”、dBase ODBC DSNless 連接:、參數(shù):Driver 設(shè)置值:Microsoft dBASE Driver (*.dbf)、參數(shù):Dbq 設(shè)置值:實(shí)際路徑文件名稱、例句:“Driver=Microsof
25、t dBASE Driver (*.dbf);DriverID=277;Dbq=c:somepathdbname.dbf; ”、Oracle ODBC DSNless 連接:、參數(shù):Driver 設(shè)置值:Microsoft ODBC for Oracle、參數(shù):Dbq 設(shè)置值:實(shí)際路徑文件名稱、例句:“Driver=Microsoft ODBC for Oracle;Server=OracleServer.world;Uid=admin;Pwd=pass; ”、MS SQL Server DSNless 連接:、參數(shù):Driver 設(shè)置值:SQL Server;、參數(shù):Server 設(shè)置值:服
26、務(wù)器名稱、參數(shù):Database 設(shè)置值:數(shù)據(jù)表名稱、參數(shù):Uid 設(shè)置值:用戶名稱、參數(shù):Pwd 設(shè)置值:密碼、例句:“Driver=SQL Server;Server=servername;Database=dbname;Uid=sa;Pwd=pass; ”、MS Text Driver DSNless 連接:、參數(shù):Driver 設(shè)置值:Microsoft Text Driver (*.txt; *.csv)、參數(shù):Dbq 設(shè)置值:實(shí)際路徑文件名稱、例句:“Driver=Microsoft Text Driver (*.txt; *.csv);Dbq=c:somepath;Extensi
27、ons=asc,csv,tab,txt;Persist Security Info=False; ”、Visual Foxpro DSNless 連接:、參數(shù):Driver 設(shè)置值:Microsoft Visual FoxPro Driver、參數(shù):SourceType 設(shè)置值:DBC、參數(shù):SourceDB 設(shè)置值:實(shí)際路徑文件名稱 、例句:“Driver=Microsoft Visual FoxPro Driver;SourceType=DBC;SourceDB=c:somepathdbname.dbc;Exclusive=No;”、MySQL DSNless 連接:、參數(shù):Driver
28、設(shè)置值:mysql、參數(shù):database 設(shè)置值:數(shù)據(jù)表名稱、參數(shù):uid 設(shè)置值:用戶名稱、參數(shù):pwd 設(shè)置值:密碼、例句: “driver=mysql; database=yourdatabase;uid=username;pwd=password;option=16386”*SQL語言簡(jiǎn)介在上一講中我們介紹了連接外部數(shù)據(jù)庫的方法,那么連接之后怎樣對(duì)外部數(shù)據(jù)庫進(jìn)行讀取、顯示、增刪、更新、查詢等操作呢?這些操作需要通過外部數(shù)據(jù)庫等對(duì)象調(diào)用SQL指令才能完成。、什么是SQL語言SQL(Structure Query Languge,結(jié)構(gòu)化查詢語言)是一種數(shù)據(jù)庫專用的計(jì)算機(jī)語言,不管是Ora
29、cle、MS SQL 、Access、MySQL或其他公司的數(shù)據(jù)庫,也不管數(shù)據(jù)庫建立在大型主機(jī)或個(gè)人計(jì)算機(jī)上,都可以使用SQL語言來訪問和修改數(shù)據(jù)庫的內(nèi)容。雖然不同公司的數(shù)據(jù)庫軟件多多少少會(huì)增加一些專屬的SQL語法,但大體上,它們還是遵循ASNI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))制定的SQL標(biāo)準(zhǔn)。因?yàn)镾QL語言具有易學(xué)習(xí)及閱讀等特性,所以SQL逐漸被各種數(shù)據(jù)庫廠商采用,而成為一種共通的標(biāo)準(zhǔn)查詢語言。只要你學(xué)會(huì)SQL,即可操作各種數(shù)據(jù)庫如Visual Foxpro、Access、dBase等等??傊琒QL語言是各種數(shù)據(jù)庫都可以使用的數(shù)據(jù)庫查詢語言。SQL語言不僅僅具有查詢數(shù)據(jù)庫的功能,而且可以對(duì)數(shù)據(jù)庫完成選
30、取、增刪、更新與跳轉(zhuǎn)等各種操作。、SQL語言的組成SQL語言是由命令(函數(shù))、子句、運(yùn)算符、加總函數(shù)及通配符等組成,分述如下:1、命令SQL的命令可分成數(shù)據(jù)定義語言與數(shù)據(jù)操作語言,數(shù)據(jù)定義語言可用來建立新的數(shù)據(jù)庫、數(shù)據(jù)表、字段及索引等,本教程不予介紹;另一為數(shù)據(jù)操作語言,可用來建立查詢表、排序、篩選數(shù)據(jù)、修改、增刪等動(dòng)作。數(shù)據(jù)定義語言命令常用的有選擇、添加、刪除和修改這四種:、命令:SELECT中文意思:選擇說明:用于找出合乎條件的記錄、命令:INSERT中文意思:插入說明:用于增加一筆記錄或合并兩個(gè)數(shù)據(jù)表、命令:UPDATE中文意思:更新說明:用于更正合乎條件的記錄、命令:DELETE中文意
31、思:刪除說明:用于刪除合乎條件的記錄2、子句子句是用于設(shè)定命令要操作的對(duì)象(即參數(shù)),SQL所用的子句如下:、子句:FROM 中文意思:數(shù)據(jù)表說明:用于指定數(shù)據(jù)表、子句:WHERE中文意思:條件說明:用于設(shè)定條件、GROUP BY中文意思:分組(合并)說明:用于設(shè)定分組、ORDER BY中文意思:排序說明:用于設(shè)定輸出的順序及字段3、運(yùn)算符子句參數(shù)中的運(yùn)算符使子句構(gòu)成不同的語法格式,如“字段1=''100''”、“字段1>''100''”等。運(yùn)算符又分邏輯運(yùn)算符與比較運(yùn)算符。邏輯運(yùn)算符如下:、運(yùn)算符:AND中文意思:并且說明
32、:邏輯且、運(yùn)算符:OR 中文意思:或者說明:邏輯非、運(yùn)算符:NOT中文意思:取反說明:邏輯非或邏輯反比較運(yùn)算符如下:、運(yùn)算符:< 說明:小于、運(yùn)算符: 說明:小于等于、運(yùn)算符: 說明:大于等于、運(yùn)算符:> 說明:大于、運(yùn)算符:= 說明:等于、運(yùn)算符:<> 說明:不等于、運(yùn)算符:BETWEEN 說明:用于設(shè)定范圍 中文意思:在.之間、運(yùn)算符:LIKE 說明:用于通配設(shè)定 中文意思:如同、運(yùn)算符:IN 說明:用于集合設(shè)定 中文意思:在.之內(nèi)4、加總函數(shù)加總函數(shù)常常運(yùn)用在命令的參數(shù)中,如:“SELECT SUM(數(shù)學(xué)),AVG(數(shù)學(xué)) FROM 成績(jī)單”。、加總函數(shù):AVG
33、中文意思:平均說明:用于求指定條件的平均 、加總函數(shù):COUNT中文意思:數(shù)量說明:用于求指定的數(shù)量、加總函數(shù):SUM中文意思:和說明:用于求指定條件的和、加總函數(shù):MAX中文意思:最大值說明:用于求指定條件的最大值、加總函數(shù):MIN中文意思:最小值說明:用于求指定條件的最小值5、通配符、通配符:% 意義:任何長(zhǎng)度的字符串(包括0)、通配符:_ 意義:下劃線表示任何一個(gè)字符、通配符: 意義:中括號(hào)表示某個(gè)范圍內(nèi)的一個(gè)字符在下一講將說明SQL語言是怎樣把命令(函數(shù))、子句、運(yùn)算符、及加總函數(shù)等組合在一起的。*嵌入式SQL的應(yīng)用SQL語句可以單獨(dú)在數(shù)據(jù)庫系統(tǒng)本身中執(zhí)行,但如果運(yùn)用在其他編程工具所編
34、制的程序中,一般不能單獨(dú)執(zhí)行,而要把SQL語句嵌入到高級(jí)語言(如易語言)中使用,通過高級(jí)語言的命令和方法來調(diào)用之,此時(shí)SQL稱為嵌入式SQL。調(diào)用SQL語句的程序稱為宿主程序,在易語言中一般是把SQL語句作為宿主程序的唯一參數(shù)來直接處理。嵌入式SQL在使用上有一些規(guī)定,在易語言中目前的版本規(guī)定如下:、在程序中要區(qū)分SQL語句和宿主語言的語句。在易語言中好區(qū)分,因?yàn)镾QL語句形式是英文的,而易語言是中文的,但在實(shí)際應(yīng)用時(shí)仍然有可能會(huì)混亂,所以易語言要把SQL語句轉(zhuǎn)化為文本型才能調(diào)用,即嵌入式SQL語句兩邊要用雙引號(hào)來標(biāo)示。、允許SQL語句使用宿主程序的變量,但使用時(shí)要將宿主程序的變量跟外部數(shù)據(jù)庫
35、中表格的字段名區(qū)別開來,區(qū)別方法如下:、在易語言中要將變量類型轉(zhuǎn)化為文本型變量才能被SQL文本相加使用,比如下面的例子中有一個(gè)叫“數(shù)字1”的整數(shù)類型變量,插入到SQL文本中是這樣表達(dá):外部數(shù)據(jù)庫1.查詢 (“select * from chj where ” 組合框1.內(nèi)容 “=” 到文本 (數(shù)字1)、包含字段名的SQL文本兩邊加雙引號(hào),變量名不能在雙引號(hào)內(nèi),如上例。、要將字段名跟字段值區(qū)別開來,區(qū)別方法如下:、對(duì)于文本類型的字段,在其字段值兩邊要加上“''”號(hào)標(biāo)示其文本值,代表語法是:字段名稱=文本值。如下:外部數(shù)據(jù)庫1.查詢 (“select * from chj wher
36、e 姓名=''山大王''”)又如下面“查找編輯框.內(nèi)容”中的字段值是文本型,嵌入式SQL語句如下:外部數(shù)據(jù)庫1.查詢 (“select * from chj where 姓名=” “''” 查找編輯框.內(nèi)容 “''”)、對(duì)于數(shù)字類型的字段,在SQL語句中表示其字段值,兩邊不加符號(hào)標(biāo)示,代表語法是:字段名稱=數(shù)字值。如下兩例:外部數(shù)據(jù)庫1.查詢 (“select * from chj where ” 組合框1.內(nèi)容 “=” 查找編輯框.內(nèi)容)外部數(shù)據(jù)庫1.查詢 (“select * from chj where 學(xué)號(hào)=17”)、對(duì)于
37、日期時(shí)間類型的字段,在其字段值兩邊要加上“#”號(hào)標(biāo)示其時(shí)間值,代表語法是:字段名稱=#時(shí)間值#。如下兩例:外部數(shù)據(jù)庫1.查詢 (“select * from chj where 入學(xué)時(shí)間 BETWEEN #2001-01-01# and #2002-01-01#”)外部數(shù)據(jù)庫1.查詢 (“select * from chj where ” 組合框1.內(nèi)容 “=” “#” 查找編輯框.內(nèi)容 “#”)、也可以將SQL語句中的字段名(尤其是中文名)可用中括號(hào)括住,如:字段名。、SQL語句要用半角輸入法輸入,否則可能會(huì)出錯(cuò)。那么在易語言中怎樣調(diào)用SQL語句呢?一般是在外部數(shù)據(jù)庫對(duì)象(控件)的方法中調(diào)用
38、,試概括如下:、對(duì)外部數(shù)據(jù)庫進(jìn)行查詢的方法。對(duì)外部數(shù)據(jù)庫的查詢就是在對(duì)外部數(shù)據(jù)庫不加編輯改動(dòng)的前提下,只通過記錄集來對(duì)數(shù)據(jù)庫進(jìn)行顯示、查詢、篩選、排序和記錄集的合并等操作。所有查詢類的方法起源于下面這個(gè)語句,其他查詢類語句是對(duì)這個(gè)語句的調(diào)用(將此語句作為唯一的參數(shù)),該語句如下:外部數(shù)據(jù)庫查詢 (查詢類SQL語句)也可這樣表達(dá):外部數(shù)據(jù)庫查詢 (“SELECT.FROM.WHERE.GROUP BY.ORDER BY. ”)該方法是對(duì)當(dāng)前被打開數(shù)據(jù)庫進(jìn)行數(shù)據(jù)查詢,返回的結(jié)果稱為“記錄集句柄”(即記錄集的標(biāo)記)。注意當(dāng)不再使用此記錄集時(shí),必須使用“關(guān)閉記錄集”將其關(guān)閉,如果失敗,返回0。在易語言
39、中,將以上語句等同于記錄集句柄以作為其他查詢類語句的參數(shù)。為了使該參數(shù)在所有子程序中都能應(yīng)用,我們一般把它設(shè)置為整數(shù)型全局變量,并將其值設(shè)置如下:記錄集句柄=外部數(shù)據(jù)庫查詢 (查詢類SQL語句)由于易語言要把SQL語句轉(zhuǎn)化為文本型才能調(diào)用,所以嵌入式SQL語句兩邊要有雙引號(hào),例句:記錄集句柄 外部數(shù)據(jù)庫1.查詢 (“select * from chj ”) “chj”是外部數(shù)據(jù)庫中一個(gè)表的名稱又如,欲得到排序的記錄集,應(yīng)象下面這樣賦值:記錄集句柄 外部數(shù)據(jù)庫1.查詢 (“SELECT * FROM chj ORDER BY 語文 DESC”)現(xiàn)將外部數(shù)據(jù)庫控件中其他的查詢類方法列舉如下:、外部
40、數(shù)據(jù)庫重新查詢 (記錄集句柄) 即:外部數(shù)據(jù)庫重新查詢 (外部數(shù)據(jù)庫查詢 (查詢類SQL語句)例句:外部數(shù)據(jù)庫1.重新查詢 (外部數(shù)據(jù)庫1.查詢 (“select * from chj ”)、外部數(shù)據(jù)庫首記錄前 (記錄集句柄) 即:外部數(shù)據(jù)庫首記錄前 (外部數(shù)據(jù)庫查詢 (查詢類SQL語句)例句:外部數(shù)據(jù)庫1.首記錄前 (記錄集句柄)、外部數(shù)據(jù)庫尾記錄后 (記錄集句柄)、外部數(shù)據(jù)庫到首記錄 (記錄集句柄)、外部數(shù)據(jù)庫到尾記錄 (記錄集句柄)、外部數(shù)據(jù)庫到前一記錄 (記錄集句柄)、外部數(shù)據(jù)庫到后一記錄 (記錄集句柄)、外部數(shù)據(jù)庫讀 (記錄集句柄,字段名稱或位置)例句:語文編輯框.內(nèi)容 到文本 (外
41、部數(shù)據(jù)庫1.讀 (記錄集句柄, “語文”)、對(duì)外部數(shù)據(jù)庫進(jìn)行編輯的方法。所謂對(duì)外部數(shù)據(jù)庫的編輯,就是變更改動(dòng)外部數(shù)據(jù)庫本身,包括添加、更新、刪除等,對(duì)數(shù)據(jù)庫進(jìn)行編輯不必通過記錄集。所有非查詢類SQL語句都嵌入下面這個(gè)語句來執(zhí)行:外部數(shù)據(jù)庫執(zhí)行 (非查詢類SQL語句)、添加記錄,其語法如下:外部數(shù)據(jù)庫執(zhí)行 (“insert into 表名稱(字段1,字段2.) values (字段值1,字段值2.) ”)例句:外部數(shù)據(jù)庫1.執(zhí)行 (“INSERT INTO chj ” “(學(xué)號(hào),姓名,語文,數(shù)學(xué),英語)” “ valueS ” “(” 學(xué)號(hào)編輯框.內(nèi)容 “,''” 姓名編輯框.內(nèi)
42、容 “'',''” 語文編輯框.內(nèi)容 “'',''” 數(shù)學(xué)編輯框.內(nèi)容 “'',''” 英語編輯框.內(nèi)容 “'')”)、更新記錄,其語法如下:外部數(shù)據(jù)庫執(zhí)行 (“UPDATE 表名稱 SET 字段1=字段值1,字段2=字段值2.WHERE 條件式”)例句:外部數(shù)據(jù)庫1.執(zhí)行 (“UPDATE chj SET 學(xué)號(hào)=” “''” 學(xué)號(hào)編輯框.內(nèi)容 “'',” “姓名=” “''” 姓名編輯框.內(nèi)容 “'',” “語文=”
43、“''” 語文編輯框.內(nèi)容 “'',” “數(shù)學(xué)=” “''” 數(shù)學(xué)編輯框.內(nèi)容 “'',” “英語=” “''” 英語編輯框.內(nèi)容 “'' ” “WHERE 姓名=” “''” 姓名1 “'' ” “AND 語文=” 語文1 “AND 數(shù)學(xué)=” 數(shù)學(xué)1 “AND 英語=” 英語1 “AND 學(xué)號(hào)=” 學(xué)號(hào)1)、刪除記錄,其語法如下:外部數(shù)據(jù)庫執(zhí)行 (“DELETE * FROM 表名稱 WHERE 條件式”)例句:外部數(shù)據(jù)庫執(zhí)行 (“外部數(shù)據(jù)庫1.執(zhí)行 (“DELET
44、E * FROM chj ” “WHERE 姓名=” “''” 姓名1 “'' ” “AND 語文=” 語文1 “AND 數(shù)學(xué)=” 數(shù)學(xué)1 “AND 英語=” 英語1 “AND 學(xué)號(hào)=” 學(xué)號(hào)1)”)一.sql語句中沒有使用表的相互關(guān)聯(lián)(簡(jiǎn)單的查詢語句)設(shè)計(jì)一個(gè)DataSet1) 右擊“解決方案瀏覽器”,選擇“添加”-“添加新項(xiàng)”->“數(shù)據(jù)集”2) 從“服務(wù)器資源管理器”中的“SQL Server”中拖放“Stores”表(位于PUBS數(shù)據(jù)庫中)3) 此時(shí)在數(shù)據(jù)集中就會(huì)有一個(gè)Stores表的結(jié)構(gòu)圖。xsd文件中僅僅包含一個(gè)結(jié)構(gòu)圖,但是不會(huì)有任何數(shù)據(jù)在里面創(chuàng)
45、建一個(gè).rpt文件crystalreport1.rpt同時(shí)將其指定給上一步建立的DataSet。4) 使用上面的介紹過的方法創(chuàng)建此文件,唯一的不同就是使用數(shù)據(jù)集來代替前面的直接連接數(shù)據(jù)。5)建立.rpt文件之后,右擊“詳細(xì)資料”->"添加刪除數(shù)據(jù)庫“6) 在”數(shù)據(jù)庫專家“窗口中,展開”項(xiàng)目數(shù)據(jù)“(代替以前的OleDb),展開“ADO.Net數(shù)據(jù)集”-"DataSet1“,選擇”Stores“表。7) 將”Stores"表添加到“選定的表”中,點(diǎn)擊“OK”8) 建立一個(gè)WebForm1.aspx 拖入一個(gè)Crystal Report Viewer 控件9)We
46、bForm1.aspx.csReportDocument oRpt = new ReportDocument();string RptDir="f:bbstestcrystalcrystalreport1.rpt"oRpt.Load(RptDir);./根據(jù)sql語句得到DataSet 這個(gè)就不多說了oRpt.SetDataSource(ds); CrystalReportViewer1.ReportSource=oRpt;/注意push模式用不到設(shè)置logOnInfo參數(shù)SQL語句的數(shù)據(jù)庫連接 2007-05-21 15:25:19.0 SQL語句可以單獨(dú)在數(shù)據(jù)庫系統(tǒng)本身中執(zhí)行,但如果運(yùn)用在其他編程工具所編制的程序中,一般不能單獨(dú)執(zhí)行,而要把SQL語句嵌入到高級(jí)語言(如易語言)中使用,通過高級(jí)語言的命令和方法來調(diào)用之,此時(shí)SQL稱為嵌入式SQL。調(diào)用SQL語句的程序稱為宿主程序,在易語言中一般是把SQL語句作為宿主程序的唯一參數(shù)來直接處理。嵌入式SQL在使用上有一些規(guī)定,在易語言中目前的版本規(guī)定如下:、在程序中要區(qū)分SQL語句和宿主語言的語句。在易語言中好區(qū)分,因?yàn)镾QL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025安徽建筑安全員-B證考試題庫附答案
- 貴州財(cái)經(jīng)職業(yè)學(xué)院《材料與施工工藝》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴陽幼兒師范高等??茖W(xué)?!豆芾韺W(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年上海市建筑安全員考試題庫及答案
- 2025年河南省建筑安全員考試題庫附答案
- 貴陽信息科技學(xué)院《薪酬與福利》2023-2024學(xué)年第一學(xué)期期末試卷
- 硅湖職業(yè)技術(shù)學(xué)院《食品試驗(yàn)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴陽學(xué)院《物理污染控制工程》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025云南省建筑安全員C證考試題庫
- 廣州新華學(xué)院《音樂劇演唱(2)》2023-2024學(xué)年第一學(xué)期期末試卷
- 8年級(jí)上冊(cè)(人教版)物理電子教材-初中8~9年級(jí)物理電子課本
- 不動(dòng)產(chǎn)登記申請(qǐng)表
- 2024年中國(guó)中鐵十局招聘高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 項(xiàng)目資金管理統(tǒng)籌實(shí)施方案
- 高中英語新課程標(biāo)準(zhǔn)解讀課件
- 國(guó)家開放大學(xué)電大《金融市場(chǎng)》教學(xué)考一體化網(wǎng)考形考試題及答案-圖文
- 政治-經(jīng)濟(jì)與社會(huì) 教材探究與分享參考答案高中政治統(tǒng)編版必修二
- 2024年P(guān)URL系列反應(yīng)型皮革用聚氨酯乳液項(xiàng)目合作計(jì)劃書
- GB/T 44328-2024七氟異丁腈
- 湖南省常德市桃源縣市級(jí)名校2024年中考數(shù)學(xué)模試卷含解析
- 山里的夜(2022年浙江金華中考語文試卷記敘文閱讀題及答案)
評(píng)論
0/150
提交評(píng)論