日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库原理与应用(SQL Server)笔记 第二章 简单数据查询

發布時間:2024/2/28 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库原理与应用(SQL Server)笔记 第二章 简单数据查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、SELECT 子句
    • (一)投影指定的列和投影全部列
    • (二)AS子句修改查詢結構的列標題
      • 例題1
    • (三)TOP謂詞限制結果集中的行數
    • (四)INTO子句將結果插入新表中
      • 例題2
    • (五)DISTINCT關鍵字去除重復行
      • 例題3
  • 二、WHERE 子句
    • (一)定義
    • (二)常用的查詢條件
      • 1、表達式比較
        • 例題4
        • 例題5
      • 2、范圍比較
        • 例題6
      • 3、字符匹配
        • 例題7
      • 4、空值使用
        • 例題8
  • 三、ORDER BY 子句
        • 例題9
  • 四、統計計算
    • (一)聚合函數
      • 1、常用的SQL聚合函數
      • 2、聚合函數的一般參數語法格式
        • 例題10
  • (二)GROUP BY 子句
        • 例題11
  • (三)HAVING 子句
        • 例題12
  • 結語


前言

本次內容,是由T-SQL語句來實現的,我們主要掌握數據庫單表查詢的方法以及實現的語句內容,同時在掌握聚合函數、排序、分組的方法。


一、SELECT 子句

首先來了解SELECT子句的用法,其基本框架如下:

SELECT <列名> /*顯示哪些列*/ FROM <表名> /*從哪個表進行操作,即指定表*/ WHERE <條件> /*根據什么條件在指定表中進行檢索*/

(一)投影指定的列和投影全部列

1、SELECT子句可以投影指定的列也可以投影全部列,當投影多個列時,在各列名中用逗號“,”隔開。

SELECT 列名1,列名2,列名3,... FROM <表名> WHERE <條件>

2、若要投影該表的全部列時,即沒有必要將各列名一一列出,這樣就過于繁瑣,只需在SELECT子句后面加上星號“ * ”,就可以代表投影該表的全部列。

SELECT * /*這里的*號就代表投影了所有列*/ FROM <表名> WHERE <條件>

(二)AS子句修改查詢結構的列標題

當查詢出一個所得到的結果后,我們自己知道所查的是什么,但是給別人就不能立即的理解查詢的結果的含義,這時候就要用到AS子句來改變查詢結果中顯示的列標題,只需在列名后面加上所要改變的列表題名即可,其語法格式如下:

SELECT 列名1 AS '學號',列名2 AS '姓名',列名3 AS '性別',...

注:這里其實AS可以省略,但為了增加可讀性,還是建議不省略。


例題1

例、在數據庫Store中,查詢student表中的studentID、name、sex、age、address,并將其結果中各列的標題分別改為學生的學號、姓名、性別、年齡和住址。

USE Store SELECT studentID AS '學號',name AS '姓名',sex AS '性別',age AS '年齡',address AS '地址' FROM student

(三)TOP謂詞限制結果集中的行數

使用SELECT子句時,有時候需要只列出查詢結果的前幾行數據,就要用到TOP謂詞進行對查詢結果集的限定,即使用TOP n [PERCENT],其語法格式如下:

TOP n [ 數字 ] [ 百分數% ]

例如,若只顯示查詢結果的前2行,即SELECT TOP 2…
若要返回查詢結果的前10%行,即SELECT TOP 10 PERCENT…

(四)INTO子句將結果插入新表中

當要將所查詢的結果插入到一個新表當中,這時候就要用到INTO子句,所創建新表的結構由SELECT子句所選擇的列來決定,且新表中的記錄由SELECT子句的查詢結構決定,若SELECT子句查詢的結果為空,則創建的是一個只要結構但無記錄的空表。INTO子句語法格式如下:

INTO <新表名>

例題2

例、通過數據庫Store,由school表創建class1表,其中包括studentID、name、age、sex。

USE Store SELECT studentID,name,age,sex INTO class1 FROM school

(五)DISTINCT關鍵字去除重復行

當查詢的結果集中有重復行時,可以使用DISTINCT關鍵字來去除重復行。語句格式如下:

SELECT DISTINCT 列名1,列名2,...

例題3

例、通過數據庫Store,查詢school表中的max_grade列,并消除結果中的重復行。

USE Store SELECT DISTINCT max_grade FROM school

二、WHERE 子句

(一)定義

WHERE子句用于指定查詢條件,此語句位于FROM子句后面,其語句格式如下:

WHERE <查詢條件>

(二)常用的查詢條件


現我們從四點來簡單介紹WHERE子句的用法:

1、表達式比較

表達式比較,即使用比較運算符來比較兩個表達式值。


例題4

例、通過數據庫School,查詢class表中的Total points、Classnumber列學生總成績在400分至500分之間且為1班的學生總成績名單。

USE School SELECT Total points,Classnumber FROM class WHERE Total points>=400 AND Total points<=500 AND Classnumber='1'

例題5

例、通過數據庫YGGZ,查詢在1980-1-1到1995-12-31日之間出生的員工名單及出生日期。

sql語句:

USE YGGZ SELECT * FROM Employee WHERE Birthday>='1980-1-1'AND Birthday<='1995-12-31'

語句執行結果:


2、范圍比較

范圍比較用于查找字段在或者不在指定范圍的行。


例題6

例、通過數據庫School,查詢class表中的學生姓名name列為陳小小、李文的成績名單。

USE School SELECT * FROM class WHERE name IN'陳小小','李文'

3、字符匹配

字符匹配使用LIKE謂詞,即查找列值宇匹配串相互匹配的行,匹配串可以是一個完整的字符串,也可以含有通配符,這種查詢相當于模糊查詢,通配符分為兩種:
①%:代表0或者多個字符
②_:代表一個字符


例題7

例1、通過數據庫YGGZ,根據員工表查詢所有姓“張”的員工的信息。

sql語句:

USE YGGZ SELECT * FROM Emplyee WHERE EmpName LIKE '張%'

語句執行結果:

例2、通過數據庫YGGZ,根據員工表查詢姓名中含有“業”的員工的信息。

sql語句:

USE YGGZ SELECT * FROM Employee WHERE EmpName LIKE '%業%'

語句執行結果:


4、空值使用

判斷一個表達式的值是否為空值時,使用 IS NULL 關鍵字,語法格式如下:

<表達式> IS [NOT] NULL

例題8

例、通過數據庫School,查詢class表中的學生地址address為空值的學生信息。

USE School SELECT * FROM class WHERE address IS NULL

三、ORDER BY 子句

當要使查詢的結果有序輸出,需要使用ORDER BY 子句,可以安裝一個或者多個字段的值進行排序,語法格式如下:

ORDER BY <排序表達式(列名、表達式或者正整數)> [ASC] [DESC]

用 ACS 表示按正序排序(即:從小到大排序)—升序排列
用 DESC 表示按倒序排序(即:從大到小排序) —降序排列

例題9

例1、通過數據庫YGGZ,根據員工表查詢1980年之前出生的員工名單,并按照出生日期進行降序排列。

sql語句:

USE YGGZ SELECT * FROM Employee WHERE Birthday<'1980' ORDER BY Birthday DESC

語句執行結果:


四、統計計算

(一)聚合函數

1、常用的SQL聚合函數

AVG( ) :返回集合的平均值。
COUNT( ) :返回集合中的項目數。
MAX( ) :返回集合中的最大值。
MIN( ):返回集合中的最小值。
SUM( ):返回集合中所有或不同值的總和。

2、聚合函數的一般參數語法格式

[ALL| DISTINCT] 表達式)

其中ALL是默認值,DISTINCT表示去掉重復值,表達式即進行聚合函數運算的表達式。


例題10

例1、通過數據庫YGGZ,根據工資表查詢其所有員工的平均工資值。

sql語句:

USE YGGZ SELECT AVG(Wages) AS '平均工資' FROM Salay

語句執行結果:

例2、通過數據庫YGGZ,根據工資表查詢發放日期為2020-5-10的發放工資的員工人數。

sql語句:

USE YGGZ SELECT COUNT(*) AS '人數' FROM Salay WHERE PayDate='2020-5-10'

語句執行結果:


(二)GROUP BY 子句

GROUP BY 子句用于將查詢結果按指定列進行分組。語句格式:

GROUP BY <列名>

例題11

例、通過數據庫YGGZ,根據員工表統計男、女員工各自的人數。

sql語句:

USE YGGZ SELECT COUNT(*) AS '人數' FROM Employee GROUP BY Sex

語句執行結果:


(三)HAVING 子句

HAVING 子句用于對分組后的查詢結果集按指定條件進行進一步篩選,并輸出滿足指定條件的分組。語句格式:

HAVING <篩選條件>

例題12

例、通過數據庫YGGZ,根據工資表查詢平均工資大于6000的員工工號及平均工資。

sql語句:

USE YGGZ SELECT EmpNo AS '員工人數',AVG(Wages) AS '平均工資' FROM Salay GROUP BY EmpNo HAVING AVG(Wages)>6000

語句執行結果:

結語

以上就是本次數據庫原理與應用(SQL Server)教程簡單數據查詢的全部內容,感謝您的閱讀和支持,篇幅較長,若有表述以及代碼中的不當之處,望指出!您的指出和建議能給作者帶來很大的動力!!!

總結

以上是生活随笔為你收集整理的数据库原理与应用(SQL Server)笔记 第二章 简单数据查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。