目录
原始的表 (用在例子中的):
TOP 子句
SQL Server 的语法:
SQL TOP 实例
结果:
SQL TOP PERCENT 实例
第一种方法:
MySQL 语法
Oracle 语法
oracle中的rownum 只能用以上符号(<、<=、!=)。
例子
首页 数据库 mysql教程 oracle、mysq、sqlserver的区别

oracle、mysq、sqlserver的区别

Jun 07, 2016 pm 03:08 PM
oracle sqlserver 区别

一、oracle、mysq、sqlserver取结果中几行记录的 区别 http://www.w3school.com.cn/sql/sql_top.asp 原始的表 (用在例子中的): Persons 表: Id LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3

一、oracle、mysq、sqlserver取结果中几行记录的区别

http://www.w3school.com.cn/sql/sql_top.asp

 

原始的表 (用在例子中的):

Persons 表:

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
4 Obama Barack Pennsylvania Avenue Washington

TOP 子句

TOP 子句用于规定要返回的记录的数目。

对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。

注释:并非所有的数据库系统都支持 TOP 子句。

SQL Server 的语法:

SELECT TOP number|percent column_name(s)FROM table_name<p></p><h2 id="SQL-TOP-实例">SQL TOP 实例</h2><p>现在,我们希望从上面的 "Persons" 表中选取头两条记录。</p><p>我们可以使用下面的 SELECT 语句:</p><pre class="brush:php;toolbar:false">SELECT <code>TOP 2</code> * FROM Persons
登录后复制

结果:

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York

SQL TOP PERCENT 实例

现在,我们希望从上面的 "Persons" 表中选取 50% 的记录。

我们可以使用下面的 SELECT 语句:

SELECT <code>TOP 50 PERCENT</code> * FROM Persons
登录后复制

结果:

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York

第一种方法:

select top n * from  
(select top m * from tablename order by columnname) a 
order by columnname desc 
登录后复制
这个是用一个 sqlserver中 top比order by 后执行 的原理。
登录后复制

第二种方法:

/*以下示例将返回行号为 50 到 60(含)的行,并以 OrderDate 排序。*/ 
select * 
    from(
        select row_number() over (order by orgid) as rownum from org_info
    ) as wo
where wo.rownumber between 50 and 60
登录后复制



MySQL 语法

SELECT column_name(s)FROM table_nameLIMIT number
登录后复制

例子

SELECT *FROM Persons LIMIT 5
登录后复制

Oracle 语法

SELECT column_name(s)FROM table_nameWHERE ROWNUM <= number
登录后复制

SELECT *
  FROM (SELECT ROWNUM RM, UI.* FROM USER_INFO UI WHERE ROWNUM < 10)
 WHERE RM > 5;
登录后复制

oracle中的rownum 只能用以上符号(<、<=、!=)。

这个中也可以用 继续进行限制,如 最后一个where 条件中变为:RM>5 AND RM<8。那结果就是 取 第6到7条记录了!

例子

SELECT *FROM PersonsWHERE ROWNUM <= 5
登录后复制
 
登录后复制
登录后复制
登录后复制
登录后复制
 
登录后复制
登录后复制
登录后复制
登录后复制
 
登录后复制
登录后复制
登录后复制
登录后复制
注意 
登录后复制
<span ><strong>1、sqlserver 中SQL的执行顺序。</strong></span>
登录后复制
  1. FROM:对FROM子句中的前两个表执行笛卡尔积(Cartesian product)(交叉联接),生成虚拟表VT1
  2. ON:对VT1应用ON筛选器。只有那些使为真的行才被插入VT2。
  3. OUTER(JOIN):如 果指定了OUTER JOIN(相对于CROSS JOIN 或(INNER JOIN),保留表(preserved table:左外部联接把左表标记为保留表,右外部联接把右表标记为保留表,完全外部联接把两个表都标记为保留表)中未找到匹配的行将作为外部行添加到 VT2,生成VT3.如果FROM子句包含两个以上的表,则对上一个联接生成的结果表和下一个表重复执行步骤1到步骤3,直到处理完所有的表为止。
  4. WHERE:对VT3应用WHERE筛选器。只有使为true的行才被插入VT4.
  5. GROUP BY:按GROUP BY子句中的列列表对VT4中的行分组,生成VT5.
  6. CUBE|ROLLUP:把超组(Suppergroups)插入VT5,生成VT6.
  7. HAVING:对VT6应用HAVING筛选器。只有使为true的组才会被插入VT7.
  8. SELECT:处理SELECT列表,产生VT8.
  9. DISTINCT:将重复的行从VT8中移除,产生VT9.
  10. ORDER BY:将VT9中的行按ORDER BY 子句中的列列表排序,生成游标(VC10).
  11. TOP:从VC10的开始处选择指定数量或比例的行,生成表VT11,并返回调用者。

注意:这里的TOP 在 order by 的后面执行。意思是:sqlserver先进行排序再取top的数据。

2、oracle 中 order by 也是比 rownum先执行。


二、IF ELSE 区别


mysql和oracle的区别

1)、注意elseif区别

在mysql中:

<span>IF <em>search_condition</em> THEN <em>statement_list</em></span>
登录后复制
<span><span>    </span>[ELSEIF <em>search_condition</em> THEN <em>statement_list</em>] ...</span>
登录后复制
<span><span>    </span>[ELSE <em>statement_list</em>]</span>
登录后复制
<span>END IF</span>
登录后复制
2)、在oracle中:

IF 条件1 THEN

...如果条件1为真,则执行这里的语句...

ELSIF 条件2 THEN

...如果条件1为假,但是条件2为真,则执行这里的语句...

ELSE

...如果条件1和条件2都为假,则执行这里的语句...

END IF;











 
登录后复制
登录后复制
登录后复制
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

oracle如何查表空间大小 oracle如何查表空间大小 Apr 11, 2025 pm 08:15 PM

要查询 Oracle 表空间大小,请遵循以下步骤:确定表空间名称,方法是运行查询:SELECT tablespace_name FROM dba_tablespaces;查询表空间大小,方法是运行查询:SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

oracle数据库如何导入 oracle数据库如何导入 Apr 11, 2025 pm 08:06 PM

数据导入方法:1. 使用 SQLLoader 实用程序:准备数据文件、创建控制文件、运行 SQLLoader;2. 使用 IMP/EXP 工具:导出数据、导入数据。提示:1. 大数据集推荐 SQL*Loader;2. 目标表应存在,列定义匹配;3. 导入后需验证数据完整性。

Oracle安装失败如何卸载 Oracle安装失败如何卸载 Apr 11, 2025 pm 08:24 PM

Oracle 安装失败的卸载方法:关闭 Oracle 服务,删除 Oracle 程序文件和注册表项,卸载 Oracle 环境变量,重新启动计算机。若卸载失败,可使用 Oracle 通用卸载工具手动卸载。

如何在oracle中创建表 如何在oracle中创建表 Apr 11, 2025 pm 08:00 PM

创建 Oracle 表涉及以下步骤:使用 CREATE TABLE 语法指定表名、列名、数据类型、约束和默认值。表名应简洁、描述性,且不超过 30 个字符。列名应描述性,数据类型指定列中存储的数据类型。NOT NULL 约束确保列中不允许使用空值,DEFAULT 子句可指定列的默认值。PRIMARY KEY 约束标识表的唯一记录。FOREIGN KEY 约束指定表中的列引用另一个表中的主键。请参见示例表 students 的创建,其中包含主键、唯一约束和默认值。

oracle中乱码怎么解决 oracle中乱码怎么解决 Apr 11, 2025 pm 10:09 PM

Oracle 乱码问题可以通过以下步骤解决:检查数据库字符集以确保与数据相匹配。设置客户端字符集以与数据库相匹配。转换数据或修改列字符集以匹配数据库字符集。使用 Unicode 字符集,并避免多字节字符集。检查数据库和客户端的语言设置是否正确。

oracle视图如何加密 oracle视图如何加密 Apr 11, 2025 pm 08:30 PM

Oracle 视图加密允许您加密视图中的数据,从而增强敏感信息安全性。步骤包括:1) 创建主加密密钥 (MEk);2) 创建加密视图,指定要加密的视图和 MEk;3) 授权用户访问加密视图。加密视图工作原理:当用户查询加密视图时,Oracle 使用 MEk 解密数据,确保只有授权用户可以访问可读数据。

oracle打不开怎么办 oracle打不开怎么办 Apr 11, 2025 pm 10:06 PM

Oracle 打不开的解决办法包括:1. 启动数据库服务;2. 启动监听器;3. 检查端口冲突;4. 正确设置环境变量;5. 确保防火墙或防病毒软件未阻止连接;6. 检查服务器是否已关闭;7. 使用 RMAN 恢复损坏的文件;8. 检查 TNS 服务名称是否正确;9. 检查网络连接;10. 重新安装 Oracle 软件。

oracle如何查看实例名 oracle如何查看实例名 Apr 11, 2025 pm 08:18 PM

在 Oracle 中查看实例名的方法有三种:命令行中使用 "sqlplus" 和 "select instance_name from v$instance;" 命令。在 SQL*Plus 中使用 "show instance_name;" 命令。通过操作系统的任务管理器、Oracle Enterprise Manager 或检查环境变量 (Linux 上的 ORACLE_SID)。

See all articles