SQL 基礎知識-查詢基礎

一、SELECT 語句基礎

1.查詢指定列:SELECT 關鍵字

<code>--語法:
--SELECT , ... -- 希望查詢列的名稱
--FROM -- 指定選取數據的表/<code>
<code>-- 從 Shohin 中取 3 列
SELECT shohin_id, shohin_mei, hanbai_tanka  -- 列的順序可以任意指定,逗號(“,”)分隔,查詢結果的順序和 SELECT 子句中的順序相同
FROM Shohin;/<code>
SQL 基礎知識-查詢基礎

  2.查詢表的所有列:星號(*)

<code>--語法
--SELECT * -- 星號(*)代表所有列
--FROM ;/<code>
SQL 基礎知識-查詢基礎

  【備註】使用星號(*)的話就無法設定列的顯示順序

  3.為列設定別名:AS 關鍵字

<code>SELECT shohin_id AS Id, shohin_mei AS Name, shiire_tanka Price
FROM Shohin; -- 不用 AS 關鍵字也可以/<code>
SQL 基礎知識-查詢基礎

<code>SELECT shohin_id AS "編號", shohin_mei AS '名稱', shiire_tanka '價格'
FROM Shohin; -- 設定漢語別名:加上雙引號(")或單引號(')/<code>
SQL 基礎知識-查詢基礎

  4.常數的查詢

<code>SELECT '產品' AS Product,            -- '產品':字符串常數
38 AS Price, -- 38:數字常數
'2016-09-30' AS '生產日期' -- '2009-02-24':日期常數/<code>
SQL 基礎知識-查詢基礎

  【備註】字符串和日期使用單引號(')。

  5.從結果中刪除重複行:DISTINCT

SQL 基礎知識-查詢基礎

原圖

  (1)

<code>SELECT DISTINCT shohin_bunrui FROM dbo.Shohin;  -/<code>
SQL 基礎知識-查詢基礎

使用 DISTINCT 移除 shohin_bunrui 列中的重複數據

  (2)DISTINCT 對 NULL 類型的處理:存在多條 NULL 值的行時,會結合為一條 NULL 數據。

<code>SELECT DISTINCT shiire_tanka FROM dbo.Shohin;/<code>
SQL 基礎知識-查詢基礎

  (3)多列之前使用 DISTINCT

<code>SELECT DISTINCT shohin_bunrui, torokubi
FROM dbo.Shohin/<code>
SQL 基礎知識-查詢基礎

  DISTINCT 會將多個列的數據進行組合,將重複的數據結合為一條。

  【注意】DISTINCT 關鍵字只能用在第一個列名之前。

  6.篩選記錄:WHERE

  WHERE 子句中可以指定“某一列的值和這個字符串相等”或者“某一列的值大於這個數字”等條件,找出只符合該條件的記錄。

<code>--語法: 

--SELECT , ...
--FROM
--WHERE ;/<code>
SQL 基礎知識-查詢基礎

<code>SELECT shohin_id, shohin_mei, shohin_bunrui
FROM dbo.Shohin
WHERE shohin_bunrui = '衣服';  -- shohin_bunrui = '衣服':為條件表達式/<code>
SQL 基礎知識-查詢基礎

選取行之後,再輸出列

  【備註】WHERE 子句:首先通過該子句查詢出符合指定條件的記錄,再選取出 SELECT 語句指定的列。

  【注意】SQL 子句的書寫格式是固定的,不能隨意更改。如 WHERE 子句必須緊跟在 FROM 子句後。

  7.註釋的寫法

  註釋對於 SQL 的執行沒有任何影響。

<code>--  單行註釋

/*
多行註釋
*//<code>

二、算術運算符和比較運算符

  1.算術運算符

<code>SELECT shohin_mei, hanbai_tanka, hanbai_tanka * 2 AS 'hanbai_tanka_x2'
FROM dbo.Shohin;/<code>
SQL 基礎知識-查詢基礎

圖 商品單價的兩倍

四則算術運算符含義運算符加法+減法-乘法*除法/

  

  括號(“(”“)”)可以提高表達式的優先級。

  2.需要注意 NULL

<code>SELECT 5 + NULL, 10 - NULL, 1 * NULL, 4 / NULL, NULL / 9;/<code>
SQL 基礎知識-查詢基礎

  【備註】所有包含 NULL 的計算,結果肯定為 NULL。

  3.比較運算符

比較運算符運算符含義=相等<>不等>=大於等於>大於<=小於等於

<code>--示例1:
SELECT shohin_mei, shohin_bunrui
FROM dbo.Shohin
WHERE hanbai_tanka = 500;/<code>
SQL 基礎知識-查詢基礎

選取 hanbai_tanka 列為 500 的記錄

<code>--示例2
SELECT shohin_mei, shohin_bunrui
FROM dbo.Shohin
WHERE hanbai_tanka <> 500;/<code>
<code>--示例3
SELECT shohin_mei, shohin_bunrui
FROM dbo.Shohin
WHERE hanbai_tanka != 500;/<code>
SQL 基礎知識-查詢基礎

選取 hanbai_tanka 列的值不是 500 的記錄

<code>--示例4
SELECT *
FROM dbo.Shohin
WHERE hanbai_tanka - shiire_tanka >= 500;/<code>
SQL 基礎知識-查詢基礎

  

  3.對字符串使用不等號時的注意事項

SQL 基礎知識-查詢基礎

創建表

SQL 基礎知識-查詢基礎

原圖

  

<code>--示例:選取出大於'2'的數據的 SELECT 語句
SELECT *
FROM dbo.Chars
WHERE chr > '2';/<code>
SQL 基礎知識-查詢基礎

  【注意】chr 為字符串類型,對字符串類型的數據進行大小比較時,跟數字不一樣。

  

  4.不能對 NULL 使用比較運算符

SQL 基礎知識-查詢基礎

<code>--示例1:
SELECT shohin_mei, shiire_tanka
FROM dbo.Shohin
WHERE shiire_tanka = NULL; --錯誤的 SELECT 語句

--示例2
SELECT shohin_mei, shiire_tanka

FROM dbo.Shohin
WHERE shiire_tanka IS NULL; --選取 NULL 的記錄

--示例3
SELECT shohin_mei, shiire_tanka
FROM dbo.Shohin
WHERE shiire_tanka IS NOT NULL; --選取不為 NULL 的記錄/<code>
SQL 基礎知識-查詢基礎

SQL 基礎知識-查詢基礎

  【注意】希望選取 NULL 記錄時,使用 IS NULL;希望選取不是 NULL 的記錄時,使用 IS NOT NULL。

三、邏輯運算符

  1.NOT 運算符:取反

<code>--示例:
SELECT *
FROM dbo.Shohin
WHERE NOT hanbai_tanka >= 1000;  --等價於 hanbai_tanka < 1000/<code>
SQL 基礎知識-查詢基礎

取 hanbai_tanka 列不大於 1000 的記錄(hanbai_tanka < 1000)

  2.AND 運算符和 OR 運算符

  AND 運算符:並且,在兩側的查詢條件都成立時整個查詢條件才成立。

  OR 運算符:在兩側的查詢條件就算只有一個成立時整個查詢條件都成立。

<code>--示例
SELECT shohin_mei, shiire_tanka
FROM dbo.Shohin
WHERE shohin_bunrui = '廚房用具'
AND hanbai_tanka >= 3000;/<code>
SQL 基礎知識-查詢基礎

<code>SELECT shohin_mei, shiire_tanka
FROM dbo.Shohin
WHERE shohin_bunrui = '廚房用具'
OR hanbai_tanka >= 3000;/<code>
SQL 基礎知識-查詢基礎

  【備註】多個查詢條件進行組合時,需要使用 AND 運算符或者 OR 運算符。

  2.通過括號進行強化

SQL 基礎知識-查詢基礎

<code>--示例1
SELECT shohin_mei,
shohin_bunrui,
torokubi
FROM dbo.Shohin
WHERE shohin_bunrui = '辦公用品'
AND torokubi = '2009-09-11'
OR torokubi = '2009-09-20';/<code>
SQL 基礎知識-查詢基礎

SQL 基礎知識-查詢基礎

SQL 基礎知識-查詢基礎

<code>--示例2
SELECT shohin_mei,
shohin_bunrui,
torokubi
FROM dbo.Shohin
WHERE shohin_bunrui = '辦公用品'
AND (torokubi = '2009-09-11'
OR torokubi = '2009-09-20');/<code>
SQL 基礎知識-查詢基礎

SQL 基礎知識-查詢基礎

  【備註】AND 運算優先於 OR 運算,想要優先執行 OR 運算時可以使用括號。


分享到:


相關文章: