oracle怎么加删除字段

嘿,你知道吗,当我第一次开始使用Oracle数据库时,我对添加和删除字段感到非常困惑。
我在想,为什么有这么多语法?我做错了吗?
那时,如果要添加字段,必须使用ALTERTABLE,并记住语法、table_name、column_name和data_type。
我记得最清楚的是我添加了部门ID和NOTNULL。
那一刻我就想,这不是默认是空的吗?
然后我又学会了另一个方法,CREATEABLE。
这个方法相当高级,可以创建一个带有默认值的新表。
那一刻我心想,哦,这很好,但我必须小心。
原表数据必须手动迁移。
我很害怕。

删除字段也是一个令人头疼的问题。
使用 ALTERTABLEDROPCOLUMN。
我记得有一个CASCADECONSTRAINTS,这是一个外键。
当时我就想,如果这样不好的话,是不是还要我手动去处理其他的事情呢?
记得有一次,上线前没有评估好,就在生产环境中加了一个live字段。
当时我还很疑惑,心想,这不是书桌锁吗?然后查了一下,发现还是得有ALTER权限,而且还要在非高峰时间工作。
当时我心里非常后悔。

对于大表操作,必须慢慢进行,批量处理,或者使用DBMS_REDEFINITION包。
这东西听上去很高端。

现在想来,当时我只是一个新手。
我是一步一步来的。
虽然我现在还是个新手,但是已经比以前好多了。
操作前先评估一下影响,验证是否正确再进行操作,避免出错。
哎,这个Oracle数据库需要慢慢接触、慢慢学习。

oracle 修改表字段

嘿,你让Oracle修改表字段了吗?我上次执教球队时,总结了这四点,写下来供大家参考:
1 .添加字段 最简单的是使用 ADD 子句。
例如,如果要向students表添加phone字段(VARCHAR2 (1 1 ),默认NULL),就直接这样写: sql ALTER TABLE 学生添加电话 VARCHAR2 (1 1 ) DEFAULT NULL; 请注意,如果未指定默认值,则默认值为 NULL。
没有什么特别需要注意的。

2 删除字段 只需使用“删除列”即可。
删除student表的phone字段示例: sql 改变桌子学生扔掉手机; 关键是!删除之前,必须确认该字段是否依赖于其他东西,例如视图、触发器等,如果不检查,操作可能会失败。
我之前在删除视图使用的字段时就陷入过这个陷阱,直接导致整个应用程序长时间挂起。

3 修改字段属性 使用修改的列。
例如,将学生表的 id 字段从 NUMBER(1 0) 更改为 NUMBER(1 2 ): sql ALTER TABLE Students MODIFY COLUMN id NUMBER (1 2 ); 注意兼容性!当它变得更长时并不重要。
如果它变得更短,例如从 VARCHAR2 (2 0) 更改为 VARCHAR2 (1 0),则所有长度超过 1 0 个字符的数据都将被截断。
上次改一个字段的长度,没有关注数据量。
结果是一系列随机截断的记录让维护人员哭泣。

4 修改字段名称 使用重命名列。
例如,将student表的id更改为student_id: sql ALTER TABLE Students 将列 id 重命名为 Student_id; 这是最烦人的部分!更改名称后,所有使用该字段名称的 SQL 语句和程序代码都必须相应更改。
上次改字段名,忘记改应用中的查询语句,半夜被叫去加班调试问题。
这份工作是一场注重细节的噩梦。

总之,总结就是:Oracle可以使用ALTER TABLE来控制字段的增删改查、重命名,但是操作前一定要考虑清楚数据的依赖关系和兼容性,修改后一定要记得同步代码。
如果您觉得这很烦人,有时可以创建一个新表来替换旧表。
这取决于具体情况。

Oracle 给表加多个字段

等一下,我昨天加班回家,正在盯着电脑上的数据库表结构。
凌晨两点,办公室里只有我一个人,灯亮着又灭。
我输入了 ALTER TABLE 命令并添加了一个新字段,以为明天老板来询问时我会得到解释。

当我添加该字段时,我突然想到了下一个团队的那个人,他上个月添加该字段时导致数据库崩溃。
最后我帮忙解决了。
它使用的字段类型是选择的,例如混杂、TEXT、DECIMAL、全部堆叠。
我只想在这里添加NUMBER(1 ),但其他人坚持添加NUMBER(3 8 ),说它与一些国际标准兼容。
结果呢?提问时,全用科学计数法,就像读圣经一样。

等等,还有一件事。
在添加字段之前,我只需执行 DBMS_SPACE 包查询来查看还剩多少可用表空间。
当时刚刚发出了表空间警告邮件,说只剩下1 5 %了。
如果这次添加过多,可能需要再次申请延期。
完成审批流程至少需要两天时间。
到那时,时间表的结构已经发生了变化,批准它的人仍然感到困惑。

突然我想到,有时候添加字段并没有那么复杂。
只需说出 NUMBER(1 )。
最多可以存储0到9 十个数字,可以用吗?假设时区代码将用于统计。
但如果对方坚持,你说不加,需求文档里都写了;他补充道,这个数字看起来就像是一个笑话。
最终我妥协选择了NUMBER(3 8 ),认为至少可以用一段时间了。

添加后,我进入 SQL Developer 并查看数据字典视图以验证字段是否已添加且类型没有混乱。
现在才凌晨两点。
窗外的路灯照亮了办公室,影子在墙上摇曳。
如果你过多地使用这个技巧,表结构迟早会变成蜘蛛网。