oracle —— 数据表

学习 —— 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;

五、删除表

详情见drop、truncate和delete的区别

1.删除内容

1)delete删除

commit;
delete from tb_name where XXX;
rollback;

delete可以用where指定,不会释放索引、约束等,可以被回滚。

2)truncate截断

turncate table tb_name;

会同时释放索引约束等,且无法被回滚

2.删除结构

drop table tb_name; 

表的结构、约束、索引、触发等都消失了。

六、总结
oracle —— 数据表
图片地址:https://doc.shiyanlou.com/document-uid8797labid4716timestamp1520408411343.png

oracle —— 数据表

上一篇:Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) Problem D (Codeforces 831D) - 贪心 - 二分答案 - 动态规划


下一篇:GDB常用命令与Visual Studio对比