AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-10356

Kshitiz Sharma's questions

Martin Hope
Kshitiz Sharma
Asked: 2017-05-09 02:57:12 +0800 CST

解释此内部连接和自然连接之间的输出差异

  • 3

NATURAL JOIN 是一种 JOIN 操作,它根据要连接的两个表中的公共列为您创建隐式连接子句。NATURAL JOIN 可以是 INNER 联接、LEFT OUTER 联接或 RIGHT OUTER 联接。默认是 INNER 连接。资源

因此,如果两个表都有一个公共列,自然连接可以是实现内部连接的一种简写方式。

考虑下表:

SELECT * FROM t1;
/*
        ID PLANET  
---------- --------
         1 jupiter 
         2 earth 
*/

我们将表连接到自身:

SELECT first.id, first.planet FROM t1 first INNER JOIN t1 second ON first.id=second.id;
/*
        ID PLANET  
---------- --------
         1 jupiter 
         2 earth   
*/

尝试用自然连接符号做同样的事情:

SELECT id, planet FROM t1 NATURAL JOIN t1;
/*
        ID PLANET  
---------- --------
         1 jupiter 
         1 jupiter 
         2 earth   
         2 earth   
*/

鉴于这里的自然连接是使用内部连接实现的,为什么多行?

更新:

使用表别名运行相同的连接有不同的输出:

SELECT id, planet FROM t1 first NATURAL JOIN t1 second;
/*
        ID PLANET  
---------- --------
         1 jupiter 
         2 earth   
*/
oracle join
  • 2 个回答
  • 1015 Views
Martin Hope
Kshitiz Sharma
Asked: 2017-05-03 06:07:12 +0800 CST

内联视图和 WITH 子句之间的区别?

  • 10

内联视图允许您从子查询中进行选择,就好像它是不同的表一样:

SELECT
    *
FROM /* Selecting from a query instead of table */
    (
        SELECT
            c1
        FROM
            t1
        WHERE
            c1 > 0
    ) a
WHERE
    a.c1 < 50;

我已经看到它使用不同的术语来提及:内联视图、WITH 子句、CTE 和派生表。对我来说,它们似乎是同一事物的不同供应商特定语法。

这是一个错误的假设吗?这些之间是否有任何技术/性能差异?

oracle cte
  • 5 个回答
  • 29582 Views
Martin Hope
Kshitiz Sharma
Asked: 2017-04-26 12:07:44 +0800 CST

什么是 SQL 子句?

  • 10

这听起来像是一个过于简单的问题,但我发现找到正确答案并不容易。

对于“什么是 sql 子句?”这个问题。互联网上的大多数资源只是提供了一个条款列表并解释了它们的作用。

但我试图用抽象的术语来理解它是如何定义的。就像一个通用表示法,它捕获可以编写的各种查询以及子句如何适合其中。

所有子句都有共同的属性吗?为什么 UNION 称为运算符,而 HAVING 是子句?

sql-standard
  • 3 个回答
  • 7816 Views
Martin Hope
Kshitiz Sharma
Asked: 2017-02-18 06:18:09 +0800 CST

ORA-01722: 截断时间戳时指定的数字无效

  • 0

询问:

SELECT
    first_load_time
FROM
    v$sql;

结果:

2017-02-16/07:45:25
2017-02-17/06:47:36
2017-02-17/02:05:31
2017-02-15/17:39:13

询问:

SELECT
    to_char(FIRST_LOAD_TIME, 'YYYY-MM-DD')
FROM
    v$sql;  

结果:

ORA-01722: *原因:指定的数字无效。

SELECT
    trunc(FIRST_LOAD_TIME)
FROM
    v$sql;

ORA-01722: *原因:指定的数字无效。

为什么oracle在截断时间戳时会给出无效数字错误?我需要在这个视图上按日期分组。

oracle oracle-11g-r2
  • 1 个回答
  • 2707 Views
Martin Hope
Kshitiz Sharma
Asked: 2017-01-19 01:56:14 +0800 CST

ORA-01536: 执行 CTAS 时出现空间不足错误

  • -1

我有两个模式A和B。我正在尝试将表格复制B.users到A. 我已按照以下步骤操作:

在架构中运行B:

GRANT ALL ON users TO A;

在架构中运行A:

CREATE TABLE users AS (SELECT * FROM B.users);

这给出了错误:

SQL 错误:ORA-01536: 表空间 'A' 01536.00000 超出空间配额 - “表空间 '%s' 超出空间配额” *原因:表空间中段所有者的空间配额已用完,操作已尝试在表空间中创建一个新的段范围。*行动:要么删除表空间中不必要的对象以回收空间,要么让特权用户为段所有者增加该表空间的配额。

该错误似乎具有误导性,我怀疑这里还有其他问题,因为用户表只有大约 1000 个用户,并且有问题的表空间分配给它 2 GB,所有这些都是免费的。此外,尝试仅复制一行也会出现相同的错误:

CREATE TABLE users AS (SELECT * FROM B.users where rownum < 2);

但是,复制没有任何数据的模式会成功:

CREATE TABLE users AS (SELECT * FROM B.users where rownum = -1); /* This works */

我在这里错过了什么?

oracle tablespaces
  • 1 个回答
  • 504 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-06-13 13:04:47 +0800 CST

SP2-0584:EXIT 变量是非数字错误

  • 1

我正在使用以下 PLSQL 循环从我的表中删除大量记录。但是,它给了我一个错误,即循环退出条件不正确。

FOR i IN 1..100
LOOP
  DELETE
  FROM mytable
  WHERE date <= (SYSDATE - 30)
  AND ROWNUM < 5000;
EXIT WHEN (SELECT COUNT(*)
  FROM mytable
  WHERE date <= (SYSDATE - 30)) = 0;
  COMMIT;
END LOOP;

这里有什么问题?

oracle plsql
  • 1 个回答
  • 2235 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-06-06 13:59:42 +0800 CST

SQL Developer 自动跟踪不显示级联删除

  • 1

我试图了解在 4 个链接表上执行 DELETE 级联的 SQL 语句的性能特征。

当我对语句进行自动跟踪时,它只显示在表上执行的 DELETE 语句。它不显示在其他表上完成的删除的详细信息。

为什么 SQL Developer 不显示跟踪中的级联?

oracle oracle-sql-developer
  • 1 个回答
  • 182 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-06-06 09:56:26 +0800 CST

什么时候要使用 Oracle 透明数据加密

  • 1

Oracle TDE 特性具有各种限制,例如无法加密外键约束中使用的列。并且可能仅适用于价格超过 10 万美元的企业版。

为什么要付费使用 TDE 而不是简单地使用操作系统的文件系统加密?这是免费的,并且绕过了有关 FK 等的各种限制。

我错过了它提供的一些优势吗?

oracle encryption
  • 1 个回答
  • 67 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-05-28 14:52:10 +0800 CST

为什么 Oracle 不显示我的权限?

  • 1

我有一个能够删除、更改、创建表和索引的用户。但是当我列出我的 Oracle 用户的权限时,它没有显示任何CREATE TABLE或其他此类权限。我如何在没有权限的情况下执行这些操作,或者为什么 Oracle 不显示它们?

运行以下查询不返回任何内容:

SELECT * FROM USER_TAB_PRIVS;
SELECT * FROM all_tab_privs_recd WHERE grantee = 'user_kshitiz';

运行SELECT * FROM USER_SYS_PRIVS回报:

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
user_kshitiz                   UNLIMITED TABLESPACE                     NO 
user_kshitiz                   CREATE SEQUENCE                          NO

运行SELECT * FROM USER_ROLE_PRIVS回报:

USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
user_kshitiz                   CONNECT                        NO  YES NO 
user_kshitiz                   RESOURCE                       NO  YES NO 
user_kshitiz                   SCHEMA_1_RW_ROLE               NO  YES NO 

检查每个角色的权限不会返回任何结果。

SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE = 'CONNECT';
SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE = 'RESOURCE';
SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE = 'SCHEMA_1_RW_ROLE';

那么动力从何而来?

oracle permissions
  • 1 个回答
  • 1232 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-05-28 14:35:12 +0800 CST

如何在没有特殊权限的情况下使用 expdp 导出自己的对象?

  • 0

根据Oracle 论坛上的这篇文章,expdp 可用于导出您自己的模式,而无需任何特殊权限:

这完全取决于您希望该用户能够导出/导入什么。如果所有的用途是导出/导入它们自己的对象,那么它们不需要任何提升的权限。如果您希望该用户能够导出其他模式拥有的对象,那么他们将需要 exp_full_database 并且为了导入,他们将需要 imp_full_database。

但是我就是无法让它工作。需要指定目录对象,否则 expdp 显示错误: ORA-39145: directory object parameter must be specified and non-null 但创建目录需要CREATE ANY DIRECTORY系统权限。

那么如何以普通用户的身份导出自己的架构?

oracle export
  • 2 个回答
  • 5633 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-04-30 13:49:04 +0800 CST

选择不存在较小行的行

  • 2

考虑下表数据:

ID NAME
1 Kshitiz 
2 Aman
5 Aakash
6 Manjeet

这里有 2 到 5 之间的记录缺失。我可以使用什么查询来选择此表中的第 5 行?

oracle-11g
  • 2 个回答
  • 51 Views
Martin Hope
Kshitiz Sharma
Asked: 2014-03-06 01:36:58 +0800 CST

为什么 Oracle 将时间存储在 DATE 列中?

  • 3

我有一个带有日期列的表。我使用 JDBC 将 java.util.Date 对象保存到表中。

当我运行以下查询时,我得到日期以及时间值:

select To_CHAR(departure_date,'DD-MM-YYYY HH:MI') from service

这告诉我日期是列也存储时间。

这是出乎意料的。日期类型不应该像整数类型那样丢弃时间值丢弃小数位数吗?

oracle datatypes
  • 1 个回答
  • 10622 Views
Martin Hope
Kshitiz Sharma
Asked: 2013-11-29 19:50:44 +0800 CST

如何让sqlplus的输出出现在一行中?

  • 60

我有一张有 100 列的表。在输出中选择数据时SQL Plus会换行,使其难以阅读。

我更喜欢的是出现水平滚动条或以某种方式将输出发送到less

我在 SQLPlus 中运行以下语句 -

SET LINESIZE 32000;
SET PAGESIZE 40000;
SET LONG 50000;
SPOOL output.txt
SELECT * FROM big_table;

然后在bash我运行 -

少输出.txt

输出仍然显示为已包装且不可读。

oracle sqlplus
  • 3 个回答
  • 576036 Views
Martin Hope
Kshitiz Sharma
Asked: 2013-04-23 21:24:46 +0800 CST

如何正确格式化 sqlite shell 输出?

  • 139

如果我去mysql shell打字,SELECT * FROM users我会得到 -

+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| USERID | NAME           | EMAILID                         | PASSWORD | USER_TYPE | CONTACT_ID_FKUSERS | COMPANY_ID_FKUSERS |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
|    137 | X              | [email protected]                        | #        | ADMIN     |                166 |                110 |
|    138 | Kshitiz        | [email protected]                 | asdf     | ADMIN     |                167 |                111 |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+

Oracle sqlplus显示 -

USERID     NAME  EMAILID    PASSWORD   USER_TYPE  CONTACT_ID_FKUSERS COMPANY_ID_FKUSERS
---------- ----- ---------- ---------- ---------- ------------------ ------------------
137        X     [email protected]   #          ADMIN                     166                110
137        X     [email protected]   #          ADMIN                     166                110

Sqlite shell显示 -

137|X|[email protected]|#|ADMIN|166|110
138|Kshitiz|[email protected]|asdf|ADMIN|167|111
  1. 有没有办法美化输出sqlite shell?
  2. 是否有比默认发行版更好的替代外壳?(仅限 CLI 客户端)
sqlite
  • 9 个回答
  • 91651 Views
Martin Hope
Kshitiz Sharma
Asked: 2013-01-30 03:51:01 +0800 CST

Mysql没有关闭连接

  • 2

我有一个配置了连接池的 Java 应用程序。我已确保应用程序正确终止连接。

但是,当我在 mysql 命令行上运行此命令时-

show status like '%onn%';

+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Aborted_connects         | 2     |
| Connections              | 72    |
| Max_used_connections     | 10    |
| Ssl_client_connects      | 0     |
| Ssl_connect_renegotiates | 0     |
| Ssl_finished_connects    | 0     |
| Threads_connected        | 2     |
+--------------------------+-------+

当连接从客户端终止时,为什么mysql保持打开状态?

文件的内容my.cnf是(注释和不重要的部分省略) -

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

[mysqld]
user        = mysql
pid-file            = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
lower_case_table_names = 1
skip-external-locking

key_buffer      = 16M
max_allowed_packet  = 16M
thread_stack    = 192K
thread_cache_size   = 8

myisam-recover      = BACKUP

query_cache_limit   = 1M
query_cache_size    = 16M

expire_logs_days    = 10
max_binlog_size     = 100M
mysql max-connections
  • 1 个回答
  • 9107 Views
Martin Hope
Kshitiz Sharma
Asked: 2012-12-28 03:55:03 +0800 CST

如何顺序编号SQL结果?

  • 0

给定以下查询 -

SELECT name, age FROM students WHERE age > 22

结果是——

name    age
----   ---
Kshitiz 23
Steve   22
Paul    24

如何按顺序对结果进行编号?像这样-

serial  name    age
------  ----    ---
   1    Kshitiz 23
   2    Steve   22
   3    Paul    24

请注意,使用代理键不是解决方案。因为记录 Kshitiz 的代理 ID 可能是 9。我希望从任何位置返回的任何结果都按顺序编号。

mysql
  • 1 个回答
  • 564 Views
Martin Hope
Kshitiz Sharma
Asked: 2012-12-16 00:13:40 +0800 CST

如何聚合表中的数据点?

  • 2

假设我有下表 -

CREATE TABLE data_points (t DATETIME PRIMARY KEY, value INTEGER);

我想通过计算表中每 10 个点的平均值来汇总数据。

即如果表有 20 个数据点,结果是两个聚合点。第一个聚合点是 1-10 个数据点的平均值,第二个是 11-20 个数据点的平均值。

这可能使用 SQL 查询吗?

aggregate h2
  • 1 个回答
  • 188 Views
Martin Hope
Kshitiz Sharma
Asked: 2012-10-28 00:04:43 +0800 CST

如何查看 Oracle 中的数据库列表?

  • 44

是否有等效于 MySQL 的SHOW DATABASES语句?

是否可以在集群中找到数据库?即存在于网络上的其他系统上的数据库?

我可以分析 Oracle 安装中存在的文件以找到相同的文件吗?

给定对 Oracle 系统的完整访问凭据,您将如何枚举所有存在的数据库?

oracle
  • 8 个回答
  • 351632 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve