亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

SQL語言快速入門之三  

2019-11-18 22:13:46
字體:
來源:轉載
供稿:網友
我們日常使用SQL語言的工作過程中,使用最多的還是從已經建立好的數據庫中查詢信息。下面,我們就來詳細介紹一下如何使用SQL語言實現各種數據庫查詢操作。

SELECT…FROM

  為方便講解,我們在數據庫中創建名為Store_Information的如下數據表。

Store_Information

Store_Name
Sales
Date

Los Angeles
$1500
Jan-10-2000

San Diego
$250
Jan-11-2000

Los Angeles
$300
Jan-12-2000

Boston
$700
Jan-12-2000


  SQL語言中用于數據庫查詢的最簡單的命令就是SELECT…FROM,語法格式為:

SELECT "column_name" FROM "table_name"

例如,如果我們希望查詢Store_Information數據表中所有的商店名稱時,可以使用如下命令:

SELECT store_name FROM Store_Information

查詢結果顯示為:

Store_Name

Los Angeles

San Diego

Los Angeles

Boston

如果用戶希望一次查詢多個字段,可以將所要查詢的字段名稱依次加入SELECT關鍵字之后,中間用“,”隔開即可。

DISTINCT

  SELECT關鍵字支持用戶查詢數據表中指定字段的所有數據,但是這樣有時就會不可避免的出現重復信息。如果用戶希望只查詢那些具有不同記錄值的信息的話,可以使用SQL語言的DISTINCT關鍵字。語法格式如下:

SELECT DISTINCT "column_name"

FROM "table_name"

例如,我們可以使用以下命令查詢Store_Information數據表具有不同記錄值的所有記錄。

SELECT DISTINCT Store_Name FROM Store_Information

查詢結果如下:

Store_Name

Los Angeles

San Diego

Boston

WHERE

  除了選擇具有不同記錄值的記錄之外,有時我們可能還會需要根據某些條件對數據庫中的數據進行查詢。例如,我們可能需要查詢Store_Information數據表中銷售額超過1000美圓的商店。為此,我們可以使用SQL語言的WHERE關鍵字設定查詢條件。語法格式如下:

SELECT "column_name"

FROM "table_name"

WHERE "condition"

由此,我們可以使用如下命令查詢銷售額超過1000美圓的商店信息:

SELECT store_name FROM Store_Information WHERE Sales > 1000

查詢結果顯示為:

store_name

Los Angeles

運算函數

  現在,我們已經了解到在使用SQL語言進行數據庫查詢操作時可以通過對數值的判斷設定靈活的查詢條件。為了增強對運算的支持能力,SQL提供了眾多實用的運算函數供廣大用戶使用。例如,我們可以直接在SQL命令中調用SUM或AVG這兩個分別用于計算總數和平均數的函數。語法格式如下:

SELECT "function type"("column_name")

FROM "table_name"

如果我們希望查詢Store_Information數據表中所有商店的總銷售額的話,可以使用如下命令:

SELECT SUM(Sales) FROM Store_Information

查詢結果顯示為:

SUM(Sales)

$2750

COUNT

  除了SUM和AVG函數之外,COUNT函數是SQL語言中另一個較為常用的運算函數。COUNT函數可以用來計算數據表中指定字段所包含的記錄數目。語法格式為:

SELECT COUNT("column_name")

FROM "table_name"

例如,如果我們希望查詢Store_Information數據表中的有關商店的記錄條數時,可以使用如下命令:

SELECT COUNT(store_name)

FROM Store_Information

查詢結果顯示為:

Count(store_name)

4

COUNT函數可以和DISTINCT關鍵字一起使用從而可以查詢數據表中指定字段中所有具有不同記錄值的記錄數目。例如,如果我們希望查詢Store_Information數據表中不同商店的數目時,可以使用如下命令:

SELECT COUNT(DISTINCT store_name)

FROM Store_Information

查詢結果顯示為:

Count(DISTINCT store_name)

3

GROUP BY

下面我們來進一步看一下SQL語言中的集合函數。上文中,我們曾使用SUM函數計算所有商店的銷售總額,如果我們希望計算每一家商店各自的總銷售額時該怎么辦呢?要實現這一目的我們需要做兩件事:首先,我們需要查詢商店名稱和銷售額兩個字段;然后,我們使用SQL語言的GROUP BY命令將銷售額按照不同的商店進行分組,從而計算出不同商店的銷售總額。GROUP BY命令的語法格式為:

SELECT "column_name1", SUM("column_name2")

FROM "table_name"

GROUP BY "column_name1"

我們可以使用如下命令實現上述查詢目的:

SELECT store_name, SUM(Sales)

FROM Store_Information

GROUP BY store_name

查詢結果顯示為:

store_name SUM(Sales)

Los Angeles $1800

San Diego $250

Boston $700

小注:

GROUP BY關鍵字一般應用于同時查詢多個字段并對字段進行算術運算的SQL命令中。

HAVING

用戶在使用SQL語言的過程中可能希望解決的另一個問題就是對由sum或其它集合函數運算結果的輸出進行限制。例如,我們可能只希望看到Store_Information數據表中銷售總額超過1500美圓的商店的信息,這時我們就需要使用HAVING從句。語法格式為:

SELECT "column_name1", SUM("column_name2")

FROM "table_name"

GROUP BY "column_name1"

HAVING (arithematic function condition)

(GROUP BY從句可選)

由此,我們可以使用如下命令實現上述查詢目的:

SELECT store_name, SUM(sales)

FROM Store_Information

GROUP BY store_name

HAVING SUM(sales) > 1500

查詢結果顯示為:

store_name SUM(Sales)

Los Angeles $1800

小注:

SQL語言中設定集合函數的查詢條件時使用HAVING從句而不是WHERE從句。通常情況下,HAVING從句被放置在SQL命令的結尾處。

ALIAS

下面,我們重點介紹一下如何在SQL命令中設定別名。SQL語言中一般使用兩種類型的別名,分別為字段別名和數據表別名。

簡單的說,使用字段別名可以幫助我們有效的組織查詢的輸出結果。例如,上文所列舉的多個實例中,當我們計算商店銷售總額時,顯示結果中就會出現SUM(sales)。雖然SUM(sales)并不會對我們理解查詢結果帶來不便,但是如果我們需要在查詢中使用多項復雜運算時,顯示結果就不會這么直觀了。如果這時我們使用字段別名就會極大的提高查詢結果的可讀性。

對于數據表別名,我們可以通過將別名直接放置在FROM從句中數據表名稱的后面設定。數據表別名在我們下面將要講述的連接多個數據表進行查詢的操作中極為有用。

字段和數據表別名的語法格式如下:

SELECT "table_alias"."column_name1" "column_alias"

FROM "table_name" "table_alias"

即別名都直接放置在各自對應名稱的后面,中間用空格分開。

以Store_Information數據表為例,我們可以在GROUP BY一節中所使用的SQL命令中設置如下字段和數據表別名:

SELECT A1.store_name Store, SUM(Sales) "Total Sales"

FROM Store_Information A1

GROUP BY A1.store_name

查詢結果顯示為:

Store Total Sales

Los Angeles $1800

San Diego $250

Boston $700

連接多個數據表

最后,我們來看一下如果使用SQL語言連接多個數據表,實現對多個數據表的查詢。為方便講解,我們在數據庫中分別創建了兩個名為Store_Information和Region的數據表。

Store_Information

Store_Name
Sales
Date

Los Angeles
$1500
Jan-10-2000

San Diego
$250
Jan-11-2000

Los Angeles
$300
Jan-12-2000

Boston
$700
Jan-12-2000


Region

Region_Name
Store_Name

East
Boston

East
New York

West
Los Angeles

West
San Diego


下面,我們就來看一下通過數據表的連接實現按不同區域查詢銷售額。

我們注意到在名為Region的數據表中包含區域和商店兩個字段信息,而在名為Store_Information的數據表中則包含每一家商店的銷售信息。因此,為了得到按區域劃分的銷售信息,我們需要將兩個不同數據表的信息結合在一起進行查詢。通過對上述兩個數據表的分析,我們發現每個數據表中都包含一個名為Store_Name的字段,因此,我們可以使用如下命令實現查詢目的:

SELECT A1.region_name REGION, SUM(A2.Sales) SALES

FROM Geography A1, Store_Information A2

WHERE A1.store_name = A2.store_name

GROUP BY A1.region_name

查詢結果顯示為:

REGION SALES

East $700

West $2050

說明:

上述查詢命令的前兩行用于指定所要查詢的目標字段,分別為Region數據表中的Region_Name字段和Store_Information數據表中Sales字段的記錄值總數。這里,我們設定兩個字段的別名分別為REGION和SALES,兩個數據表的別名分別為A1和A2。如果我們只使用字段別名而不設定數據表別名的話,上述SQL命令的第一行就變成 如下形式:

SELECT Region.Region_Name REGION, SUM(Store_Information.Sales) SALES

由此我們可以看出有效的使用數據表別名,可以極大的簡化對多個數據表進行操作的SQL命令。

上述查詢命令的第3行為WHERE從句,正是該從句設定了兩個數據表的連接條件。因為我們希望確保Region數據表中的Store_Name字段能夠與Store_Information數據表中的同名字段相對應,所以我們規定兩個字段的記錄值應當相等。在連接多個數據表時,一定要準確設定數據表的連接條件,如果WHERE從句設定不正確,則可能導致查詢結果中出現眾多不相關的數據



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品夜夜夜夜夜久久| 亚洲综合小说区| 亚洲人成绝费网站色www| 久久精品国产综合| 欧美风情在线观看| 777777777亚洲妇女| 欧美国产第一页| 国产精品丝袜久久久久久高清| 亚洲免费视频在线观看| 亚洲最新视频在线| 韩国三级日本三级少妇99| 久久国产精品久久国产精品| 久久成人免费视频| 欧美日韩亚洲一区二| 日韩欧美中文字幕在线观看| 国产成人亚洲综合青青| 久久久久国产视频| 亚洲网址你懂得| 91香蕉嫩草神马影院在线观看| 国产91精品视频在线观看| 少妇久久久久久| 亚洲白拍色综合图区| 国产精品a久久久久久| 亚洲欧洲自拍偷拍| 秋霞成人午夜鲁丝一区二区三区| 中文字幕少妇一区二区三区| 亚洲mm色国产网站| 国产91网红主播在线观看| 亚洲二区在线播放视频| 日韩在线欧美在线国产在线| 美日韩精品视频免费看| 亚洲成人性视频| 精品久久久久久中文字幕| 亚洲欧美中文字幕在线一区| 欧美伊久线香蕉线新在线| 久久久精品免费视频| 成人福利视频网| 九九视频这里只有精品| 欧美夫妻性生活xx| 九九久久国产精品| 日韩中文视频免费在线观看| 成人免费看黄网站| 国产欧美日韩精品专区| 久久97精品久久久久久久不卡| 国产精品久久久久久久久久久久久| 日韩欧美a级成人黄色| 日日骚av一区| 国产经典一区二区| 亚洲欧美国产精品专区久久| 国产精品免费一区二区三区都可以| 欧美激情久久久久| 亚洲免费视频在线观看| 欧美大片第1页| 久久久久久亚洲精品中文字幕| 欧美老妇交乱视频| 中文字幕日韩专区| 68精品国产免费久久久久久婷婷| 欧美激情高清视频| 一区二区三区视频免费在线观看| 亚洲字幕在线观看| 97视频在线观看播放| 在线播放日韩精品| 亚洲精品国产精品国自产观看浪潮| 上原亚衣av一区二区三区| 欧美在线观看网站| 亚洲免费伊人电影在线观看av| 啊v视频在线一区二区三区| 久久这里只有精品视频首页| 日韩a**站在线观看| 成人午夜激情免费视频| 色妞久久福利网| 国模精品一区二区三区色天香| 成人免费网视频| 国产精品久久久久高潮| 成人精品一区二区三区电影黑人| 国产精品免费网站| 亚洲性夜色噜噜噜7777| 一区二区三区回区在观看免费视频| 日韩电影免费在线观看| 国产福利精品在线| 日本韩国在线不卡| 国产精品久久久av久久久| 久久精品成人欧美大片古装| 国产精品观看在线亚洲人成网| 国产午夜精品视频| 亚洲欧美日韩高清| 久久精品成人欧美大片古装| 在线电影av不卡网址| 欧美最顶级丰满的aⅴ艳星| 91精品国产综合久久久久久蜜臀| 中文综合在线观看| 欧美成人午夜免费视在线看片| 97在线视频观看| 色综合久久中文字幕综合网小说| 欧美性黄网官网| 国产精品18久久久久久麻辣| 最近的2019中文字幕免费一页| 欧美日韩亚洲精品内裤| 17婷婷久久www| 久久精品电影网| 久久综合88中文色鬼| 欧美午夜无遮挡| 一道本无吗dⅴd在线播放一区| 日本精品久久久久久久| 国产午夜精品理论片a级探花| 日韩午夜在线视频| 色婷婷成人综合| 亚洲天堂第一页| 神马久久桃色视频| 91在线视频九色| 精品久久久久久亚洲精品| 国产成人精品在线| 91亚洲精品久久久久久久久久久久| 日本老师69xxx| 欧美中文字幕第一页| 精品国产区一区二区三区在线观看| 久久影视免费观看| 尤物九九久久国产精品的特点| 亚洲人成在线观| 日韩一中文字幕| 中文字幕一区二区精品| 亚洲欧美激情视频| 国产情人节一区| 精品在线观看国产| 91精品国产精品| 欧美一级淫片播放口| 国产欧美日韩中文字幕在线| 国产999精品视频| 欧美另类极品videosbestfree| 91丝袜美腿美女视频网站| 亚洲国产欧美精品| 亚洲欧美另类自拍| 欧美成人免费观看| 国内成人精品视频| 日韩福利在线播放| 97香蕉久久夜色精品国产| 中文字幕在线日韩| 欧美高清第一页| 92福利视频午夜1000合集在线观看| 国产精品偷伦视频免费观看国产| 成人97在线观看视频| 色偷偷偷综合中文字幕;dd| 成人激情在线观看| 日本久久亚洲电影| 国产精品女人久久久久久| 国产精品久久久久av| 国产综合福利在线| 欧美电影第一页| 日韩高清有码在线| 国产精品成人一区二区三区吃奶| 久久精彩免费视频| 亚洲乱码国产乱码精品精| 欧美精品性视频| 性色av一区二区三区在线观看| 中文字幕欧美日韩va免费视频| 国产精品久久久久久网站| 久久精品国产69国产精品亚洲| 国产精品免费电影| 亚洲精品97久久| 国产丝袜一区二区三区免费视频| 一区二区欧美久久| 91精品国产乱码久久久久久久久| 亚洲欧洲在线观看| 欧美视频一二三|