创建表
create table 表名(字段 类型,字段 类型)
create table employee(id number,
name varchar2(20),
pass varchar2(20)
);
通过查询创建一张新表
create table emp1 as select empno,ename,job from employee;
删除表
drop table 表名
drop table emp1
添加字段
alter table 表名 add 字段;
alter table employee add (dept varchar2(50));
修改字段的类型
alter table employee modify (dept char(2));
删除一个字段
alter table employee drop column dept;
五个约束
primary key
foreign key
not null
unique
check
实例:
部门
create table dept(did number primary key,
name varchar2(100) unique
);
经理,外键为列级
create table manager(mid number primary key,
dept number references dept(did),
name varchar2(20) not null,
sex char(2) check(sex in('男','女')),
email varchar2(40) unique
);
经理,外键为表级
create table manager(mid number,
dept number,
name varchar2(20) not null,
sex char(2) check(sex in('男','女')),
email varchar2(40) unique,
constraint pk_g primary key(mid),
constraint fk_g foreign key(dept) references dept(did)
);
使用alter添加主外键
alter table manager add constraint pk_g primary key (mid)
alter table manager add constraint fk_g foreign key(dept) references dept(did)
删除约束
alter table manager drop constraint fk_g;
清空表 ,不能回滚
truncate table manager;
修改表名称
rename dept to newdept;
根据条件删除
delete from manager where mid=1;
删除所有的记录
delete from manager;
commit;
回滚
rollback;
设置一个保存点
savepoint aa;
rollback to aa; 回滚
外键的级联
on update 和 on delete 后面可以跟的词语有四个:
no action 表示不做任何操作,
set null 表示在外键表中将相应字段设置为null
set default 表示设置为默认值
cascade 表示级联操作,就是说,如果主键表中被参考字段更新,外键表中也更新,主键表中的记录被删除,外键表中改行也相应删除
create table people(id number( primary key,
name varchar2(40),
mid number references manager(mid) on delete set null
)
添加注释,也可以在创建表是加在字段后
comment on table table_name is '表注释';
comment on column table_name.columns is '列注释';
当前用户的表 ,all_tables为所有用户的,dba_tables包括系统表在内的
select table_name from user_tables;
获取当前用户表字段,all_tab_columns,dba_tab_columns
select * from user_tab_columns where table_name='用户表';
获取表注释
select * from user_tab_comments
获取字段注释
select * from user_col_comments