數據庫:SQL高級查詢,分頁查詢

分頁查詢:html

通常的分頁查詢使用簡單的 limit 子句就能夠實現。java

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

LIMIT 子句能夠被用於指定 SELECT 語句返回的記錄數。需注意如下幾點:sql

  • 第一個參數指定第一個返回記錄行的偏移量
  • 第二個參數指定返回記錄行的最大數目
  • 若是隻給定一個參數:它表示返回最大的記錄行數目
  • 第二個參數爲 -1 表示檢索從某一個偏移量到記錄集的結束全部的記錄行
  • 初始記錄行的偏移量是 0(而不是 1)

TOP():函數

TOP 子句用於規定要返回的記錄的數目。
對於擁有數千條記錄的大型表來講,TOP 子句是很是有用的。學習

語法:ui

SELECT TOP number|percent column_name(s)
FROM table_name

LIKE:code

通配符:htm

% 替代一個或多個字符
_ 僅替代一個字符
[charlist] 字符列中的任何單一字符
1或者[!charlist] 不在字符列中的任何單一字符

LIKE 操做符用於在 WHERE 子句中搜索列中的指定模式。get

語法:it

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

子查詢

外部查詢爲父查詢,內部查詢爲子查詢。

1.做爲查詢條件使用 where

--1.子查詢做爲條件
        --查詢學號在王五前邊的同窗
        select * from StuInfo where stuid < (select stuid from StuInfo where stuname='王五')

2.做爲臨時表使用 from

--子查詢3:stuinfo、StuMarks都做爲子查詢
        select stuname,subject,score from 
        (select * from stuinfo where stuname = '李四') s1,
        (select * from stumarks where score > 80) s2
        where s1.stuid = s2.stuid

3.做爲列使用 select

--3.子查詢做爲列使用
        --查詢全部學員html成績,沒有成績以null顯示
        select s.*,
        (select score from StuMarks where subject='html' and  s.stuid=StuMarks.stuid) as '成績' 
        from StuInfo s

在條件查詢中使用 '<' , '>' , '='後+查詢句只能查一列。

in和not in 一般在where子句中使用,在in和not in後接的子查詢中,能夠有多個值出現,但必須只能有一列

--in 符合in後面全部條件都可以查詢出來,一系列肯定的值或表中的某一列
        --查詢學號爲1和3的學員信息
        --select * from stuinfo where stuid = 1 or stuid = 3
        select * from stuinfo where stuid in (1,3)
--not..in 對in取反,不符合in後面全部條件都可以查詢出來
        --查詢學號除了1和3的之外的學員信息
        select * from stuinfo where stuid not in (1,3)

使用SOME,ANY,ALL進行子查詢:

1.在SQL查詢中,SOME,ANY,ALL後必須跟子查詢。

2.在SQL查詢中,SOME,ANY,ALL的做用是同樣的,表示其中的任何一項。ALL則表示其中的全部的項。

--SOME、 ANY、 ALL後必須跟子查詢
--SOME 和 ANY 的做用是同樣的,表示其中的任何一項 
select * from StuInfo where stuid > any(select stuid from StuInfo where stuid>1)
select * from StuInfo where stuid > some(select stuid from StuInfo where stuid>1)

--all表示其中的全部的項
select * from StuInfo where stuid > all(select stuid from StuInfo where stuid>1)

compute 聚合技術

1.使用了comput進行總計算後的查詢獲得了兩個結果集,第一個結果集返回查詢前面的查詢明細,後一個結果返回彙總的結果,咱們也能夠在compute子句中添加多個彙總計算表達式。

COMPUT子句須要下列信息:

①可選BY關鍵字。它基於每一列計算指定的行聚合。

②行聚合函數名稱。包括SUM,AVG,MIN,MAX或COUNT。

③要對其執行行聚合函數的列。

例:

--對信息進行查詢並統計
    select * from StuMarks  where subject='html' 
    compute max(score),min(score),avg(score)
    --對信息進行分組查詢並統計
    select * from StuMarks order by stuid desc
    compute avg(score),sum(score) by stuid

謝謝你們閱讀,若是想要知道更多java基礎知識,能夠戳我一塊兒交流學習!


  1. charlist
相關文章
相關標籤/搜索