alter語句

8 篇文章 0 订阅
SQL> --創建表order_status2
SQL> CREATE TABLE order_status2 (
  2  id INTEGER
  3  CONSTRAINT order_status2_pk PRIMARY KEY,
  4  status VARCHAR2(10),
  5  last_modified DATE DEFAULT SYSDATE
  6  );


SQL> --在表order_status2中增加一個字段modified_by
SQL> ALTER TABLE order_status2
  2  ADD modified_by INTEGER;


SQL> --在表order_status2中增加一個字段initially_created
SQL> ALTER TABLE order_status2
  2  ADD initially_created DATE DEFAULT SYSDATE NOT NULL;


SQL> --修改表order_status2中status字段的長度從varchar2(10)為varchar2(15)
SQL> ALTER TABLE order_status2
  2  MODIFY status VARCHAR2(15);


SQL> --修改表order_status2的id字段從number(38)為number(5)
SQL> ALTER TABLE order_status2
  2  MODIFY id NUMBER(5);


SQL> --修改order_status2中字段status的數據類型
SQL> ALTER TABLE order_status2
  2  MODIFY status CHAR(15);


SQL> --修改列的默認值
SQL> ALTER TABLE order_status2
  2  MODIFY last_modified DEFAULT SYSDATE-1;


SQL> --刪除列
SQL> ALTER TABLE order_status2
  2  DROP COLUMN initially_created;


SQL> --CHECK約束
SQL> ALTER TABLE order_status2
  2  ADD CONSTRAINT order_status2_status_ck
  3  CHECK (status IN ('PLACED','PENDING','SHIPPED'));


SQL> ALTER TABLE order_status2
  2  ADD CONSTRAINT order_status2_id_ck CHECK (id>0);


SQL> --NOT NULL約束
SQL> ALTER TABLE order_status2
  2  MODIFY status CONSTRAINT order_status2_status_nn NOT NULL;


SQL> --NOT NULL約束,注意此處增加NOT NULL約束使用的是MODIFY關鍵字而不是ADD
SQL> --CONSTRAINT后面跟的是該約束的名稱,
SQL> --雖然不使用CONSTRAINT指定名稱,數據庫會自動分配一個約束的名稱,
SQL> --但是這樣并不利于數據庫的維護,建議再增加約束時指定有意義的約束名稱
SQL> ALTER TABLE order_status2
  2  MODIFY modified_by CONSTRAINT order_status2_modified_by_nn NOT NULL;


SQL> --從order_status表中刪除modified_by列,
SQL> --目地是清楚之前modified_by列上的約束
SQL> ALTER TABLE order_status2
  2  DROP COLUMN modified_by;


SQL> --FOREIGN KEY約束,設置級聯,
SQL> --當刪除employees表中某條記錄,同時刪除order_status2表中相關記錄
SQL> ALTER TABLE order_status2
  2   ADD CONSTRAINT order_status2_modified_by_fk
  3   modified_by REFERENCES employees (employee_id) ON DELETE CASCADE;


SQL> --從order_status表中刪除modified_by列,
SQL> --目地是清楚之前modified_by列上的約束
SQL> ALTER TABLE order_status2
  2  DROP COLUMN modified_by;


SQL> ALTER TABLE order_status2
  2  ADD CONSTRAINT order_status2_modified_by_fk
  3  modified_by REFERENCES employees (employee_id) ON DELETE SET NULL;


SQL> --添加UNIQUE約束
SQL> ALTER TABLE order_status2
  2  ADD CONSTRAINT order_status2_status_uq UNIQUE (status);


--刪除約束
ALTER TABLE order_status2
DROP CONSTRAINT order_status2_status_uq;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值