SQL查詢栗子

一.條件查詢函數

  1.模糊查詢-運算符 LIKEspa

     通配符code

        %  (一個或多個字符) blog

        _  (一個字符)ip

        [charlist] (字符列中的任何單一字符)ci

        [^charlist]或[!charlist]  (不在字符列中的任何單一字符)字符串

-- 結果:查詢city的值中以A或L或N開頭的數據 SELECT * FROM Persons WHERE City LIKE '[ALN]%' -- %%默認爲查詢全部

  2.範圍查詢-運算符 BETWEEN 或 INit

SELECT * FROM
smartpromoterecord
where
-- 1到100之間
Amount BETWEEN 1 and 100 
-- 1或100 
-- Amount IN (1,100),若是是字符串串就二者同樣

  3.分組查詢table

     (1)語句group by,它條件是having不是whereast

-- 結果:找第一條ordertype不一樣的數據
SELECT * FROM `smartcashier`
GROUP BY OrderType
-- HAVING amount>188,這句讓上面的結果又少了幾條

    (2)關鍵詞distinct,僅僅列出不一樣的值

-- 和下面那個同樣
SELECT
distinct CustomerID 
FROM
smartownership
WHERE
UserID=66

  4.數據量查詢-函數count()

    count(*),count()是不包括null的數據的數量,count(distinct 參數)是過濾重複值的數量

-- 從結果中看數量(其實通常直接看就好)
SELECT count(*) 
FROM(
SELECT
UserID,CustomerID 
FROM
smartownership
WHERE
UserID=66
GROUP BY
CustomerID   
)
smartownership
SELECT count(*) 
FROM smarttriage
WHERE 
smarttriage.CreateTime>"2019-02-18 00:00:00
-- 看有多少種值,每一個值的數據的數量是
-- 或者用count(distinct cashierid)
SELECT count(*) FROM smartpromoterecord GROUP BY smartpromoterecord.CashierID

   5.數據分頁查詢-語句 LIMIT

SELECT *
FROM smartcashier
-- 查詢到第1條~第30條的數據
-- LIMIT 30
-- 查詢到第31條~第40條的數據
LIMIT 30,10

 

二.關聯查詢

  1.語句 XX JOIN...ON

    內鏈接INNER JOIN...ON,

    左鏈接LEFT JOIN...ON,右鏈接RIGHT JOIN...ON,

    全外鏈接FULL JOIN...ON(沒成功)

-- 好比odertype=3或5沒有detail,因此用左鏈接
SELECT
*
FROM
smartcashier
LEFT JOIN smartcashierdetail ON smartcashier.ID = smartcashierdetail.CashierID
WHERE
smartcashier.CreateTime >= "2019-02-07 00:00:00"
ORDER BY
smartcashier.CreateTime ASC

   2.語句 SELECT

-- 這個沒實踐
select a.title,a.username,b.adddate 
from table a,(select max(adddate) adddate from table where table.title=a.title) b

 

三.子查詢

SELECT 
name,mobile,'性別' 
FROM 
(
SELECT ID,name,Mobile,gender,
CASE gender
    when 1 THEN ''
    WHEN 2 THEN ''
    ELSE '你管我' END AS '性別'
from smartcustomer
ORDER BY ID DESC
LIMIT 3,5
)
-- 下面這行沒有的話就會失敗
AS result

 

 

四.其餘

   1.函數

    (1)計算-sum(),avg(),max(),min()

select sum(Amount)
from smartcashier
where CreateTime>"2019-02-01 00:00:00"

    (2)count()  

    (3)當前時間-now()

   2.運算符

    >,>=,<,<=,<>,=

    AND,OR,IS NULL,IS NOT NULL

    LIKE,BETWEEN,IN

  3.別名-語句 AS

SELECT LastName AS Family, FirstName AS Name
FROM Persons

   4.語句 CASE...WHEN...

SELECT ID,name,Mobile,gender,
CASE gender
    when 1 THEN ''
    WHEN 2 THEN ''
    ELSE '你管我' END AS '性別'
from smartcustomer
ORDER BY ID DESC
LIMIT 3,5
相關文章
相關標籤/搜索