学习 —— https://www.lanqiao.cn/courses/1048
create table tb_name(
列名 类型 (默认值 约束),
......
);
desc student; -- 查看表结构
create table tb_name
as
select语句; -- where 1 = 2 可以指复制结构而不复制数据
rename tb_name to tb_new_name;
alter table tb_name rename to tb_new_name;
alter table tb_name
add(列名 类型 (默认值 约束); -- 也可以用来增加约束
alter table tb_name
modify(修改内容);
alter table tb_name
rename column col_name to col_new_name;
alter table tb_name
drop column col_name;
alter table tb_name
drop(col_name1,...); -- 可以删除多列
-- 删除某个列可能会花很多时间,不可用可以直接拒绝用户访问这个列
alter table tb_name
set column col_name unused;
alter table tb_name
set unused(col1, col2,...);
alter table tb_name
drop unused columns; -- 删除不可用的列
create table tb_name(
列名 类型 (默认值) not null, -- 可在创建列时添加
...
);
alter table tb_name add(
列名 类型 (默认值)unique, -- 创建时添加
);
alter table tb_name add(
num number,
constraint uk_num unique(num)
); -- 推荐添加自定义名字的约束
create table tb_name(
id number,
...,
constraint pk_id primary key(id)
);
alter table tb_name1(
constraint fk_colname foreign key(colname1)
reference tb_name2(colname2) on delete cascade; -- on delete cascade解释见下
);
原文链接:https://zhidao.baidu.com/question/113831827.html
on update 和 on delete 后面可以跟的词语有四个
no action , set null , set default ,cascade
no action 表示 不做任何操作,
set null 表示在外键表中将相应字段设置为null
set default 表示设置为默认值
cascade 表示级联操作,就是说,如果主键表中被参考字段更新,外键表中也更新,主键表中的记录被删除,外键表中改行也相应删除
alter table tb_name(
...,
constraint chk_name check(判断);
);
alter table tb_name drop constraint k_name;
commit;
delete from tb_name where XXX;
rollback;
delete可以用where指定,不会释放索引、约束等,可以被回滚。
turncate table tb_name;
会同时释放索引约束等,且无法被回滚
drop table tb_name;
表的结构、约束、索引、触发等都消失了。
六、总结
图片地址:https://doc.shiyanlou.com/document-uid8797labid4716timestamp1520408411343.png
原文:https://www.cnblogs.com/yeluoweiluo/p/14479827.html