面向算題語言又稱面向問題語言,為了易於描述和求解某類指定問題而專門設計的一種非過程語言。
基本介紹
- 中文名:面向算題語言
- 外文名:Problem-Oriented Language
- 別稱:面向問題語言
- 定義:描述和求解某類指定問題
- 系統:計算機
- 套用學科:計算機原理
概述,相關語言,簡單查詢語句,最簡單的查詢語句,SELECT語句的基本語法,
概述
為了易於描述和求解某類指定問題而專門設計的一種非過程語言。利用它在計算機上解題時,只要指出問題、輸入數據和輸出格式,就可由相應的計算機系統給出結果。
其主要特點是:1、申述性。程式人員只要指明“做什麼”(及有關參數),而不必詳細說明“如何做”,後者由系統自動解決。2、對用戶友善。面向問題語言一般是為最終用戶沒計的,專業性強,用戶稍經訓練便會使用。3、效率高。
早在20世紀60年代,數值計算的面向問題語言(如線性代數語言)和非數值計算的面向問題語言(如工具機控制語言)曾經蓬勃發展。自60年代末以來,隨著資料庫、軟體工程、微型計算機和網路等迅猛發展,出現了很多功能強大的面向問題語言,如資料庫檢索語言,以至誕生了含義更為豐富的名字——第四代語言4GL。
面向問題語言的主要缺炒章和點是:①無標準、難移植;②通用性差;③適應性差,不適應計算機資源的擴充升級。
相關語言
關係型資料庫模型已經成為資料庫設計事實上的標準。這不僅因為關係模型自身的強大功能,而且還由於它提供了稱為結構化查詢語言(SQL)的標準接口。結構化查詢語言(Structured Query Language,SQL)是最重要的關係資料庫操作語言,並且它的影響已經超出資料庫領域,得到其他領域的重視和採用,如人工智慧領域的數據檢索。
SQL語言1974年由Boyce和Chamberlin提出,並首先在IBM公司研製的關係資料庫系統System R上實現。由於它具有愉蜜功能豐富、使用方便靈活、語言簡潔易學等突出的優點,深受計算機工業界和計算機用戶的歡迎備烏元習。1980年10月,經美國國家標準局(ANSI)的數地擔習據庫委員會X3H2批准,將SQL作為關係資料庫語言的美國標準,同年公布了標準SQL,此後不久,國際標準化組織(ISO)也作出了同樣的決定。
SQL從功能上可以分為4部分:數據查詢、數據操縱、數據定義和數據控制。
SQL的核心部分相當於關係代數,但又具有關係代數所沒有的許多特點,如聚集、資料庫更新等。它是一個綜合的、通用的、功能極強的關係資料庫語言。其特點是:
1、數據描述、操縱、控制等功能一體化。
2、兩種使用方式蘭乎料說,統一的語法結構。SQL有兩種使用方式。一是在線上互動使用,這種方式下的SQL實際上是作為自含旋重她型語言使用的。另一種方式是嵌人到某種高級程式設計語言(如C語言等)中去使用。前一種方式仔立匙適合於非計算機專業人員使用,後一種方式適合於專業計算機人員使用。儘管使用方式不向,但所用語言的語法結構基本上是一致的。
3、高度非過程化。SQL是一種第四代語言(4GL),用戶只需要提出“乾什麼”,無須具體指明“怎么乾”,像存取路徑選擇和具體處理操作等均由系統自動完成。
4、語言簡潔,易學易用。儘管SQL的功能很強,但語言十分簡潔,核心功能只用了8個動詞。SQL的語法接近英語口語,所以,用戶很容易學習和使用。
簡單查詢語句
數據查詢是資料庫套用的核心功能,在許多資料庫套用系統中主要的功能在於查詢。
最簡單的查詢語句
下面的SQL語句是最簡單的查詢形式,生成的記錄集包含整個表的全部數據:
SELECT*FROM學生
其中,“ * ”指表中所有欄位(列)。FROM子句用於指定數據表。
SELECT語句的基本語法
在實際套用中,往往需要從一個或多個表中選擇符合特定條件的記錄構成記錄集,因此應對SELECT語句的語法有一定的了解。SELECT語句的基本語法如下:
SELECT * | 欄位列表
FROM表名
[WHERE查詢條件]
[GROUP BY 分組欄位 [HAVING分組條件]]
[ORDER BY 排序欄位 [ASC | DESC]]
說明:
* | 欄位列表:“ * ”表示所有欄位;“欄位列表”指定欄位,多個欄位間用逗號分隔,來自不同表的同名欄位前須加表的名稱和圓點。
FROM子句:指定表。若指定多個表,用逗號分隔。
WHERE子句:指定選擇記錄的條件。
GROUP BY及HAVING子句:分組過濾,將分組欄位中同值記錄合併為一條記錄。
ORDER BY:排序。ASC為升序(默認);DESC為降序。
在SELECT語句的各子句中,WHERE子句使用頻率最高。該子句指明查詢的條件。在WHERE子句中可使用各種關係(比較)運算符表示篩選記錄的條件。
圖所示為用SQL語句生成記錄集示例。
例1:選擇“學生”表中所有男生構成記錄集:
SELECT*FROM 基本信息 WHERE 性別 =“男”
例2:取“學生”表中張三的學號和姓名,根據其學號取“成績”表中該學生的各科成績構成記錄集:
SELECT學生.學號,學生.姓名,成績.課號,成績.分數 FROM 學生,成績
WHERE學生.學號=成績.學號 AND 學生.姓名=“張三”
在WHERE子句中使用Like運算符可實現模糊查詢。SQL語句中Like運算符的通配符是“%”,可代表任何字元,字元數不限。
例3:用Like運算符進行模糊查詢。
①查詢所有姓“張”的學生:
SELECT * FROM 學生 WHERE 姓名 Like“張%”
②查詢所有姓名中含有“小”字的學生:
SELECT * FROM 學生 WHERE 姓名 Like“%小%”
③查詢姓名最後一個字為“剛”的所有學生:
SELECT * FROM 學生 WHERE 姓名 like“&剛”
簡單查詢語句
數據查詢是資料庫套用的核心功能,在許多資料庫套用系統中主要的功能在於查詢。
最簡單的查詢語句
下面的SQL語句是最簡單的查詢形式,生成的記錄集包含整個表的全部數據:
SELECT*FROM學生
其中,“ * ”指表中所有欄位(列)。FROM子句用於指定數據表。
SELECT語句的基本語法
在實際套用中,往往需要從一個或多個表中選擇符合特定條件的記錄構成記錄集,因此應對SELECT語句的語法有一定的了解。SELECT語句的基本語法如下:
SELECT * | 欄位列表
FROM表名
[WHERE查詢條件]
[GROUP BY 分組欄位 [HAVING分組條件]]
[ORDER BY 排序欄位 [ASC | DESC]]
說明:
* | 欄位列表:“ * ”表示所有欄位;“欄位列表”指定欄位,多個欄位間用逗號分隔,來自不同表的同名欄位前須加表的名稱和圓點。
FROM子句:指定表。若指定多個表,用逗號分隔。
WHERE子句:指定選擇記錄的條件。
GROUP BY及HAVING子句:分組過濾,將分組欄位中同值記錄合併為一條記錄。
ORDER BY:排序。ASC為升序(默認);DESC為降序。
在SELECT語句的各子句中,WHERE子句使用頻率最高。該子句指明查詢的條件。在WHERE子句中可使用各種關係(比較)運算符表示篩選記錄的條件。
圖所示為用SQL語句生成記錄集示例。
例1:選擇“學生”表中所有男生構成記錄集:
SELECT*FROM 基本信息 WHERE 性別 =“男”
例2:取“學生”表中張三的學號和姓名,根據其學號取“成績”表中該學生的各科成績構成記錄集:
SELECT學生.學號,學生.姓名,成績.課號,成績.分數 FROM 學生,成績
WHERE學生.學號=成績.學號 AND 學生.姓名=“張三”
在WHERE子句中使用Like運算符可實現模糊查詢。SQL語句中Like運算符的通配符是“%”,可代表任何字元,字元數不限。
例3:用Like運算符進行模糊查詢。
①查詢所有姓“張”的學生:
SELECT * FROM 學生 WHERE 姓名 Like“張%”
②查詢所有姓名中含有“小”字的學生:
SELECT * FROM 學生 WHERE 姓名 Like“%小%”
③查詢姓名最後一個字為“剛”的所有學生:
SELECT * FROM 學生 WHERE 姓名 like“&剛”