--创建表
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) -----》提示的是自己命名的约束