国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > 文庫 > 正文

SQL語言的數據查詢功能

2024-09-07 22:12:22
字體:
來源:轉載
供稿:網友

SQL語言中最主要、最核心的部分是它的查詢功能。查詢語言用來對已經存在于數據庫中的數據按照特定的組合、條件表達式或次序進行檢索,其基本格式是由SELECT子句、FROM子句和WHERE子句組成的查詢塊:

SELECT<列名表> FROM<表或視圖名> WHERE<查詢限定條件>

也就是說,SELECT指定了想要看哪些列數據,FROM指定這些數據來自哪些表或視圖,WHERE指定了想看哪些行。在SQL語言中除了查詢以外,許多其他功能也都離不開SELECT語句,如創建視圖,實際上是利用查詢語句來實現的;又如插入數據時,有很多時候是從另外一張或多張表中選擇符合條件的數據。所以,掌握查詢語句是掌握SQL語言的關鍵。

以下是SQL Server中的SELECT語句的完整用法。

SELECT select_list [INTO new_table_] FROM table_source [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC | DESC]]

下面簡單介紹一下常用的SQL查詢語法。

(1)檢索表中所有列,這是最簡單的一種方法,其格式為:

SELECT * FROM TABLE_NAME

(2)檢索表中特定列,其格式為:

SELECT COLUMN_NAME FROM TABLE_NAME

在查找多列內容時,用‘,’將各字段分開。

(3)用單引號加入字符串,其格式為:

SELECT COLUMN_NAME 'STRING LITERAL' FROM TABLE_NAME

(4)改變列標題。在默認情況下,顯示的查詢結果中的列標題是列名,但用戶可以改變列標題。共有以下兩種方法:

方法1 采用“列標題=列名”的格式

SELECT COLUMN_HEADING=COLUMN_NAME FROM TABLE_NAME

方法2 采用“列名列標題”的格式

SELECT COLUMN_NAME COLUMN_HEADING FROM TABLE_NAME

(5)算術運算符。在列出現的位置上,可以使用算術運算符操縱列,對查詢的結果進行計算。這些算術運算符包括:+(加)、-(減)、*(乘)、/(除)和%(取模)。其格式為:

{CONSTANT | COLUMN_NAME | FUNCTION |(SUBQUERY)} [{ARITHMETIC_OPERAOR | BITWISE_OPERATOR | STRING_OPERATOR} …]

(6)基于比較的選擇行,其格式為:

SELECT SELECT_LIST FROM TALBE_LIST WHERE EXPRESSION COMPARISION_OPERATOR EXPRESSION

(7)基于范圍的選擇行,其格式為:

SELECT SELECT_LIST FROM TABLE_LIST WHERE EXPRESSION [NOT] BETWEEN EXPRESSION AND EXPRESSION

(8)基于列表的選擇行,其格式為:

SELECT SELECT_LIST FROM TABLE_LIST WHERE [NOT] EXPRESSION [NOT] IN( VALUE_LIST)

(9)基于字符選擇行。查找中,有時需要對字符串進行比較。使用LIKE運算符可以完成對字符串的模糊匹配。其格式為:

SELECT SELECT_LIST FROM TABLE_LIST WHERE EXPRESSION [NOT] LIKE 'STRING'

(10)基于多個搜索條件選擇行。在WHERE子句中,也可以使用“邏輯運算符”連接多個條件,構成一個更復雜的條件進行查詢。可以使用以下3種邏輯運算符:AND(邏輯與)、OR(邏輯或)、NOT(邏輯非)。具體格式如下:

SELECT SELECT_LIST FROM TABLE_LIST WHERE [NOT] EXPRESSION {AND/OR} [NOT] EXPRESSION

(11)消除重復行。可以用DISTINCT消除重復行,其格式為:

SELECT [ALL | DISTINCT] SELECT_LIST FROM TABLE_NAME WHERE SEARCH_CONDITIONS

(12)結果排序。通常用戶對查詢出來的數據,希望按照某種順序顯示,以便查找。通過ORDER BY子句可以改變查詢結果的顯示順序。ORDER BY子句的格式為:

SELECT COLUMN_NAME FROM TABLE_NAME [ORDER BY COLUMN_NAME | SELECT_LIST _NUMBER | EXPRESSION [ASC | DESC]

(13)分組查詢。就是將表中數據按照一定條件分類組合,再根據需要得到統計信息。其格式為:

SELECT COLUMN_NAME FROM TABLE_NAME WHERE SEARCH_CONDITION [GROUP BY [ALL] AGGREGAT E_FREE_EXPRESSION]

(14)COMPUTE和COMPUTE BY。可以通過COMPUTE和COMPUTE BY計算出匯總數據。語法為:

COMPUTE ROW_AGGREGATE (COLUMN_NAME)

(15)連接查詢。在數據庫應用中,經常要涉及從兩個或更多的表中查詢數據,這就需要使用連接查詢。其格式如下:

SELECT COLUMN_NAME FROM TABLE_NAME WHERE TABLE_NAME.COLUMN JOIN_ OPERATOR TABLE_NAME.COLUMN

上述的連接操作符(JOIN_OPERATOR)可以是:=、>、<、>=、<=、! =、< >、! >、! <、= *、* =。在ANSI中,“=”連接應該寫成Inner Join;“* =”連接應該寫成LEFT OUT JOIN;“= *”連接應該寫成“RIGHT OUT JOIN”。在SQL Server中,這些寫法都可以用。但是,ANSI規定的寫法是INNER JOIN等標志。一般而言,在任何連接中,都使用“主鍵=外鍵”的連接查詢條件。

(16)執行子查詢。子查詢是指一條SELECT語句作為另一條SELECT語句的一部分。外層的SELECT語句稱為外部查詢,內層的SELECT語句稱為內部查詢(或子查詢)。子查詢分成兩種:嵌套查詢和相關子查詢。子查詢能夠將比較復雜的查詢分解為幾個簡單的查詢。雖然使用子查詢可以產生在表之間使用連接操作符相同的結果,但是,其操作運行速度較連接操作慢。

嵌套查詢的流程是:首先執行內部查詢,查詢出來的數據并不顯示出來,而是傳遞給外層語句,作為該語句的查詢條件來使用。子查詢可以多層次嵌套。

例如查詢每個書名、ID號及擁有該書的最高百分比版權的作者ID,格式為:

SELECT TITLE_ID, AU_ID, ROYALTYPER FROM TITLEAUTHORTA WHERE ROYALTYPER = (SELECT MAX (ROYALTYPER) FROM TITLEAUTHOR WHERE TITLE_ID =TA.TITLE_ID)

(17)查詢的基礎上創建新表。SELECT INTO的作用是在查詢的基礎上創建新表。若建永久表,必須設置“SELECT INTO / BULKCOPY”;若建臨時表,必須在表前設置#(局部臨時表)或##(全局臨時表)。新表的行和列來自查詢結果。例如創建#PHONYTABLE臨時表,該表的數據由每個書名的前40個字符及月平均銷售量組成,格式為:

SELECT TITLE = SUBSTRING (TITLE, 1, 40), MONTHLY = YTD_SALES/12 INTO #PHONYTABLE FROM TITLES

(18)合并數據集。合并數據集(UNION)的作用是,把結果組合成一個結果集來操作兩個或更多的查詢結構。例如:

SELECT 'ANSI', CONVERT (varchar (30), GETDATE (), 102) AS style UNION SELECT 'Japanese', CONVERT (varchar (30), GETDATE (), 111) UNION SELECT 'Europen', CONVERT (varchar (30), GETDATE (), 113)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荆州市| 临沭县| 孟州市| 宁明县| 康乐县| 上杭县| 汤原县| 长丰县| 砀山县| 东明县| 金华市| 怀宁县| 萍乡市| 吉林市| 吴桥县| 香格里拉县| 延长县| 通城县| 无棣县| 凤冈县| 沙洋县| 罗源县| 义马市| 长宁县| 沙湾县| 嘉峪关市| 赣州市| 罗山县| 广东省| 荔波县| 灵宝市| 巨鹿县| 伊宁县| 武陟县| 昌吉市| 铁岭县| 乳山市| 甘德县| 旬阳县| 承德县| 临洮县|