亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺析Mysql和Oracle分頁的區(qū)別

 更新時間:2022年12月07日 15:06:54   作者:qq_41482600  
Mysql使用limit分頁而Oracle使用rownum分頁,下面通過本文給大家介紹Oracle和Mysql分頁的區(qū)別,需要的的朋友參考下吧

MySQL使用limit進行分頁

select * from stu limit m,n; // m=(pageIndex-1)*pageSize,n=pageSize
-- 返回總條,查詢表添加字段sql_calc_found_rows
select sql_calc_found_rows a.* from AAA a limit m,n
-- found_rows單獨查詢總條數(shù)
select found_rows total;
  • 第一個參數(shù)m表示起始行,第二個參數(shù)表示取多少行;
  • pageIndex表示頁索引,即查詢第幾頁的數(shù)據(jù)(從1開始),pageSize表示頁大小,即一頁最多顯示多少行記錄;
  • m= (2-1)*10+1=11,n=10,limit 11,10,表示從第11行開始取記錄行(包含第11行),共取10行,也表示查詢第2頁的數(shù)據(jù),這一頁最多顯示10行記錄。

Oracle使用rownum進行分頁

select * from(
  select rownum rn,a.*,count(*) over() total from table_name a where rownum <= x 
  -- 結束行,x=pageIndex*pageSize
)
where rn >= y; -- 起始行,y=(pageIndex-1)*pageSize+1
-- 返回總條數(shù)
select count(*) over() total from AAA
  • >= y,<= x表示從第y行(起始行)~x行(結束行) 。
  • rownum只能比較小于,不能比較大于,因為rownum是先查詢后排序的,例如你的條件為rownum>1,當查詢到第一條數(shù)據(jù),rownum為1,則不符合條件。第2、3…類似,一直不符合條件,所以一直沒有返回結果。所以查詢的時候需要設置別名,然后查詢完成之后再通過調用別名進行大于的判斷。

Mysql與Oracle級聯(lián)查詢

  1. start with: 指定起始節(jié)點的條件
  2. connect by: 指定父子行的條件關系
  3. prior: 查詢父行的限定符,格式: prior column1 = column2 or column1 = prior column2 and ...
  4. nocycle: 若數(shù)據(jù)表中存在循環(huán)行,那么不添加此關鍵字會報錯,添加關鍵字后,便不會報錯,但循環(huán)的兩行只會顯示其中的第一條
  5. 循環(huán)行: 該行只有一個子行,而且子行又是該行的祖先行
  6. connect_by_iscycle: 前置條件:在使用了nocycle之后才能使用此關鍵字,用于表示是否是循環(huán)行,0表示否,1 表示是
  7. connect_by_isleaf: 是否是葉子節(jié)點,0表示否,1 表示是
  8. level: level偽列,表示層級,值越小層級越高,level=1為層級最高節(jié)點
-- connect by: 指定父子行的條件關系
-- start with: 指定起始節(jié)點的條件
select c.bc_id,c.bc_name from org_busicorp c 
connect by prior c.bc_pid = c.bc_id
start with c.bc_id = '001';

Mysql省市區(qū)級聯(lián)查詢

-- 二三級查詢
select c1.bc_id,c1.bc_name from org_busicorp c1 where c1.bc_pid = '00'
union
select c2.bc_id,c2.bc_name from org_busicorp c2 
left join org_busicorp c1 on c1.bc_id = c2.bc_pid
where c1.bc_pid = '00'
-- 包含當前id
union
select c3.bc_id,c3.bc_name from org_busicorp c3 where c3.bc_id = '00'

Mysql遞歸函數(shù)

SELECT
	ID.LEVEL,
	DATA.* 
FROM
	(
	SELECT
		@ids AS _ids,
		( SELECT @ids := GROUP_CONCAT( id ) FROM 表名 WHERE FIND_IN_SET( 父級 id字段, @ids ) ) AS cids,
		@l := @l + 1 AS LEVEL 
	FROM
		表名,
		( SELECT @ids := '條件id', @l := 0 ) b 
	WHERE
		@ids IS NOT NULL 
	) ID,
	表名 DATA 
WHERE
	FIND_IN_SET( DATA.id, ID._ids ) 
ORDER BY
	LEVEL,
	id

Mysql與Oracle插入數(shù)據(jù)存在修改不存在新增

Mysql插入數(shù)據(jù)存在修改、不存在新增

insert into `subject`(subjectId,subjectName) 
values('7','離散') 
on duplicate key update subjectName='離散數(shù)學';

Oracle插入數(shù)據(jù)存在修改、不存在新增

merge into 目標表 a
using 源表 b
on(a.條件字段1=b.條件字段1 and a.條件字段2=b.條件字段2 ……)  
when matched then update set a.字段=b.字段 --目標表別稱a和源表別稱b都不要省略
when  not matched then insert (a.字段1,a.字段2……)values(b.字段1,b.字段2……) --目標表別稱a可省略,源表別稱b不可省略

源表b可能是一張表結構不同于a的表,有可能是一張構建相同表結構的臨時表,也有可能是我們自己組起來的數(shù)據(jù)

merge into student a
using (select '7' as id from dual) s
on (a.id = s.id)
when matched then
  update set a.student_name = '小明二號'
when not matched then
  insert (id, student_name, fk_class) values ('7', '小明', '2')

到此這篇關于淺析Mysql和Oracle分頁的區(qū)別的文章就介紹到這了,更多相關Mysql和Oracle分頁內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL完整性約束的定義與實例教程

    MySQL完整性約束的定義與實例教程

    數(shù)據(jù)完整性約束是對關系性模型完整性規(guī)則做某種約束條件,這篇文章主要給大家介紹了關于MySQL完整性約束的相關資料,需要的朋友可以參考下
    2021-05-05
  • MySQL數(shù)據(jù)庫服務器端核心參數(shù)詳解和推薦配置

    MySQL數(shù)據(jù)庫服務器端核心參數(shù)詳解和推薦配置

    MySQL手冊上也有服務器端參數(shù)的解釋,以及參數(shù)值的相關說明信息,現(xiàn)針對我們大家重點需要注意、需要修改或影響性能 的服務器端參數(shù),作其用處的解釋和如何配置參數(shù)值的推薦,此事情拖了不少時間,為方便大家?guī)兔m錯
    2011-12-12
  • MySQL高級查詢之與Group By集合使用介紹

    MySQL高級查詢之與Group By集合使用介紹

    在MySQL中,你可以獲取表達式組合的連接值。你可以使用DISTINCT刪去重復值。假若你希望多結果值進行排序,則應該使用 ORDER BY子句
    2013-08-08
  • MySQL生成連續(xù)的數(shù)字/字符/時間序列的方法

    MySQL生成連續(xù)的數(shù)字/字符/時間序列的方法

    有時候為了生成測試數(shù)據(jù),或者填充查詢結果中的數(shù)據(jù)間隔,需要使用到一個連續(xù)的數(shù)據(jù)序列值,所以,今天我們就來介紹一下如何在 MySQL 中生成連續(xù)的數(shù)字、字符以及時間序列值,需要的朋友可以參考下
    2024-04-04
  • mysql 5.7更改數(shù)據(jù)庫的數(shù)據(jù)存儲位置的解決方法

    mysql 5.7更改數(shù)據(jù)庫的數(shù)據(jù)存儲位置的解決方法

    隨著MySQL數(shù)據(jù)庫存儲的數(shù)據(jù)逐漸變大,已經將原來的存儲數(shù)據(jù)的空間占滿了,導致mysql已經鏈接不上了。所以要給存放的數(shù)據(jù)換個地方,下面小編給大家分享mysql 5.7更改數(shù)據(jù)庫的數(shù)據(jù)存儲位置的解決方法,一起看看吧
    2017-04-04
  • MySQL同步ES(Elasticsearch)的四種常見方案分享

    MySQL同步ES(Elasticsearch)的四種常見方案分享

    MySQL和Elasticsearch(ES)是兩個非常重要的數(shù)據(jù)存儲和搜索技術,MySQL是一種關系型數(shù)據(jù)庫,而ES則是一種文檔型數(shù)據(jù)庫,在許多情況下,我們需要將MySQL中的數(shù)據(jù)同步到ES中,本文將介紹四種常見的MySQL同步ES方案,需要的朋友可以參考下
    2023-07-07
  • 通過存儲過程動態(tài)創(chuàng)建MySQL對象的流程步驟

    通過存儲過程動態(tài)創(chuàng)建MySQL對象的流程步驟

    在當今數(shù)據(jù)驅動的世界中,高效的數(shù)據(jù)庫管理至關重要,本文將展示如何通過存儲過程自動化地創(chuàng)建各種?MySQL?數(shù)據(jù)庫對象,通過這些方法,我們可以快速響應業(yè)務需求,提高數(shù)據(jù)庫管理的靈活性和效率,需要的朋友可以參考下
    2024-10-10
  • mysql5.7.18安裝并修改初始密碼的方法

    mysql5.7.18安裝并修改初始密碼的方法

    這篇文章主要為大家詳細介紹了Mysql5.7安裝并修改初始密碼的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • MySql三種避免重復插入數(shù)據(jù)的方法

    MySql三種避免重復插入數(shù)據(jù)的方法

    這篇文章主要介紹了MySql三種避免重復插入數(shù)據(jù)的方法,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-09-09
  • MySQL實戰(zhàn)之Insert語句的使用心得

    MySQL實戰(zhàn)之Insert語句的使用心得

    這篇文章主要給大家介紹了關于MySQL實戰(zhàn)之Insert語句的使用心得的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10

最新評論