小编Lei*_*fel的帖子

何时使用 NULL,何时使用空字符串?

我主要对 MySQL 和 PostgreSQL 感兴趣,但您可以大致回答以下问题:

  • 是否存在区分空字符串和 NULL 有用的逻辑场景?
  • 将空字符串存储为...的物理存储含义是什么?

    • 空值?
    • 空字符串?
    • 另一个领域?
    • 还有什么办法吗?

null empty-string feature-comparison

100
推荐指数
5
解决办法
10万
查看次数

消除 ListAgg (Oracle) 中的重复项

在 Oracle 11.2 之前,我使用自定义聚合函数将一列连接成一行。11.2 增加了这个LISTAGG功能,所以我想改用它。我的问题是我需要消除结果中的重复项,但似乎无法做到这一点。

这是一个例子。

CREATE TABLE ListAggTest AS (
  SELECT rownum Num1, DECODE(rownum,1,'2',to_char(rownum)) Num2 FROM dual 
     CONNECT BY rownum<=6
  );
SELECT * FROM ListAggTest;
Run Code Online (Sandbox Code Playgroud)
CREATE TABLE ListAggTest AS (
  SELECT rownum Num1, DECODE(rownum,1,'2',to_char(rownum)) Num2 FROM dual 
     CONNECT BY rownum<=6
  );
SELECT * FROM ListAggTest;
Run Code Online (Sandbox Code Playgroud)

我想看到的是:

      NUM1 NUM2
---------- ---------------------
         1 2
         2 2                    << Duplicate 2
         3 3
         4 4
         5 5
         6 6
Run Code Online (Sandbox Code Playgroud)

这是一个listagg接近但不消除重复的版本。

SELECT Num1, listagg(Num2,'-') WITHIN GROUP (ORDER BY NULL) OVER …
Run Code Online (Sandbox Code Playgroud)

oracle aggregate oracle-11g-r2

48
推荐指数
7
解决办法
18万
查看次数

Oracle 数据库中的 sys 和 system 帐户有什么区别?

有两种方法可以使用 sqlplus 以管理员身份连接到 Oracle:

  1. sqlplus sys as sysdba
  2. sqlplus system/manager

我想这些帐户应该用于不同的目的。

这两个模式用于哪些任务?我什么时候应该使用其中的一个?

oracle oracle-11g-r2

43
推荐指数
3
解决办法
9万
查看次数

具有用户、角色和权限的数据库模型

我有一个带有用户表和角色表的数据库模型。我想控制对多达 10 个不同元素的访问(权限)。可以将访问权限授予角色或单个用户。下面是用户、角色和项目的表定义:

CREATE TABLE users
(
  id serial NOT NULL PRIMARY KEY,
  username character varying UNIQUE,
  password character varying,
  first_name character varying,
  last_name character varying,
  ...
);

CREATE TABLE roles
(
  id serial NOT NULL PRIMARY KEY,
  name character varying NOT NULL,
  description character varying,
  ...
);

CREATE TABLE element_1
(
  id serial NOT NULL PRIMARY KEY,
  name character varying NOT NULL,
  description character varying,
  ...
);

...
Run Code Online (Sandbox Code Playgroud)

现在我有两种不同的方式来设计版权。一个带有权限类型列的表或 10 个权限表 - 一个用于我想要控制访问的每个元素。

每个元素一个权限表与一个权限表的优缺点是什么?- 或者是更合适的方式来做到这一点?

database-design best-practices

43
推荐指数
2
解决办法
11万
查看次数

在专用数据库服务器上,要为操作系统保留多少内存?

假设您有一个明确用于数据库功能的专用服务器——您应该为操作系统保留多少内存?

我意识到这可能会有所不同,具体取决于特定的操作系统、特定的数据库软件等。但是,由于内存对数据库性能非常重要,我希望数据库具有最大合理级别的内存,而不会使主机操作系统挨饿。

所以

  • 什么是好的经验法则?
  • 我们应该查看哪些计数器或性能指标来确定我们是否走得太远并且主机操作系统是否以某种方式被数据库饿死?

sql-server windows memory

39
推荐指数
4
解决办法
7730
查看次数

如何显示在 Oracle 数据库上执行的 SQL?

如何显示当前在 oracle 数据库上执行的 SQL?

有用的额外信息包括用户、会话 ID 等。

oracle

34
推荐指数
2
解决办法
29万
查看次数

您如何对 Oracle 数据库更改进行版本控制?

我很想知道其他人使用哪些方法来跟踪对数据库所做的更改,包括表定义更改、新对象、包更改等。您是否使用带有外部版本控制系统的平面文件?触发器?其他软件?

oracle oracle-11g-r2 version-control

32
推荐指数
3
解决办法
4万
查看次数

如何在 Oracle 11g 中创建表空间?

我对 Oracle 不太精明,我一直在尝试创建一个 TABLESPACE,它不断给我一个无效文件名的错误消息。以下是我使用的语法:

SQL> create Tablespace HRMT
2 datafile
3 size
4 ;
size
*
ERROR at line 3:
ORA-02236: invalid file name
Run Code Online (Sandbox Code Playgroud)

我的书和我去过的所有网站都建议我为 DATAFILE 指定文件路径,当我指定路径时,我收到另一条错误消息。

SQL> create tablespace vania
2 datafile 'home/oracle/hait/'
3 size 10M
4 ;
create tablespace vania
*
ERROR at line 1:
ORA-01119: error in creating database file 'home/oracle/hait/'
ORA-27040: file create error, unable to create file
Linux Error: 2: No such file or directory
Run Code Online (Sandbox Code Playgroud)

在创建 TABLESPACE 之前,是否需要先创建数据文件?数据库中是否有我可以使用的预先存在的数据文件?创建表空间和/或数据文件的正确语法是什么?如何以及在何处创建 .dbf 文件来创建表空间?

oracle

30
推荐指数
5
解决办法
23万
查看次数

为什么操作系统身份验证被认为是 Oracle 数据库的安全性差?

根据Oracle 数据库安全指南,Oracle 正在弃用 OS 身份验证,其中说

请注意,REMOTE_OS_AUTHENT 参数在 Oracle 数据库 11g 第 1 版 (11.1) 中已弃用,保留只是为了向后兼容。

此外,大多数安全信息和工具都认为 操作系统(外部)身份验证是一个安全问题。我试图理解为什么会这样。以下是我看到的操作系统身份验证的一些优点:

  1. 如果没有操作系统身份验证,应用程序必须将密码存储在各种应用程序中,每个应用程序都有自己的安全模型和漏洞。
  2. 域身份验证必须是安全的,因为如果不是,那么数据库安全只会减慢对数据库的访问,但无法阻止它。
  3. 只需记住一个域密码的用户可以更轻松地创建更安全的域密码,而不是随着他们必须连接到的不同数据库数量的增加而创建更不安全的数据库密码。

oracle security oracle-11g-r2

29
推荐指数
2
解决办法
2万
查看次数

Mnesia:优点和差异

Mnesia 与主要的 SQL 数据库实现相比有哪些优势?它与它们有何不同?

我可以使用数据库来保存大量数据而不会明显降低性能吗?

feature-comparison

26
推荐指数
3
解决办法
2万
查看次数