相关疑难解决方法(0)

MySQL,最好插入NULL还是空字符串?

我在一个有很多不同领域的网站上有一个表格.某些字段是可选字段,而某些字段是必填字段.在我的数据库中,我有一个包含所有这些值的表,是否更好的做法是将NULL值或空字符串插入到用户未放置任何数据的DB列中?

mysql sql sql-null

224
推荐指数
5
解决办法
9万
查看次数

为什么Oracle 9i将空字符串视为NULL?

我知道它确实考虑过'' NULL,但这并没有太多告诉我为什么会这样.据我所知,SQL规范''与NULL- 不一样- 一个是有效数据,另一个是缺少相同的信息.

随意推测,但请说明是否是这种情况.如果甲骨文的任何人都能评论它,那就太棒了!

sql string oracle null

206
推荐指数
4
解决办法
7万
查看次数

定义VARCHAR2列的长度更大的影响

当值不超过10字节时VARCHAR2(1000),VARCHAR2(10)使用Oracle 而不是Oracle 定义列有什么影响?

该列是否仅占用存储值所需的空间,还是会对表空间/索引的大小/性能产生负面影响?

sql oracle varchar2

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

究竟什么意味着VARCHAR2字段的大小被声明为1 BYTE?(进入Oracle DB)

我不是这样database,我有以下疑问.

我知道我可以varchar2使用它可以包含的char的数量声明一个字段.

但是Oracle在我正在处理的数据库中,我发现一个字段(名为PDF)定义为:

VARCHAR2(1 BYTE)
Run Code Online (Sandbox Code Playgroud)

究竟意味着什么?它包含多少人?

另一个疑问是:VARCHAR场和VARCHAR2场之间究竟有什么区别?

TNX

sql oracle varchar sqldatatypes

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

Oracle没有区分空值和空字符串?

显然oracle似乎没有区分空字符串和空值.例如

Select name from TABLE_A where id=100;
  ID   NAME
  100  null

Update TABLE_A set NAME='' where id=100;
SELECT -->
  ID   NAME
  100  null

SELECT length(NAME) FROM TABLE_A WHERE id=100;
  null
Run Code Online (Sandbox Code Playgroud)

我想不出有什么理由可以建立Oracle以这种方式运行(它是否也在sqlplus中执行此操作? - 我通过java接口访问,引用的文章使用了php客户端).

难道你至少不想区分0长度和未定义长度吗?这是一个已知的问题?某些特定目的的故意行为?数据库理论中长期存在的争议?是什么赋予了?

(这是Matt Solnit对这个问题的回答.)

database oracle

14
推荐指数
1
解决办法
4354
查看次数

SQL中varchar和varchar2的区别

SQL中的varchar和varchar2有什么区别.请用一些好的例子详细解释.

sql

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

ORDER BY子查询和ROWNUM违背了关系哲学?

Oracle ROWNUM之前已经应用过了ORDER BY.为了ROWNUM根据排序列放置,在所有文档和文本中提出以下子查询.

select *
from (
  select *
  from table
  order by price
)
where rownum <= 7
Run Code Online (Sandbox Code Playgroud)

这让我很烦恼.据我所知,表输入FROM是关系的,因此没有存储顺序,这意味着子查询中的顺序在被看到时不被尊重FROM.

我不记得确切的情况,但这个" ORDER BY在外部查询中没有任何影响"的事实我不止一次阅读过.示例是内联子查询INSERT,ORDER BYPARTITION子句的子查询等.例如

OVER (PARTITION BY name ORDER BY salary)

外部查询中不会遵守工资订单,如果我们希望在外部查询输出中对工资进行排序,则ORDER BY需要在外部查询中添加另一个工资.

每个人都有一些关于为什么关系属性在这里不受尊重和订单的见解存储在子查询中?

oracle sql-order-by relational-database oracle11g rownum

1
推荐指数
2
解决办法
2306
查看次数

在数据库中创建TABLE时出错

我正在使用oracle 10g ex来学习,所以这里是我的代码

CREATE TABLE MINE 
(
    NAME VARCHAR(10),
    ID INT(3) PRIMARY KEY 
);
Run Code Online (Sandbox Code Playgroud)

而我的错误是

ORA-00907:缺少右括号.

但我没有错过正确的括号.要解决这个问题,我还有其他任何机会或事情要知道.

sql oracle ddl syntax-error create-table

1
推荐指数
1
解决办法
424
查看次数