當前位置:首頁 » 編程語言 » sql語言中可以使用的謂詞有
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql語言中可以使用的謂詞有

發布時間: 2022-11-20 14:14:16

Ⅰ 求解:寫出sql查詢語句的基本結構,並說明結構中各子句表示的含義

語法
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]}
FROM tableexpression [, ...] [IN externaldatabase]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[WITH OWNERACCESS OPTION]

SELECT 語句包含以下部分:

部分 說明
predicate 這些謂詞之一:ALL、DISTINCT、DISTINCTROW 或 TOP。可以使用謂詞來限定返回記錄的數量。如果沒有指定謂詞,默認值為 ALL。
* 指定選擇所指定的表的所有欄位。
table 表的名稱,該表包含了其記錄被選擇的欄位。
field1,field2 欄位名,這些欄位包含了要檢索的數據。如果包括多個欄位,將按它們的排列順序對其進行檢索。
alias1, alias2 用作列標題的名稱,不是 table 中的原始列名。
tableexpression 其中包含要檢索的數據的表的名稱。
externaldatabase 如果 tableexpression 中的表不在當前資料庫中,則使用該參數指定該資料庫名。

說明
若要執行此項操作,Microsoft�0�3 Jet 資料庫引擎會搜索指定的表,並提取出選定的列,再選擇出符合條件的列,然後按指定的順序對得到的行進行排序或分組。

SELECT 語句不會更改資料庫中的數據。

SELECT 通常是 SQL 語句中的第一個詞。大多數 SQL 語句是 SELECT 或 SELECT...INTO 語句。

SELECT 語句最簡化的語法為:

SELECT fields FROM table

可以通過星號 (*) 來選擇表中所有的欄位。以下的示例選擇在 Employees 表中的所有欄位:

SELECT * FROM Employees;

如果一個欄位名包括於 FROM 子句內的多個表中,請在該欄位前面加上表名和 .(圓點)號。在下面的示例中,Department 欄位同時存在於 Employees 表和 Supervisors 表中。SQL 語句從 Employees 表中選擇出部門並從 Supervisors 表中選擇出主管名:

SELECT Employees.Department, Supervisors.SupvName

FROM Employees INNER JOIN Supervisors

WHERE Employees.Department = Supervisors.Department;

創建 Recordset 對象時,Microsoft Jet 資料庫引擎將使用表的欄位名作為 Recordset 對象中的 Field 對象名。如果需要一個不同的欄位名或者名稱不適合用來生成該欄位的表達式,請使用 AS 保留字。下面的示例使用標題 Birth 來命名在所得到的 Recordset 對象中的返回 Field 對象:

SELECT BirthDate

AS Birth FROM Employees;

只要使用的聚合函數或查詢返回的是不明確的或重復的 Field 對象名稱,就必須使用 AS 子句為該 Field 對象另外提供一個替代名稱。下面的示例使用標題 HeadCount 來命名在結果 Recordset 對象中的返回 Field 對象:

SELECT COUNT(EmployeeID)

AS HeadCount FROM Employees;

可以在 SELECT 語句中使用其他子句進一步約束和組織所返回的數據。有關詳細信息,請參閱相應子句的幫助主題。

請參閱
ALL DISTINCT、DISTINCTROW、TOP 謂詞 ORDER BY 子句 (Microsoft Jet SQL)
DELETE 語句 SELECT...INTO 語句
FROM 子句 SQL 聚合函數
GROUP BY 子句 UNION 操作
HAVING 子句 UPDATE 語句
IN 子句 WHERE 子句
INSERT INTO 語句 WITH OWNERACCESS OPTION 聲明

Ⅱ SQL語言中,刪除一個資料庫或數據表的命令謂詞是________

drop table drop database

Ⅲ 第三章 SQL語言元素(一)

InterSystems SQL命令(也稱為SQL語句)以關鍵字開頭,後跟一個或多個參數。其中一些參數可能是子句或函數,由它們自己的關鍵字標識。

InterSystems SQL關鍵字包括命令名稱,函數名稱,謂詞條件名稱,數據類型名稱,欄位約束,優化選項和特殊變數。它們還包括 AND , OR 和 NOT 邏輯運算符, NULL 列值指示符以及ODBC函數構造,例如 {d dateval} 和 {fn CONCAT(str1,str2)} 。

聚合函數是SQL固有函數,它計算列的所有值並返回單個聚合值。

這種寫法只能在mac routine里,類文件里編譯報錯。

如果將用戶提供的(外部)函數的使用配置為系統范圍的選項,則該SQL語句只能調用用戶提供的(外部)函數。默認為「否」。默認情況下,嘗試調用用戶提供的函數會發出 SQLCODE -372 錯誤。可以使用 %SYSTEM.SQL類的SetAllowExtrinsicFunctions() 方法在系統范圍內配置SQL對外部函數的使用。若要確定當前設置,請調用 $SYSTEM.SQL.CurrentSettings() ,該顯示顯示「允許在SQL語句中使用外部函數」選項。

不能使用用戶提供的函數來調用 %routine (名稱以%字元開頭的常式)。
嘗試這樣做會發出 SQLCODE -373 錯誤。

InterSystems SQL文字具有以下語法:

文字是一系列代表實際(文字)值的字元。它可以是數字或字元串。

空字元串是文字字元串;它由兩個單引號字元( '' )表示。 NULL 不是文字值;它表示沒有任何值。

注意:在嵌入式SQL中,不允許在字元串文字中使用以 ## 開頭的一些字元序列,如「使用嵌入式SQL」一章的「文字值」中所述。此限制不適用於其他SQL調用,例如動態SQL。

使用單引號( ' )字元作為字元串定界符。 SQL兼容性支持雙引號字元( 「 )的使用,但由於與定界標識符標准沖突,因此強烈建議不要使用。將一對雙引號字元 "" 解析為無效的定界標識符。並生成 SQLCODE -1 錯誤。

要在字元串中指定單引號字元作為字面字元,請指定一對這樣的字元作為字面轉義序列。
例如, 'a 'normal' string' 。

雙豎條( || )是首選的SQL連接操作符。
它可以用於連接兩個數字、兩個字元串或一個數字和一個字元串。

下劃線( _ )作為SQL連接操作符提供,以保證ObjectScript的兼容性。
此連接操作符只能用於連接兩個字元串。

如果兩個操作數都是字元串,並且兩個字元串都具有相同的排序規則類型,則所得的級聯字元串具有該排序規則類型。在所有其他情況下,連接的結果是排序類型 EXACT 。

使用 NULL 關鍵字表示沒有指定值。
在SQL中, NULL 始終是表示數據值因任何原因未指定或不存在的首選方式。

SQL零長度字元串(空字元串)由兩個單引號字元指定。
空字元串( " )與空字元串是不同的。
空字元串是一個已定義的值,一個不包含字元的字元串,一個長度為0的字元串。
一個零長度的字元串在內部由非顯示字元 $CHAR(0) 表示。

注意:不建議使用SQL零長度字元串作為欄位輸入值或欄位默認值。
使用 NULL 表示數據值的缺失。

在SQL編碼中應避免使用SQL零長度字元串。
但是,由於許多SQL操作都會刪除末尾的空格,所以只包含空格字元(空格和製表符)的數據值可能會導致SQL的零長度字元串。

注意,不同的SQL length函數返回不同的值: length 、 CHAR_LENGTH 和 DATALENGTH 返回SQL長度。
$LENGTH 返回ObjectScript表示長度。
長度不計算尾隨空格;
所有其他長度函數都計算末尾的空格。

NOT NULL數據約束要求欄位必須接收一個數據值;
不允許指定NULL而不是值。
這個約束不阻止使用空字元串值。

SELECT 語句的 WHERE 或 HAVING 子句中的 IS NULL 謂詞選擇空值;
它不選擇空字元串值。

IFNULL 函數計算一個欄位值,如果欄位值為 NULL ,則返回第二個參數中指定的值。
它不會將空字元串值視為非空值。

COALESCE 函數從提供的數據中選擇第一個非空值。
它將空字元串值視為非空值。

當 CONCAT 函數或 concenate 操作符( || )連接一個字元串和一個 NULL 時,結果是 NULL 。
如下面的例子所示:

AVG、COUNT、MAX、MIN 和 SUM 聚合函數在執行操作時忽略 NULL 值。
( COUNT * 統計所有行,因為不可能有一個所有欄位都為空值的記錄。)
SELECT 語句的 DISTINCT 關鍵字在其操作中包含 NULL ;
如果指定的欄位有空值, DISTINCT 返回一個空行.

AVG 、 COUNT 和 MIN 、聚合函數受空字元串值的影響。
MIN 函數將空字元串視為最小值,即使存在值為0的行。
MAX 和 SUM 聚合函數不受空字元串值的影響。

對大多數SQL函數提供 NULL 作為操作數將返回 NULL 。

任何以NULL作為操作數的SQL算術操作都返回 NULL 值。
因此,7 +零=零。
這包括二元運算加法( + )、減法( - )、乘法( * )、除法( / )、整數除法( )和取模( # ),以及一元符號運算符加號( + )和減號( - )。

算術操作中指定的空字元串將被視為0(零)值。
除法( / ),整數除法( ),或對空字元串( 6/ " )取模( # )會導致 <DIVIDE> 錯誤。

在SQL中, NULL 的長度是沒有定義的(它返回 < NULL > )。
然而,空字元串的長度被定義為長度為0。
如下面的例子所示:

如本例所示,SQL LENGTH 函數返回SQL長度。

可以使用 ASCII 函數將SQL的零長度字元串轉換為 NULL ,示例如下:

但是,對標准 SQL 的某些系統間IRIS擴展對 NULL 和空字元串的長度的處理是不同的。
$LENGTH函數返回這些值的InterSystems IRIS內部表示: NULL 表示為長度為0的已定義值,SQL空字元串表示為長度為0的字元串。
該功能與ObjectScript兼容。

這些值的內部表示方式的另一個重要位置是 %STRING 、 %SQLSTRING 和 %SQLUPPER 函數,它們將空格附加到值中。
因為 NULL 實際上沒有值,所以在它後面添加一個空格會創建一個長度為1的字元串。
但是一個空字元串確實有一個字元值,所以在它後面加上一個空格會創建一個長度為2的字元串。
如下面的例子所示:

注意,這個例子使用的是 CHAR_LENGTH ,而不是 LENGTH 。
因為 LENGTH 函數刪除了末尾的空格,所以 LENGTH(%STRING(NULL)) 返回長度為0的字元串;
LENGTH(%STRING(")) 返回長度為2的字元串, 因為 %STRING 追加的是前導空格,而不是尾隨空格。

當SQL NULL 輸出到ObjectScript時,它由ObjectScript空字元串( "" )表示,長度為0的字元串。

當SQL零長度字元串數據輸出到ObjectScript時,它由包含 $CHAR(0) 的字元串表示,該字元串長度為1。

在ObjectScript中,沒有值通常用空字元串( "" )表示。
當這個值被傳遞到嵌入式SQL中時,它會被視為空值,如下面的例子所示:

如果指定了一個未定義的輸入主機變數,嵌入式SQL將其值視為 NULL 。

當將NULL或空字元串值從嵌入式SQL傳遞到ObjectScript時, NULL 被轉換為長度為0的字元串,空字元串被轉換為長度為1的字元串。
如下面的例子所示:

在下面的例子中,SQL的空字元串加上一個空格被傳遞為長度為2的字元串:

Ⅳ sql中的謂詞exists的詳解是什麼

就是存在的意思。舉個常用例子:
select a.*
from 同學錄 a
where exists (select 1 from 請柬 b where b.姓名=a.姓名)
列出同學錄中,有請柬的同學的所有信息。

Ⅳ SQL語句完成核心功能的九個動詞是什麼

1、SELECT:查詢出數據,也可用於變數賦值

2、CREATE:創建

3、DROP:刪除

4、ALTER:修改

5、INSERT:插入

6、UPDATE:更新

7、DELETE:刪除

8、Grant:授權

9、revoke:回收許可權

(5)sql語言中可以使用的謂詞有擴展閱讀

語法

SQL語言分成了幾種要素,包括:

1、子句,是語句和查詢的組成成分。(在某些情況下,這些都是可選的。)[14]

2、表達式,可以產生任何標量值,或由列和行的資料庫表

3、謂詞,給需要評估的SQL三值邏輯(3VL)(true/false/unknown)或布爾真值指定條件,並限制語句和查詢的效果,或改變程序流程。

4、查詢,基於特定條件檢索數據。這是SQL的一個重要組成部分。

5、語句,可以持久地影響綱要和數據,也可以控制資料庫事務、程序流程、連接、會話或診斷。

6、SQL語句也包括分號(";")語句終結符。盡管並不是每個平台都必需,但它是作為SQL語法的標准部分定義的。

7、無意義的空白在SQL語句和查詢中一般會被忽略,更容易格式化SQL代碼便於閱讀。

標准化

各種資料庫的SQL方言通常不可移植,特別是在日期時間語法、字元串連接、NULL、比較的大小寫敏感方面。只有PostgreSQL與Mimer SQL努力遵從標准。Oracle資料庫的DATE行為如同DATETIME,缺少TIMEtype)。

SQL在1986年被ANSI標准化,1987年被ISO標准化。由ISO/IEC JTC 1, Information technology, Subcommittee SC 32, Data management and interchange維護。標准名稱通常為如下模式:ISO/IEC 9075-n:yyyy Part n: title。

Ⅵ 高分請教SQL語言的問題

1、資料庫一般都部分支持ANSI制定的sql標准,因此如果是標準的sql,在各個資料庫中的差別是不大的,寫一個語句在各個資料庫中都是可以執行的。

2、但是各個軟體商的資料庫又有自己的擴展,如:
ACCESS的sql語法叫:J-sql
MSSQL的sql語法叫:T-sql

Access2003 中不支持給欄位起和欄位一樣的別名
Mssql2000 中不支持類似 where (a,b) in('a','b') 的查詢


3、至於【哪些語法通用或類似,哪些不通用】這個詳細很難回答,建議如果想找通用的sql,查看一下sql99標准相關文檔就可以了。

---
以上,希望對你有所幫助。

Ⅶ vfp中sql語句謂詞EXISTS的用法

exists 理解為 包含

not exists 理解 不包含

D項 查詢條件 使用not exists 子查詢條件是 成績 小於 85
「 數據查詢的結果中 不包含 成績小於85的數據」
所以 D選項正確 [符合問題中 成績高於或等於 85分 的要求]
C項 查詢條件 中 只查詢到 成績 大於85 沒有包括 85分的 數據 所以C選項不正確

Ⅷ SQL資料庫的操作

SQL包括了所有對資料庫的操作,主要是由4個部分組成:
1.數據定義:這一部分又稱為「SQL DDL」,定義資料庫的邏輯結構,包括定義資料庫、基本表、視圖和索引4部分。
2.數據操縱:這一部分又稱為「SQL DML」,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。
3.數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。
4.嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。
下面我們將分別介紹: SQL數據定義功能包括定義資料庫、基本表、索引和視圖。
首先,讓我們了解一下SQL所提供的基本數據類型:(如^00100009b^)
1.資料庫的建立與刪除
(1)建立資料庫:資料庫是一個包括了多個基本表的數據集,其語句格式為:
CREATE DATABASE <資料庫名> 〔其它參數〕
其中,<資料庫名>在系統中必須是唯一的,不能重復,不然將導致數據存取失誤。〔其它參數〕因具體資料庫實現系統不同而異。
例:要建立項目管理資料庫(xmmanage),其語句應為:
CREATE DATABASE xmmanage
(2)資料庫的刪除:將資料庫及其全部內容從系統中刪除。
其語句格式為:DROP DATABASE <資料庫名>
例:刪除項目管理資料庫(xmmanage),其語句應為: DROP DATABASE xmmanage
2.基本表的定義及變更
本身獨立存在的表稱為基本表,在SQL語言中一個關系唯一對應一個基本表。基本表的定義指建立基本關系模式,而變更則是指對資料庫中已存在的基本表進行刪除與修改。 SQL是一種查詢功能很強的語言,只要是資料庫存在的數據,總能通過適當的方法將它從資料庫中查找出來。SQL中的查詢語句只有一個:SELECT,它可與其它語句配合完成所有的查詢功能。SELECT語句的完整語法,可以有6個子句。完整的語法如下:SELECT 目標表的列名或列表達式集合FROM 基本表或(和)視圖集合〔WHERE條件表達式〕〔GROUP BY列名集合〔HAVING組條件表達式〕〕〔ORDER BY列名〔集合〕…〕
簡單查詢,使用TOP子句
查詢結果排序order by
帶條件的查詢where,使用算術表達式,使用邏輯表達式,使用between關鍵字,使用in關鍵字,
模糊查詢like
整個語句的語義如下:從FROM子句中列出的表中,選擇滿足WHERE子句中給出的條件表達式的元組,然後按GROUPBY子句(分組子句)中指定列的值分組,再提取滿足HAVING子句中組條件表達式的那些組,按SELECT子句給出的列名或列表達式求值輸出。ORDER子句(排序子句)是對輸出的目標表進行重新排序,並可附加說明ASC(升序)或DESC(降序)排列。在WHERE子句中的條件表達式F中可出現下列操作符和運算函數:算術比較運算符:<,<=,>,>=,=,<>。邏輯運算符:AND,OR,NOT。集合運算符:UNION(並),INTERSECT(交),EXCEPT(差)。集合成員資格運算符:IN,NOT IN謂詞:EXISTS(存在量詞),ALL,SOME,UNIQUE。聚合函數:AVG(平均值),MIN(最小值),MAX(最大值),SUM(和),COUNT(計數)。F中運算對象還可以是另一個SELECT語句,即SELECT語句可以嵌套。上面只是列出了WHERE子句中可出現的幾種主要操作,由於WHERE子句中的條件表達式可以很復雜,因此SELECT句型能表達的語義遠比其數學原形要復雜得多。下面,我們以上面所建立的三個基本表為例,演示一下SELECT的應用:1.無條件查詢例:找出所有學生的的選課情況SELECT st_no,su_noFROM score例:找出所有學生的情況SELECT*FROM student「*」為通配符,表示查找FROM中所指出關系的所有屬性的值。2.條件查詢條件查詢即帶有WHERE子句的查詢,所要查詢的對象必須滿足WHERE子句給出的條件。例:找出任何一門課成績在70以上的學生情況、課號及分數SELECT UNIQUE student.st_class,student.st_no,student.st_name,student.st_sex,student.st_age,score.su_no,score.scoreFROM student,scoreWHERE score.score>=70 AND score.stno=student,st_no這里使用UNIQUE是不從查詢結果集中去掉重復行,如果使用DISTINCT則會去掉重復行。另外邏輯運算符的優先順序為NOT→AND→OR。例:找出課程號為c02的,考試成績不及格的學生SELECT st_noFROM scoreWHERE su_no=『c02』AND score<603.排序查詢排序查詢是指將查詢結果按指定屬性的升序(ASC)或降序(DESC)排列,由ORDER BY子句指明。例:查找不及格的課程,並將結果按課程號從大到小排列SELECT UNIQUE su_noFROM scoreWHERE score<60ORDER BY su_no DESC4.嵌套查詢嵌套查詢是指WHERE子句中又包含SELECT子句,它用於較復雜的跨多個基本表查詢的情況。例:查找課程編號為c03且課程成績在80分以上的學生的學號、姓名SELECT st_no,st_nameFROM studentWHERE stno IN (SELECT st_noFROM scoreWHERE su_no=『c03』 AND score>80 )這里需要明確的是:當查詢涉及多個基本表時用嵌套查詢逐次求解層次分明,具有結構程序設計特點。在嵌套查詢中,IN是常用到的謂詞。若用戶能確切知道內層查詢返回的是單值,那麼也可用算術比較運算符表示用戶的要求。5.計算查詢計算查詢是指通過系統提供的特定函數(聚合函數)在語句中的直接使用而獲得某些只有經過計算才能得到的結果。常用的函數有:COUNT(*) 計算元組的個數COUNT(列名) 對某一列中的值計算個數SUM(列名) 求某一列值的總和(此列值是數值型)AVG(列名) 求某一列值的平均值(此列值是數值型)MAX(列名) 求某一列值中的最大值MIN(列名) 求某一列值中的最小值例:求男學生的總人數和平均年齡SELECT COUNT(*),AVG(st_age)FROM studentWHERE st_sex=『男』例:統計選修了課程的學生的人數SELECT COUNT(DISTINCT st_no)FROM score注意:這里一定要加入DISTINCT,因為有的學生可能選修了多門課程,但統計時只能按1人統計,所以要使用DISTINCT進行過濾。 由於資料庫管理系統是一個多用戶系統,為了控制用戶對數據的存取權利,保持數據的共享及完全性,SQL語言提供了一系列的數據控制功能。其中,主要包括安全性控制、完整性控制、事務控制和並發控制。1.安全性控制數據的安全性是指保護資料庫,以防非法使用造成數據泄露和破壞。保證數據安全性的主要方法是通過對資料庫存取權力的控制來防止非法使用資料庫中的數據。即限定不同用戶操作不同的數據對象的許可權。存取權控制包括權力的授予、檢查和撤消。權力授予和撤消命令由資料庫管理員或特定應用人員使用。系統在對資料庫操作前,先核實相應用戶是否有權在相應數據上進行所要求的操作。(1)權力授予:權力授有資料庫管理員專用的授權和用戶可用的授權兩種形式。資料庫管理員專用授權命令格式如下:|CONNECT |GRANT|RESOURCE|TO 用戶名〔IDENTIFED BY 口令〕|DBA |其中,CONNECT表示資料庫管理員允許指定的用戶具有連接到資料庫的權力,這種授權是針對新用戶;RESOURCE表示允許用戶建立自己的新關系模式,用戶獲得CONNECT權力後,必須獲得RESOURCE權力才能創建自己的新表;DBA表示資料庫管理員將自己的特權授予指定的用戶。若要同時授予某用戶上述三種授權中的多種權力,則必須通過三個相應的GRANT命令指定。另外,具有CONNECT和RESOURCE授權的用戶可以建立自己的表,並在自己建立的表和視圖上具有查詢、插入、修改和刪除的權力。但通常不能使用其他用戶的關系,除非能獲得其他用戶轉授給他的相應權力。例:若允許用戶SSE連接到資料庫並可以建立他自己的關系,則可通過如下命令授予權力:GRANT CONNECT TO SSE INENTIFIED BY BD1928GRANT RESOURCE TO SSE用戶可用的授權是指用戶將自己擁有的部分或全部權力轉授給其他用戶的命令形式,其命令格式如下:|SELECT ||INSERT ||DELETE |GRANT|UPDATE(列名1[,列名2]…)|ON|表名 |TO|用戶名|〔WITH GRANT OPTION〕|ALTER | |視圖名| |PUBLIC||NDEX ||ALL |若對某一用戶同時授予多種操作權力,則操作命令符號可用「,」相隔。PUBLIC 表示將權力授予資料庫的所有用戶,使用時要注意:任選項WITH GRANT OPTION表示接到授權的用戶,具有將其所得到的同時權力再轉授給其他用戶權力。例:如果將表student的查詢權授予所有用戶,可使用以下命令:GRANT SELECT ON student TO PUBLIC例:若將表subject的插入及修改權力授予用戶SSE並使得他具有將這種權力轉授他人的權力,則可使用以下命令:GRANT INSERT,UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION這里,UPDATE後面跟su_subject是指出其所能修改的列。(2)權力回收:權力回收是指回收指定用戶原已授予的某些權力。與權力授予命令相匹配,權力回收也有資料庫管理員專用和用戶可用的兩種形式。DBA專用的權力回收命令格式為:|CONNECT |REVOKE|RESOURCE|FROM用戶名|DBA |用戶可用的權力回收命令格式為:|SELECT ||INSERT ||DELETE |REVOKE|UPDATE(列名1〔,列名2〕…) |ON|表名 |FROM |用戶名||ALTER | |視圖名| |PUBLIC||INDEX ||ALL |例:回收用戶SSE的DBA權力:REVOKE DBA FROM SSE2.完整性控制資料庫的完整性是指數據的正確性和相容性,這是資料庫理論中的重要概念。完整性控制的主要目的是防止語義上不正確的數據進入資料庫。關系系統中的完整性約束條件包括實體完整性、參照完整性和用戶定義完整性。而完整性約束條件的定義主要是通過CREATE TABLE語句中的〔CHECK〕子句來完成。另外,還有一些輔助命令可以進行數據完整性保護。如UNIQUE和NOT NULL,前者用於防止重復值進入資料庫,後者用於防止空值。3.事務控制事務是並發控制的基本單位,也是恢復的基本單位。在SQL中支持事務的概念。所謂事務,是用戶定義的一個操作序列(集合),這些操作要麼都做,要麼一個都不做,是一個不可分割的整體。一個事務通常以BEGIN TRANSACTION開始,以COMMIT或ROLLBACK結束。SQL提供了事務提交和事務撤消兩種命令:(1)事務提交:事務提交的命令為:COMMIT 〔WORK〕事務提交標志著對資料庫的某種應用操作成功地完成,所有對資料庫的操作都必須作為事務提交給系統時才有效。事務一經提交就不能撤消。(2)事務撤消:事務撤消的命令是:ROLLBACK 〔WORK〕事務撤消標志著相應事務對資料庫操作失敗,因而要撤消對資料庫的改變,即要「回滾」到相應事務開始時的狀態。當系統非正常結束時(如掉電、系統死機),將自動執行ROLLBACK命令

Ⅸ 寫出SQL查詢語句的基本結構,並說明結構中各子句表示的含義

語法
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [,[table.]field2 [AS alias2] [,...]]}
FROM tableexpression [,...] [IN externaldatabase]
[WHERE...]
[GROUP BY...]
[HAVING...]
[ORDER BY...]
[WITH OWNERACCESS OPTION]
SELECT 語句包含以下部分:
部分 說明
predicate 這些謂詞之一:ALL、DISTINCT、DISTINCTROW 或 TOP.可以使用謂詞來限定返回記錄的數量.如果沒有指定謂詞,默認值為 ALL.
* 指定選擇所指定的表的所有欄位.
table 表的名稱,該表包含了其記錄被選擇的欄位.
field1,field2 欄位名,這些欄位包含了要檢索的數據.如果包括多個欄位,將按它們的排列順序對其進行檢索.
alias1,alias2 用作列標題的名稱,不是 table 中的原始列名.
tableexpression 其中包含要檢索的數據的表的名稱.
externaldatabase 如果 tableexpression 中的表不在當前資料庫中,則使用該參數指定該資料庫名.
說明
若要執行此項操作,Microsoft?Jet 資料庫引擎會搜索指定的表,並提取出選定的列,再選擇出符合條件的列,然後按指定的順序對得到的行進行排序或分組.
SELECT 語句不會更改資料庫中的數據.
SELECT 通常是 SQL 語句中的第一個詞.大多數 SQL 語句是 SELECT 或 SELECT...INTO 語句.
SELECT 語句最簡化的語法為:
SELECT fields FROM table
可以通過星號 (*) 來選擇表中所有的欄位.以下的示例選擇在 Employees 表中的所有欄位:
SELECT * FROM Employees;
如果一個欄位名包括於 FROM 子句內的多個表中,請在該欄位前面加上表名和 .(圓點)號.在下面的示例中,Department 欄位同時存在於 Employees 表和 Supervisors 表中.SQL 語句從 Employees 表中選擇出部門並從 Supervisors 表中選擇出主管名:
SELECT Employees.Department,Supervisors.SupvName
FROM Employees INNER JOIN Supervisors
WHERE Employees.Department = Supervisors.Department;
創建 Recordset 對象時,Microsoft Jet 資料庫引擎將使用表的欄位名作為 Recordset 對象中的 Field 對象名.如果需要一個不同的欄位名或者名稱不適合用來生成該欄位的表達式,請使用 AS 保留字.下面的示例使用標題 Birth 來命名在所得到的 Recordset 對象中的返回 Field 對象:
SELECT BirthDate
AS Birth FROM Employees;
只要使用的聚合函數或查詢返回的是不明確的或重復的 Field 對象名稱,就必須使用 AS 子句為該 Field 對象另外提供一個替代名稱.下面的示例使用標題 HeadCount 來命名在結果 Recordset 對象中的返回 Field 對象:
SELECT COUNT(EmployeeID)
AS HeadCount FROM Employees;
可以在 SELECT 語句中使用其他子句進一步約束和組織所返回的數據.有關詳細信息,請參閱相應子句的幫助主題.
請參閱
ALL DISTINCT、DISTINCTROW、TOP 謂詞 ORDER BY 子句 (Microsoft Jet SQL)
DELETE 語句 SELECT...INTO 語句
FROM 子句 SQL 聚合函數
GROUP BY 子句 UNION 操作
HAVING 子句 UPDATE 語句
IN 子句 WHERE 子句
INSERT INTO 語句 WITH OWNERACCESS OPTION 聲明