学习 —— https://www.lanqiao.cn/courses/1048
一、常用数据类型
1. 字符串
- varchar2:变长,但消耗一个字节存长度
- char:定长
2. 数字
- number(p,s): p指数字长度,s指小数位,p和s可不写
3. 日期
- data:可以搭配sysdate,以及TO_DATE()使用
4. 文本
- glob: 可存储4g的文本
二、创建表
1. 直接创建
create table tb_name(
列名 类型 (默认值 约束),
......
);
desc student; -- 查看表结构
2. 查询创建
create table tb_name
as
select语句; -- where 1 = 2 可以指复制结构而不复制数据
三、更改表结构
1.重命名表
rename tb_name to tb_new_name;
alter table tb_name rename to tb_new_name;
2.增加列
alter table tb_name
add(列名 类型 (默认值 约束); -- 也可以用来增加约束
3.修改列
alter table tb_name
modify(修改内容);
3.重命名列
alter table tb_name
rename column col_name to col_new_name;
4.删除列/不可用列
1)删除列
alter table tb_name
drop column col_name;
alter table tb_name
drop(col_name1,...); -- 可以删除多列
2)不可用
-- 删除某个列可能会花很多时间,不可用可以直接拒绝用户访问这个列
alter table tb_name
set column col_name unused;
alter table tb_name
set unused(col1, col2,...);
alter table tb_name
drop unused columns; -- 删除不可用的列
四、约束
1.非空约束
create table tb_name(
列名 类型 (默认值) not null, -- 可在创建列时添加
...
);
2.唯一约束
alter table tb_name add(
列名 类型 (默认值)unique, -- 创建时添加
);
alter table tb_name add(
num number,
constraint uk_num unique(num)
); -- 推荐添加自定义名字的约束
3.主键
create table tb_name(
id number,
...,
constraint pk_id primary key(id)
);
4.外键
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 表示级联操作,就是说,如果主键表中被参考字段更新,外键表中也更新,主键表中的记录被删除,外键表中改行也相应删除
5.检查约束
alter table tb_name(
...,
constraint chk_name check(判断);
);
5.删除约束
alter table tb_name drop constraint k_name;
五、删除表
1.删除内容
1)delete删除
commit;
delete from tb_name where XXX;
rollback;
delete可以用where指定,不会释放索引、约束等,可以被回滚。
2)truncate截断
turncate table tb_name;
会同时释放索引约束等,且无法被回滚
2.删除结构
drop table tb_name;
表的结构、约束、索引、触发等都消失了。
六、总结
图片地址:https://doc.shiyanlou.com/document-uid8797labid4716timestamp1520408411343.png