- 3
- 0
- 约6.66千字
- 约 10页
- 2017-08-13 发布于河南
- 举报
结构化查询语言- SQL.doc
結構化查詢語言- SQL
SQL - Structured Query Language 是一種以「集合導向」的電腦語言,使用於關聯式數據庫的存取工作。「集合導向」是指它利用數學上集合的概念處理記錄。常用的概念有二:
併集(Union) 交集(Intersection)
A集 B集 A集 B集
SQL也是一種「非程序性語言 」(Non-procedural language),即是它著重於「甚麼」(what)而非「怎樣」(how)。使用者只形容甚麼數據是需要的,而不是怎樣去得到數據。在電腦語言世代中,SQL屬於「第四代語言」(Fourth generation language, 4GL),數句語言便可完成大量工作。
基本上,SQL所能做到的,若使用 Foxpro的數據庫指令如 LIST FOR, REPLACE, CREATE, SET RELATION 等也可做到;但學習SQL的重要性在於它是真正能夠跨越不同軟件及平台,在不同的數據庫平台甚至EXCEL上也可使用。SQL發源於大型電腦上伺服器數據庫語言上,但現在很多PC機及網頁語言(如 Visual BASIC, Java, C++)也支援它了。
在伺服器/工作站(server/client)型式的網絡上,伺服器將內部資源分享給工作站,而工作站則向伺服器要求資源。有時候,一台工作站也可分擔存放數據庫工作,讓伺服器及其他工作站索取資料。
Visual Foxpro提供一個「圖像使用者介面」(Graphi User Interface, GUI)的工具,即Query Designer,容許使用者按動滑鼠便能寫作 SQL。但我們也要懂得直接編寫SQL語句。
SELECT...FROM指令
「查詢」( query ) 就是從數據庫中索取符合條件(criteria)的信息的要求。查詢的結果是數據庫中所有符合條件的記錄,以特定的次序排列起來。使用SELECT...FROM向電腦發出查詢前,我們不用開啟任何數據庫,只需設定數據庫所在的路徑,例如:
SET DEFAULT TO C:\SAMPLE
1) SELECT * FROM table
星號(*)的意思是全部欄。例如: SELECT * FROM student
是要求Foxpro傳回所有在數據庫文件 student 內的記錄的全部欄,並按原來次序排列。
查詢的結果是一個以 Query為名的暫存 性「唯讀表格」(read-only table)。但當另一個新的查詢發出或離開 Foxpro時,舊的結果便會消失。
SQL的SELECT和 Foxpro的SELECT有很大分別,後者是用作選取工作區域!
2) SELECT field1, field2, ... FROM table
以特定欄名 field1等 代替星號,是只要部份欄的查詢。 例如:
SELECT reg_no, name_e FROM student
只會顯示兩個欄 reg_no 及 name_e。
3) SELECT ... FROM ... TO SCREEN
SELECT ... FROM ... TO PRINTER
SELECT ... FROM ... TO text file
這三個查詢是分別將結果顯示於Foxpro顯示區,輸出至打印機 及 輸出至文本文件。
4) SELECT ... FROM ... INTO TABLE table
上面提及查詢的結果是暫存性及唯讀的,在離開 Foxpro或發出新的查詢後便會消失。如果要保留結果成一個永久及可修改的數據庫表格,加入 INTO TABLE table 便可。
例如: SELECT reg_no, name_e FROM student INTO TABLE stuquery
新的永久表格 stuquery便會存放著查詢的結果。
5) SELECT DISTINCT ... FROM ...
Distinct 一字令查詢結果只顯示指定字段的不重覆項目。例如:
SELECT title FROM employee SELECT DISTINCT title FROM employee
有四個 Sales Representative 只有一個 Sales Representative
而且,加上 DISTINCT 的查詢會自動以指定字段作升幕排序!
另外,如指定字段有兩個或以上,只有當所有字段相同時,記錄才被視為重覆。
6) SELECT ... FROM ... ORDER BY ... [ASC/DESC]
指定查詢結果以特定次序排列。
SELECT ... FROM ... ORDER
原创力文档

文档评论(0)