最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

MySQL使用limit進(jìn)行分頁(yè)

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單獨(dú)查詢總條數(shù)
select found_rows total;
  • 第一個(gè)參數(shù)m表示起始行,第二個(gè)參數(shù)表示取多少行;
  • pageIndex表示頁(yè)索引,即查詢第幾頁(yè)的數(shù)據(jù)(從1開始),pageSize表示頁(yè)大小,即一頁(yè)最多顯示多少行記錄;
  • m= (2-1)*10+1=11,n=10,limit 11,10,表示從第11行開始取記錄行(包含第11行),共取10行,也表示查詢第2頁(yè)的數(shù)據(jù),這一頁(yè)最多顯示10行記錄。

Oracle使用rownum進(jìn)行分頁(yè)

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

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

  1. start with: 指定起始節(jié)點(diǎn)的條件
  2. connect by: 指定父子行的條件關(guān)系
  3. prior: 查詢父行的限定符,格式: prior column1 = column2 or column1 = prior column2 and ...
  4. nocycle: 若數(shù)據(jù)表中存在循環(huán)行,那么不添加此關(guān)鍵字會(huì)報(bào)錯(cuò),添加關(guān)鍵字后,便不會(huì)報(bào)錯(cuò),但循環(huán)的兩行只會(huì)顯示其中的第一條
  5. 循環(huán)行: 該行只有一個(gè)子行,而且子行又是該行的祖先行
  6. connect_by_iscycle: 前置條件:在使用了nocycle之后才能使用此關(guān)鍵字,用于表示是否是循環(huán)行,0表示否,1 表示是
  7. connect_by_isleaf: 是否是葉子節(jié)點(diǎn),0表示否,1 表示是
  8. level: level偽列,表示層級(jí),值越小層級(jí)越高,level=1為層級(jí)最高節(jié)點(diǎn)
-- connect by: 指定父子行的條件關(guān)系
-- start with: 指定起始節(jié)點(diǎn)的條件
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ū)級(jí)聯(lián)查詢

-- 二三級(jí)查詢
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'
-- 包含當(dāng)前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( 父級(jí) 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ù)學(xué)';

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

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

源表b可能是一張表結(jié)構(gòu)不同于a的表,有可能是一張構(gòu)建相同表結(jié)構(gòu)的臨時(shí)表,也有可能是我們自己組起來的數(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 = '小明二號(hào)'
when not matched then
  insert (id, student_name, fk_class) values ('7', '小明', '2')

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

相關(guān)文章

  • 簡(jiǎn)單學(xué)習(xí)SQL的各種連接Join

    簡(jiǎn)單學(xué)習(xí)SQL的各種連接Join

    sql語(yǔ)句中join是一種高效的語(yǔ)句,下面小編來帶大家詳細(xì)了解一下它的詳細(xì)情況
    2019-05-05
  • MySQL大表數(shù)據(jù)的分區(qū)與分庫(kù)分表的實(shí)現(xiàn)

    MySQL大表數(shù)據(jù)的分區(qū)與分庫(kù)分表的實(shí)現(xiàn)

    數(shù)據(jù)庫(kù)的分區(qū)和分庫(kù)分表是兩種常用的技術(shù)方案,本文主要介紹了MySQL大表數(shù)據(jù)的分區(qū)與分庫(kù)分表的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • 重新restore了mysql到另一臺(tái)機(jī)器上后mysql 編碼問題報(bào)錯(cuò)

    重新restore了mysql到另一臺(tái)機(jī)器上后mysql 編碼問題報(bào)錯(cuò)

    重新restore了mysql到另一臺(tái)機(jī)器上,今天新寫了一個(gè)app,發(fā)現(xiàn)在admin界面下一添加漢字就會(huì)報(bào)錯(cuò)
    2011-12-12
  • MySQL判斷空值的三種方法

    MySQL判斷空值的三種方法

    在創(chuàng)建表時(shí),可以指定的列是否可以不包含值,如果在一個(gè)列不包含值,則其稱其為空值NULL,NULL一個(gè)特殊值,代表缺失的值或者不適用的情況,表示未知數(shù)據(jù),本文給大家介紹了MySQL判斷空值的三種方法,需要的朋友可以參考下
    2024-03-03
  • windows下mysql 8.0.15 詳細(xì)安裝使用教程

    windows下mysql 8.0.15 詳細(xì)安裝使用教程

    這篇文章主要為大家詳細(xì)介紹了windows下mysql 8.0.15 詳細(xì)安裝使用教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • mysql怎么關(guān)閉sql_mode=ONLY_FULL_GROUP_BY模式

    mysql怎么關(guān)閉sql_mode=ONLY_FULL_GROUP_BY模式

    前段時(shí)間在項(xiàng)目開發(fā)過程中發(fā)現(xiàn)了系統(tǒng)異常,打開日志查看發(fā)現(xiàn)了如下的這個(gè)報(bào)錯(cuò),查找相關(guān)資料終于解決了,這篇文章主要給大家介紹了關(guān)于mysql怎么關(guān)閉sql_mode=ONLY_FULL_GROUP_BY模式的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Mysql實(shí)現(xiàn)簡(jiǎn)易版搜索引擎的示例代碼

    Mysql實(shí)現(xiàn)簡(jiǎn)易版搜索引擎的示例代碼

    前段時(shí)間,因?yàn)轫?xiàng)目需求,需要根據(jù)關(guān)鍵詞搜索聊天記錄,所以本文實(shí)現(xiàn)了Mysql實(shí)現(xiàn)簡(jiǎn)易版搜索引擎,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-08-08
  • mysql索引基數(shù)概念與用法示例

    mysql索引基數(shù)概念與用法示例

    這篇文章主要介紹了mysql索引基數(shù)概念與用法,結(jié)合實(shí)例形式分析了mysql索引基數(shù)的相關(guān)概念、原理、操作命令及相關(guān)使用技巧,需要的朋友可以參考下
    2019-03-03
  • MySQL中字符串索引對(duì)update的影響分析

    MySQL中字符串索引對(duì)update的影響分析

    這篇文章主要介紹了MySQL中字符串索引對(duì)update的影響,結(jié)合實(shí)例形式分析了添加索引操作對(duì)于update語(yǔ)句的性能所造成的影響,需要的朋友可以參考下
    2016-04-04
  • MySQL的安裝以及基本的管理命令和設(shè)置

    MySQL的安裝以及基本的管理命令和設(shè)置

    這篇文章主要介紹了MySQL的安裝以及基本的管理命令和設(shè)置,是搭建MySQL環(huán)境的基礎(chǔ),需要的朋友可以參考下
    2015-11-11

最新評(píng)論

新安县| 光山县| 临安市| 松潘县| 上栗县| 迭部县| 南陵县| 三原县| 江西省| 关岭| 滨海县| 华阴市| 七台河市| 大化| 沁水县| 温州市| 镶黄旗| 东丰县| 义乌市| 杭锦旗| 东宁县| 鄂尔多斯市| 东辽县| 长治市| 江口县| 莱阳市| 扬中市| 延长县| 会昌县| 河西区| 阳春市| 蕲春县| 维西| 宁都县| 清原| 长沙县| 铅山县| 都江堰市| 景德镇市| 策勒县| 交城县|