我在一个有很多不同领域的网站上有一个表格.某些字段是可选字段,而某些字段是必填字段.在我的数据库中,我有一个包含所有这些值的表,是否更好的做法是将NULL值或空字符串插入到用户未放置任何数据的DB列中?
我知道它确实考虑过'' NULL,但这并没有太多告诉我为什么会这样.据我所知,SQL规范''与NULL- 不一样- 一个是有效数据,另一个是缺少相同的信息.
随意推测,但请说明是否是这种情况.如果甲骨文的任何人都能评论它,那就太棒了!
当值不超过10字节时VARCHAR2(1000),VARCHAR2(10)使用Oracle 而不是Oracle 定义列有什么影响?
该列是否仅占用存储值所需的空间,还是会对表空间/索引的大小/性能产生负面影响?
我不是这样database,我有以下疑问.
我知道我可以varchar2使用它可以包含的char的数量声明一个字段.
但是Oracle在我正在处理的数据库中,我发现一个字段(名为PDF)定义为:
VARCHAR2(1 BYTE)
Run Code Online (Sandbox Code Playgroud)
究竟意味着什么?它包含多少人?
另一个疑问是:VARCHAR场和VARCHAR2场之间究竟有什么区别?
TNX
显然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对这个问题的回答.)
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 10g ex来学习,所以这里是我的代码
CREATE TABLE MINE
(
NAME VARCHAR(10),
ID INT(3) PRIMARY KEY
);
Run Code Online (Sandbox Code Playgroud)
而我的错误是
ORA-00907:缺少右括号.
但我没有错过正确的括号.要解决这个问题,我还有其他任何机会或事情要知道.
oracle ×6
sql ×6
create-table ×1
database ×1
ddl ×1
mysql ×1
null ×1
oracle11g ×1
rownum ×1
sql-null ×1
sql-order-by ×1
sqldatatypes ×1
string ×1
syntax-error ×1
varchar ×1
varchar2 ×1