标签: oracle

获取Oracle中所有表的列表?

如何查询Oracle数据库以显示其中所有表的名称?

sql oracle

1073
推荐指数
14
解决办法
211万
查看次数

如何在订购后限制Oracle查询返回的行数?

有没有办法让Oracle查询表现得像包含一个MySQL limit子句?

MySQL,我可以这样做:

select * 
from sometable
order by name
limit 20,10
Run Code Online (Sandbox Code Playgroud)

获得第21行到第30行(跳过前20行,给出下一行10).在行之后选择行order by,因此它实际上按字母顺序从第20个名称开始.

Oracle,人们提到的唯一的事情是rownum伪列,但它之前 进行了评估order by,这意味着:

select * 
from sometable
where rownum <= 10
order by name
Run Code Online (Sandbox Code Playgroud)

将返回按名称排序的十行的随机集合,这通常不是我想要的.它也不允许指定偏移量.

sql oracle pagination limit

966
推荐指数
10
解决办法
134万
查看次数

获取具有列的最大值的行

表:

UserId, Value, Date.
Run Code Online (Sandbox Code Playgroud)

我想得到UserId,每个UserId的max(Date)值.也就是说,具有最新日期的每个UserId的值.有没有办法在SQL中执行此操作?(最好是Oracle)

更新:对任何含糊不清的道歉:我需要获取所有UserIds.但对于每个UserId,只有该用户具有最新日期的那一行.

sql oracle greatest-n-per-group

556
推荐指数
10
解决办法
56万
查看次数

如何在Oracle上使用AUTO_INCREMENT创建id?

似乎在Oracle中没有AUTO_INCREMENT的概念,直到包括版本11g.

如何在Oracle 11g中创建一个行为类似自动增量的列?

sql oracle auto-increment

390
推荐指数
9
解决办法
89万
查看次数

如何在SQL数据库表中选择第n行?

我有兴趣学习一些(理想情况下)数据库无关的方法来从数据库表中选择第n行.看看如何使用以下数据库的本机功能实现这一目标也很有趣:

  • SQL Server
  • MySQL的
  • PostgreSQL的
  • SQLite的
  • 神谕

我目前正在SQL Server 2005中执行类似下面的操作,但我有兴趣看到其他更不可知的方法:

WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000
Run Code Online (Sandbox Code Playgroud)

感谢上述SQL:Firoz Ansari的Weblog

更新:请参阅Troels Arvin关于SQL标准的答案.Troels,您有任何我们能引用的链接吗?

mysql sql database oracle postgresql

373
推荐指数
13
解决办法
72万
查看次数

如何使用Oracle SQL Developer生成实体关系(ER)图

我想使用Oracle SQL Developer为我的数据库表生成一个ER图,但我是Oracle和这个工具的新手.

在SQL Developer中创建ER图的过程是什么?

oracle erd entity-relationship oracle-sqldeveloper

359
推荐指数
8
解决办法
49万
查看次数

334
推荐指数
8
解决办法
65万
查看次数

Oracle:如果表存在

我正在为Oracle数据库编写一些迁移脚本,并且希望Oracle有类似MySQL的IF EXISTS构造.

具体来说,每当我想在MySQL中删除表时,我都会这样做

DROP TABLE IF EXISTS `table_name`;
Run Code Online (Sandbox Code Playgroud)

这样,如果表不存在,DROP则不会产生错误,脚本可以继续.

Oracle是否有类似的机制?我意识到我可以使用以下查询来检查表是否存在

SELECT * FROM dba_tables where table_name = 'table_name';
Run Code Online (Sandbox Code Playgroud)

但是把它与a绑在一起的语法DROP正在逃避我.

sql oracle sql-drop

322
推荐指数
7
解决办法
45万
查看次数

SQL中是否有"LIKE"和"IN"的组合?

在SQL中(遗憾的是)LIKE由于数据库违反了几乎所有规范化规则,因此经常不得不使用" "条件.我现在无法改变它.但这与这个问题无关.

此外,我经常使用条件,例如WHERE something in (1,1,2,3,5,8,13,21)更好的可读性和SQL语句的灵活性.

在没有编写复杂的子选择的情况下,有没有可能将这两种方法结合起来?

我想要一些简单WHERE something LIKE ('bla%', '%foo%', 'batz%')而不是这样的东西:

WHERE something LIKE 'bla%'
OR something LIKE '%foo%'
OR something LIKE 'batz%'
Run Code Online (Sandbox Code Playgroud)

我在这里使用SQl Server和Oracle,但我很感兴趣,如果在任何RDBMS中都可以这样做.

sql t-sql sql-server oracle plsql

322
推荐指数
13
解决办法
43万
查看次数

301
推荐指数
6
解决办法
24万
查看次数