程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> sql分頁查詢幾種寫法

sql分頁查詢幾種寫法

編輯:MSSQL

sql分頁查詢幾種寫法。本站提示廣大學習愛好者:(sql分頁查詢幾種寫法)文章只能為提供參考,不一定能成為您想要的結果。以下是sql分頁查詢幾種寫法正文


1、簡略查詢

SQL(Structured Query Language) 構造化查詢說話,是一種數據庫查詢和法式設計說話,用於存取數據和查詢、更新和治理關系數據庫體系。ANSI(美國國度尺度學會)宣稱,SQL是關系數據庫治理體系的尺度說話。
Oracle數據庫之所以成長的很好,重要也是由於Oracle是全球最早采取SQL語句的數據庫產物。
SQL功效壯大,歸納綜合起來,它可以分紅以下幾組:

DML(Data Manipulation Language) 數據操作說話,用於檢索或許修正數據
DDL(Data Definition Language) 數據界說說話,用於界說數據的構造,創立、修正或許刪除數據庫對象
DCL(Data Control Language) 數據掌握說話,用於界說數據庫的權限

簡略查詢指的是查詢出一張表中的一切的數據,簡略查詢的語法以下:
SELECT [DISTINCT] * | 字段 [別號] [,字段 [別號]] FROM 表稱號 [別號]; 

典范:

SELECT * FROM dept;--查詢dept表的全體記載  
SELECT empno, ename, sal FROM emp;--查詢出每一個雇員的編號、姓名、根本工資  
SELECT job FROM emp;--查詢出每一個雇員的職位。這個時刻發明查詢出來的job內容中湧現了反復的數據。  
SELECT DISTINCT job FROM emp;--應用DISTINCT清除失落一切的反復內容。然則關於反復數據,指的是一行中的每一個列的記載都反復,才叫反復數據。  
SELECT DISTINCT ename, job FROM emp;--查詢出每一個雇員的姓名、職位  
SELECT ename, job, sal*12 FROM emp;--應用各個數學的四則運算符,請求顯示每個雇員的姓名、職位、根本年薪  
SELECT ename, job, sal*12 income FROM emp;--為顯示的查詢列起一個體名,關於別號,建議不要應用中文,只需是法式的開辟,都要躲避中文。  
SELECT ename, job, (sal+300)*12 income FROM emp;--因為公司的福利很高,每一個月都有200元的飯食補貼和100元車資補助,這個時刻的年薪  
SELECT ename, job, (sal+300)*12+sal income FROM emp;--公司每一年的歲尾都邑多發一個月的根本工資  
SELECT empno || ',' || ename FROM emp;--在簡略查詢中也能夠應用“||”銜接查詢的字段。  
SELECT '雇員編號是:' || empno || '的雇員姓名是:' || ename || ',根本工資是:' || sal || ',職位是:' || job || '! ' 雇員信息 FROM emp;--請求如今的數據庫依照以下的格局顯示:“雇員編號是:7369的雇員姓名是:SMITH,根本工資是:800,職位是:CLERK!” 

因為“,”屬於原樣輸入的字符串,所以必需應用“ ' ”括起來,即:在SQL語句當中,“ ' ”表現的是字符串。
必定要記住,別號上的內容不要應用“ ' ”括起來,而只要在SELECT子句當中湧現的內容應用“ ' ”。

2、限制查詢

在之前的簡略查詢中,是將一切的記載停止顯示,然則如今可以對顯示的記載停止過濾的操作,而這就屬於限制查詢的任務了,限制查詢就是在之前語法的基本上增長了一個WHERE子句,用於指定限制前提,此時語法以下:
SELECT [DISTINCT] * | 字段 [別號] [,字段 [別號]]  
FROM 表稱號 [別號]  
[WHERE 前提(S)]; 
在WHERE子句以後可以增長多個前提,最多見的前提就是根本的關系運算:>、>=、< 、<=、!=(<>)、BETWEEN、AND、LIKE、IN、IS NULL、AND、OR、NOT;

1、關系運算

SELECT * FROM emp WHERE sal>1500;--請求查詢出根本工資高於1500的一切雇員信息  
SELECT * FROM emp WHERE job='clerk';--查詢出一切職位是做事員的雇員信息  
SELECT * FROM emp WHERE job='CLERK';--下面沒有前往響應的查詢成果,重要緣由是在Oracle數據庫中,一切的數據都是辨別年夜小寫的  
SELECT * FROM emp WHERE sal>=1500 AND sal<=3000;--查詢工資在1500~3000之間的全體雇員信息,多個前提之間可使用AND或OR停止銜接操作  
SELECT * FROM emp WHERE job='CLERK' OR job='SALESMAN';--查詢出職位是做事員,或許是發賣人員的全體信息  
SELECT * FROM emp WHERE (job='CLERK' OR job='SALESMAN') AND sal>1200;--查詢出職位是做事員,或許是發賣人員的全體信息,而且請求這些雇員的工資年夜於1200  
SELECT * FROM emp WHERE job<>'CLERK';--查詢一切不是做事員的雇員信息  
SELECT * FROM emp WHERE job!='CLERK';  
SELECT * FROM emp WHERE NOT job='CLERK'; 

2、規模斷定:BETWEEN…AND…

“BETWEEN 最小值 AND 最年夜值”,表現的是一個規模的斷定進程。“BETWEEN…AND…”操作符不但只是針關於數字有效,關於日期也異樣有效。
SELECT * FROM emp WHERE sal BETWEEN 1500 AND 3000;--請求查詢出根本工資在1500~3000的雇員信息  
SELECT * FROM emp WHERE NOT sal BETWEEN 1500 AND 3000;--如今也能夠對BETWEEN…AND…操作求反  
SELECT * FROM emp WHERE hiredate BETWEEN '01-1月-1981' AND '31-12月-81';--請求查詢出在時光規模內的全體雇員信息 

3、斷定能否為空:IS (NOT) NULL

應用此語法可以斷定某一個字段上的內容能否是“null”,然則null和數字0和空字符串是兩個概念。
SELECT * FROM emp WHERE comm IS NOT NULL;--查詢出一切支付獎金的雇員信息  
SELECT * FROM emp WHERE NOT comm IS NULL;  
SELECT * FROM emp WHERE comm IS NULL;--查詢出一切不支付獎金的雇員 

4、指定規模的斷定:IN操作符

IN操作符表現的是指定一個查詢的規模

SELECT * FROM emp WHERE empno=7369 OR empno=7566 OR empno=7799;--應用OR操作查詢出雇員編號是7369、7566、7799的雇員信息  
SELECT * FROM emp WHERE empno IN (7369,7566,7799);--應用IN操作查詢出雇員編號是7369、7566、7799的雇員信息  
SELECT * FROM emp WHERE empno NOT IN (7369,7566,7799);應用NOT IN操作查詢出雇員編號不是7369、7566、7799的雇員信息  
SELECT * FROM emp WHERE empno IN(7369,7566,null);--應用了IN操作符,查詢的規模當中存在了null,不影響查詢;  
SELECT * FROM emp WHERE empno NOT IN(7369,7566,null);--應用的是NOT IN操作符,假如查詢規模當中有了null則表現的就是查詢全體數據。 

5、隱約查詢:LIKE子句
LIKE子句的功效是供給了隱約查找的操作,例如:某些法式上湧現的搜刮操作,都屬於LIKE子句的完成,然則必需提示的,搜刮引擎上的查詢可不是LIKE。然則要想應用LIKE子句則必需熟悉兩個婚配符號:
婚配單個字符:_; -> 1個
婚配隨意率性多個字符:%; -> 0個、1個、多個

SELECT * FROM emp WHERE ename LIKE 'A%';--請求查詢雇員姓名中以字母A開首的全體雇員信息  
SELECT * FROM emp WHERE ename LIKE '_A%';--請求查詢出雇員姓名中第二個字母是A的全體雇員信息  
SELECT * FROM emp WHERE ename LIKE '%A%';--請求查詢出雇員姓名中帶有字母A的雇員  
SELECT * FROM emp WHERE ename NOT LIKE '%A%';--應用NOT操作,對操作停止求反的功效  
SELECT * FROM emp WHERE ename LIKE '%1%' OR hiredate LIKE '%1%' OR sal LIKE '%1%';--關於LIKE子句,可以在隨意率性的數據上表現:

在開辟當中,數據庫的隱約查詢確定應用LIKE子句,然則在應用LIKE子句的時刻有一個最年夜的留意點:假如在隱約查詢上不設置任何的查詢症結字的話('%%')則表現查詢全體記載:
SELECT * FROM emp WHERE ename LIKE '%%' OR hiredate LIKE '%%' OR sal LIKE '%%'; 

3、數據的排序

當數據前往查詢成果以後,一切的數據默許情形下是依照雇員編號排序的,固然,如今也能夠應用”ORDER BY”子句指定所須要的排序的操作列,而這個時刻的SQL語法以下:
SELECT [DISTINCT] * | 字段 [別號] [,字段 [別號]]  
FROM 表稱號 [別號]  
[WHERE 前提(S)]  
[ORDER BY 字段 [ASC|DESC] [,字段 [ASC|DESC],…]]; 

“ORDER BY”子句是寫在一切的SQL語句最初的內容,並且關於排序有以下幾點解釋:
排序的時刻可以指定多個排序的字段;
排序的方法有兩種:1、升序(ASC):默許,不寫也是升序;2、降序(DESC):用戶須要指定,由年夜到小排序;

SELECT * FROM emp ORDER BY sal;--查詢一切的雇員的信息,請求依照工資排序  
SELECT * FROM emp ORDER BY sal ASC;  
SELECT * FROM emp ORDER BY sal DESC;--停止降序分列  
SELECT * FROM emp ORDER BY sal DESC, hiredate ASC;--查詢出一切的雇員信息,依照工資由高到低排序,假如工資雷同,則依照雇傭日期由早到晚排序 

關於排序操作,普通只在須要的處所上應用,並且必定要記住的是,ORDER BY 子句是寫在一切的SQL語句的最初的部門。

geByRownumber]'pagetest','*',50,20,'','order by id asc',@count output exec [dbo].[spSqlPageByMaxTop]'pagetest','*',50,20,'','order by id asc',@count output select @count

以上就是本文針對sql分頁查詢幾種寫法的全體內容,願望年夜家愛好。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved