Oracle_创建和管理表

--创建表
SQL> create table test1
  2  (tid number,
  3   tname varchar2(20),
  4   hidatedate date default sysdate);--->default表示默认值


--快速建表
SQL> --创建表:包含员工号 姓名 月薪 年薪 部门名称
SQL> create table empincome
  2  as
  3  select empno,ename,sal,sal*12 annlsal,dname
  4  from emp e, dept d
  5  where e.deptno=d.deptno;

--rowid 行地址
SQL> select rowid,empno,ename from emp;

--修改表: 追加新列 修改列 删除列  重命名列
SQL> alter table test1 add photo blob;------------------》追加新列 blob为二进制型
SQL> alter table test1 modify tname varchar2(40);-------》修改列
SQL> alter table test1 drop column photo;---------------》删除列
SQL> alter table test1 rename column tname to username;-》重命名列

--删除表
SQL> drop table TESTDELETE;
---------------------》没有purge,所以删除的表在Oracle回收站

SQL> show recyclebin----》查看回收站
                                                      
SQL> purge recyclebin---》清空回收站

--彻底删除表
SQL> drop table test1 purge;---回收站也将不存在

-- check约束
SQL> create table test2
  2  (tid number,
  3   tname varchar2(20),
  4   gender varchar2(4) check (gender in ('男','女')),
  5   sal number check (sal >0 )
  6  );

SQL> insert into test2 values(1,'Tom','啊',1000);
第 1 行出现错误:
ORA-02290: 违反检查约束条件 (SCOTT.SYS_C006031)
---------------------------------》SYS_C006031是系统命名的是哪个约束错误,
       可以自己在创建约束的时候自己命名,方便检查

---constraint自己命名约束
  1  create table myperson(
  2   pid varchar2(18) constraint myperson_PK primary key,
  3   pname varchar2(4) constraint myperson_Name not null,
  4   gender varchar2(4) constraint myperson_Gender check (gender in ('男','女')),
  5   email varchar2(30) constraint myperson_Email UNIQUE,
  6   deptno number constraint myperson_FK references dept(deptno) ON DELETE CASCADE
  7  );
------------》ON DELETE CASCADE约束:如果dept表删除了某部门号,会将myperson的全部所有数据全删除,需慎重
       ON DELETE SET NULL约束:只会将myperson相关的数据删除 

SQL> insert into myperson values('p001','tom','男','tom@126.com',10);

SQL> insert into myperson values('p002','tom','啊','tom123@126.com',10);
第 1 行出现错误:
ORA-02290: 违反检查约束条件 (SCOTT.MYPERSON_GENDER) -----》提示的是自己命名的约束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值