• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      SQL Server中select語句的使用技巧

      2017-12-20 03:42:49韓繼英
      山西電子技術(shù) 2017年6期
      關(guān)鍵詞:商品信息數(shù)據(jù)表語句

      韓繼英

      (山西職業(yè)技術(shù)學(xué)院計算機工程系,山西 太原 030006)

      SQL Server中select語句的使用技巧

      韓繼英

      (山西職業(yè)技術(shù)學(xué)院計算機工程系,山西 太原 030006)

      本文主要以商品信息管理數(shù)據(jù)庫為例,詳細介紹了關(guān)系數(shù)據(jù)庫管理系統(tǒng)中SQL查詢語句—select的一些基本用法和使用技巧,主要包括了單表的基本查詢、關(guān)鍵字輔助查詢、統(tǒng)計查詢以及多表的連接查詢和嵌套查詢。

      select語句;查詢;商品信息管理數(shù)據(jù)庫

      SQL是Structured Query Language 的縮寫,是一種結(jié)構(gòu)化查詢語言,因此,查詢功能是SQL語言的重要組成部分,此項功能非常強大,只要是數(shù)據(jù)庫中存儲的數(shù)據(jù),都可以通過SQL查詢語句將其查詢出來。

      SQL中的查詢功能都是通過select語句實現(xiàn)的,它可以與其它語句相互配合來完成相應(yīng)的查詢功能。可見,select語句應(yīng)用之靈活,功能之強大。在數(shù)據(jù)庫中,select查詢語句不僅能夠完成對單表的基本查詢、條件查詢以及統(tǒng)計查詢,還可以實現(xiàn)多表之間的連接查詢與子查詢等等。下面就結(jié)合商品信息管理數(shù)據(jù)庫來談?wù)動嘘P(guān)select語句的用法。

      1 商品信息管理數(shù)據(jù)庫[1]簡介

      在商品信息管理數(shù)據(jù)庫中包含了商品信息表、客戶信息表、銷售信息表、進貨信息表、商品類型表及庫存信息表。每張數(shù)據(jù)表中所包含的字段信息如下:

      表1 商品信息表

      表2 客戶信息表

      表3 銷售信息表

      表4 進貨信息表

      表5 商品類型表

      表6 庫存信息表

      2 select語句的使用

      2.1 基本查詢

      基本查詢是SQL中最簡單的查詢,語法格式:

      select *|字段列表 from 表名稱

      可以查詢表中一個字段或多個字段信息,當(dāng)需要查詢數(shù)據(jù)表中所有字段信息時select后跟‘*’。當(dāng)對單表進行查詢時,from后跟一個數(shù)據(jù)表名,當(dāng)需要對多表進行查詢時,from后跟多個數(shù)據(jù)表名,表名之間用逗號分隔。

      例1.在庫存信息表中查詢所有庫存商品的庫存編號、商品編號及庫存數(shù)量。

      select * from 庫存信息表

      若只查詢商品編號和庫存數(shù)量,則查詢語句為:

      select 商品編號,庫存數(shù)量 from 庫存信息表

      當(dāng)用戶需要對數(shù)據(jù)表中記錄進行篩選時,可以使用where語句加條件表達式來查詢。

      例2.在銷售信息表中查詢客戶編號為‘20130001’的銷售信息。

      select * from 銷售信息表

      where 客戶編號=’20130001’

      2.2 關(guān)鍵字輔助查詢

      2.2.1 distinct

      為了使用戶瀏覽數(shù)據(jù)方便,有時需要保證查詢結(jié)果中沒有重復(fù)行出現(xiàn),這時,就可以通過distinct關(guān)鍵字完成此項功能。

      例3.在商品信息表中,查詢商品的產(chǎn)地有哪些?

      如果直接用select語句查詢:

      select 產(chǎn)地 from 商品信息表

      則查詢結(jié)果中將會出現(xiàn)所有記錄的產(chǎn)地,有很多重復(fù)值。如果在select語句中添加distinct關(guān)鍵字:

      select distinct 產(chǎn)地 from 商品信息表

      則在查詢結(jié)果中就會去掉重復(fù)的數(shù)據(jù),每個產(chǎn)地只顯示了一次,查詢結(jié)果非常清晰。

      2.2.2 between…and…

      當(dāng)需要查詢某個取值范圍內(nèi)的記錄信息時,可以在where語句中使用between…and…關(guān)鍵字。

      例4.在進貨信息表中查詢進貨數(shù)量在150到200之間的進貨信息。

      select * from 進貨信息表

      where 進貨數(shù)量 between 150 and 200

      若表示不在某一范圍之內(nèi)時,則只需要在between前面加not就可以了。

      2.2.3 like

      查詢過程中,我們經(jīng)常會遇到需要在一定范圍內(nèi)模糊查詢的情況,解決這種問題可以在where后面加like關(guān)鍵字構(gòu)成的表達式作為篩選條件。

      例5.在客戶信息表中查詢姓“李”的客戶信息。

      select * from 客戶信息表

      where 客戶姓名 like ‘李%’

      若需要表示否定時,在like前面加not即可。

      2.3 統(tǒng)計查詢

      2.3.1 order by

      在查詢數(shù)據(jù)的過程中,有時用戶想要的查詢效果并不是原始數(shù)據(jù)表中的記錄順序,此時可以使用order by子句對一個或多個字段進行排序,滿足用戶的需求。

      例6.在庫存信息表中查詢庫存數(shù)量最多的前3條記錄。

      select top 3 * from 庫存信息表

      order by 庫存數(shù)量desc

      其中desc是descending的縮寫,表示降序;也可以用asc即ascending的縮寫,表示升序。

      2.3.2 group by[2]

      Excel中有分類匯總功能,而在SQL中也可以group by子句對查詢結(jié)果實現(xiàn)分類匯總功能。

      例7.在進貨信息表中,對記錄按進貨日期進行分類,統(tǒng)計進貨數(shù)量和進貨金額。

      select 進貨日期,sum(進貨數(shù)量) ‘總進貨數(shù)量’, sum(進貨金額) ‘總進貨金額’ from 進貨信息表

      group by 進貨日期

      可以在group by 后面添加having子句來限定分組查詢的條件。

      2.3.3 compute…by

      compute…by子句放在order by子句的后面,表示先分組排序,再小計。Compute后面可以跟多個聚合函數(shù),by之后的分組字段必須和order by之后的排序字段保持一致。

      例8.在銷售信息表中,按客戶編號分類統(tǒng)計銷售數(shù)量和銷售金額。

      select * from 銷售信息表

      order by 客戶編號

      compute sum(銷售數(shù)量), sum(銷售金額) by 客戶編號

      2.4 高級查詢

      以上介紹的都是查詢同一張數(shù)據(jù)表中的數(shù)據(jù),但用戶在實際操作過程中,往往需要從數(shù)據(jù)庫中的多個數(shù)據(jù)表中查詢信息,因此,就必須用到更為高級的查詢技術(shù)。下面主要介紹高級查詢中的嵌套查詢[3]和多表連接查詢。

      2.4.1 嵌套查詢

      所謂嵌套查詢就是指在一個查詢語句中包含了多個查詢語句,這樣就通過一個個簡單的查詢語句構(gòu)建了相當(dāng)復(fù)雜的查詢過程。

      例9.在商品信息管理數(shù)據(jù)庫中查詢出2012年12月11日購買商品的客戶信息。

      select * from 客戶信息表

      where 客戶編號 in(select 客戶編號 from 銷售信息表

      where 銷售日期=’2012-12-11’)

      上題中要先根據(jù)銷售日期在銷售信息表中找到相應(yīng)的客戶編號,再在客戶信息表中根據(jù)客戶編號找到相應(yīng)的客戶信息。因此,嵌套查詢要先查詢最內(nèi)層括號中的子查詢,然后逐層向外查詢,直到查詢出最終結(jié)果。

      2.4.2 多表連接查詢

      SQL Server 提供了使用連接從多個數(shù)據(jù)表查詢滿足條件的指定字段數(shù)據(jù)信息的方法。連接類型主要有交叉連接、內(nèi)連接和外連接。

      1) 交叉連接查詢

      所謂交叉連接查詢就是將第一個表中的每一行與第二個表中的每一行進行連接,最終查詢結(jié)果的行數(shù)是兩個數(shù)據(jù)表的行數(shù)之積,列數(shù)是兩個數(shù)據(jù)表列數(shù)之和。通常使用cross join 子句完成此項功能。

      例10.對銷售信息表和庫存信息表進行交叉連接查詢。

      select * from 銷售信息表 cross join 庫存信息表

      銷售信息表10行、7列,庫存信息表20行、3列,交叉連接結(jié)果集行數(shù)為200行、列數(shù)為10列。可見查詢結(jié)果復(fù)雜,而且存在很多無意義的數(shù)據(jù)。因此,交叉連接很少使用,為了消除查詢結(jié)果中的數(shù)據(jù)冗余,一般會使用條件連接。

      2) 條件連接

      條件連接即通過where子句完成表的連接。

      例11.在商品信息管理數(shù)據(jù)庫中,查詢出庫存商品的詳細信息,要求顯示商品編號、商品名稱、庫存數(shù)量、商品類型名。

      select 商品編號,商品名稱,庫存數(shù)量,商品類型名

      from 庫存信息表,商品信息表,商品類型表

      where 庫存信息表.商品編號=商品信息表.商品編號

      and 商品信息表.商品類型號=商品類型表.商品類型號

      在條件查詢中,在select子句對字段進行了篩選,where子句對記錄進行了篩選,因此,在最終的查詢結(jié)果中,不存在無意義的數(shù)據(jù)。

      3) 內(nèi)連接查詢

      條件連接查詢還可以用內(nèi)連接查詢的方式來表示。

      上例可以表示為:

      select 商品編號,商品名稱,庫存數(shù)量,商品類型名

      from 庫存信息表

      join商品信息表on商品信息表.商品編號= 庫存信息表.商品編號

      join商品類型表 on 商品類型表.商品類型號=商品信息表.商品類型號

      查詢結(jié)果與條件連接一致。

      4) 外連接[4]

      使用條件連接和內(nèi)連接實現(xiàn)的多表連接中,查詢結(jié)果都是滿足條件的多個數(shù)據(jù)表中的公共記錄。因此會出現(xiàn)查詢信息不完整的情況。為了解決問題,可以在連接查詢中使用以某張數(shù)據(jù)表為主的外連接查詢實現(xiàn)。外連接查詢主要有三種:左外連接查詢、右外連接查詢和全外連接查詢。

      例12.在商品信息管理數(shù)據(jù)庫中,顯示出客戶購買商品的全部信息。要求顯示客戶編號、客戶姓名、商品編號、銷售日期信息。

      select 客戶信息表.客戶編號,客戶姓名,商品編號,銷售日期

      from 客戶信息表 left join 銷售信息表

      on 客戶信息表.客戶編號=銷售信息表.客戶編號

      以上為左連接,查詢結(jié)果以左表客戶信息表為主表,用主表中的每條記錄與右表銷售信息表中的每一個記錄連接組合,結(jié)果中除了滿足條件的記錄被顯示外,不滿足條件的客戶信息也會出現(xiàn)在查詢結(jié)果中,對不滿足條件的記錄系統(tǒng)會為其補充空值,即null。

      左連接用left join來表示,是以左表為主表;而右連接用right join來表示,是以右表為主表;全外連接用 full join來表示,除了顯示滿足條件的所有記錄外,左表、右表中不滿足條件的所有記錄都會被顯示。

      3 結(jié)束語

      本文主要闡述了SQL中常用的查詢功能,只要掌握了select語句的使用方法和技巧,掌握了查詢精髓,就可以幫助我們方便地完成數(shù)據(jù)庫的操作。

      [1] 劉暢,葉賓,毛乃川. SQL Server 2008 數(shù)據(jù)庫項目教程[M].北京:現(xiàn)代教育出版社,2015.

      [2] 何玉潔,梁琦.數(shù)據(jù)庫原理與應(yīng)用[M].第2版.北京:機械工業(yè)出版社,2011.

      [3] 高云,崔艷春.SQL Server 2008數(shù)據(jù)庫技術(shù)實用教程[M].北京:清華大學(xué)出版社,2011.

      [4] 徐人鳳,曾建華. SQL Server 2005 數(shù)據(jù)庫及應(yīng)用[M].北京:高等教育出版社,2014.

      TheUsingSkillofSelectStatementsinSQLServer

      Han Jiying

      (DepartmentofComputerScienceEngineering,ShanxiPolytechnicCollege,TaiyuanShanxi030006,China)

      This paper, mainly takes the database of commodity information management as an example, introduces some basic usage of SQL query select and the use skills in the database management system, including single table basic query, keywords assisted query, statistics query and connection query and nested query for multiple tables, that hopes to bring some help to readers.

      the select statement; query; commodity information management database

      2017-10-13

      韓繼英(1982- ),女,山西盂縣人,講師,碩士,主要研究方向:計算機信息管理。

      1674- 4578(2017)06- 0062- 04

      TP311.13

      A

      猜你喜歡
      商品信息數(shù)據(jù)表語句
      中國商品信息服務(wù)平臺
      商品信息
      軍事文摘(2023年18期)2023-10-31 08:11:40
      重點:語句銜接
      湖北省新冠肺炎疫情數(shù)據(jù)表
      黨員生活(2020年2期)2020-04-17 09:56:30
      基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
      備戰(zhàn)雙十一
      精彩語句
      商品信息標(biāo)準(zhǔn)化助力電子商務(wù)健康發(fā)展
      圖表
      如何搞定語句銜接題
      語文知識(2014年4期)2014-02-28 21:59:52
      嵊泗县| 宜州市| 弥勒县| 叙永县| 临沭县| 长海县| 多伦县| 新密市| 邓州市| 汉源县| 新蔡县| 丰城市| 信宜市| 镇宁| 晴隆县| 乌拉特前旗| 博爱县| 拜城县| 姚安县| 永清县| 四会市| 酒泉市| 电白县| 清水河县| 突泉县| 钦州市| 绍兴市| 河池市| 恭城| 松阳县| 福建省| 偏关县| 合川市| 丰宁| 清苑县| 十堰市| 清涧县| 夏邑县| 太谷县| 南阳市| 枣阳市|