oracle入坑日记<五>数据表

时间:2022-07-20 09:55:50

1
数据表

1.1、数据表是存放数据字段信息的地方;在Oracle,数据表拥有者单位是用户,同时数据表属于表空间。如:oracle入坑日记<五>数据表 登录my_user用户在orcl表空间下创建的表就是 my_user用户在ocrl表空间下的数据表(有点绕,多用用就了解了

2
创建数据表

2.1、创建数据表

create table RYXXB(    -- 创建表名
RYID number(5) primary key, -- primary key 设置主键
RYXX varchar(10) not null, -- not null 不可为空
RYBH varchar(10) unique, -- unique 唯一约束
RYXB char(4) default '男' check(RYXB in ('男','女')), --check条件约束 默认值为'男'
RYNL number(3) check(RYNL > 1 and RYNL < 101) --check条件约束(同时满足多条件)
);
create table RYSFB(    -- 创建表名
SFID number(5) primary key, -- primary key 设置主键
RYID number(5) references RYXXB(RYID), -- references 外键约束
SFSM varchar2(100)
);

2.2、数据类型(这里仅介绍常用数据类型

  2.2.1、number(数字) : number(3) 三位整数(最大值999),number(3,5) 整数部分三位,小数部分五位的小数(最大值999.99999);

  2.2.2、char(定长字符) : char(5) 长度为5的字符,若长度不足5自动以空格填满;

  2.2.3、varchar2(变长字符):varchar2(5)最大字符长度为5,若长度不足5不会自动空格填满;

  2.2.4、clob(大文本):储存较多文字数据,比如,新闻,文章,介绍等;

  2.2.5、blob(其他文件):储存图片,音频,视频等文件,将文件以二进制方式存储(好像2G以下文件都能用这个类型存);

  2.2.6、datetimestamp(时间):两个都是用来储存时间,且都是可以储存 年月日 时分秒,但是timestamp的精确度更高;

     date:oracle入坑日记<五>数据表 timestamp:oracle入坑日记<五>数据表

     数据库同时执行多条命令时,不到一秒就能执行完毕,如果用date记录对某条数据操作的先后是做不到的,这种情况使用timestamp就可以看到操作记录的先后;

  2.2.7、nvarchar2(变长字符):与varchar同为变长字符,二者区别详见此处

  2.2.8、更多数据类型,作为SQLserver的用户,表示没有int 没有bit 有点不习惯。

  oracle入坑日记<五>数据表

2.3、约束类似(这里仅介绍常用约束类型

  2.3.1、primary key(主键约束):不可为空,一张表有且只有一个主键不可重复(可以有复合主键)。

  2.3.2、references(外键约束):关联另一张表,两张表字段相关联,无法单独删除父表被关联字段数据(仅为普通外键,还有级联外键约束、置空外键约束 详见此处 )。

  2.3.3、check(检查约束):自定义约束条件。

  2.3.4、not null(非空约束):该字段不可为空。

  2.3.5、unique(唯一约束):唯一性约束指表中一个字段或者多个字段联合起来能够唯一标识一条记录的约束。联合字段中,可以包含空值。

  2.3.6、unique和primary key非常像,都有唯一性,组合性。二者也有区别:(二者区别详见此处

    2.3.6.1、primary key所有组成主键的列都不能包含空值,而unique 如果唯一性约束由多列组成,其中的部分列可以包含空值。

    2.3.6.2、同一列不能即为primary key 又为 unique ,二者只能选其一。

3
删除数据表

 3.1、删除数据表  drop table [user].[tablename]; --[user]操作其他用户表是需指定用户

4
清空表数据

 4.1、清空表数据有两种方法 delete truncate

  truncate: truncate table [user].[tablename]; --[user]操作其他用户表时需指定用户

  delete: delete from [user].[tablename]; --[user]操作其他用户时需指定用户

4.2、truncate、delete 区别

  delete: 会产生rollback(回滚事务),如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments(回滚事务)。

  truncate:是DDL操作,不产生rollback,速度快,truncate 慎重使用一旦清除 数据无法rollback segments(回滚事务)恢复。

<<============================================================================================================================================>>

此日记系列仅做普通开发使用Oracle,并非专业DBA