Oracle学习总结09——表的操作

1-[创建数据表] createtable 代码手敲 且增加注释 问题:字段为系统默认日期怎么定义?

--创建students表
create table students(
  stuno number(10) not null,
 stuname varchar2(8),
 sex char(2),
 age int,
 departno varchar2(2) not null,
 classno varchar2(4) not null,
 --默认系统时间
 regdate date default sysdate
 );

在这里插入图片描述
2-表和用户是什么关系?

创建过程:用户—>表,一个用户可以创建多个表,而一个表可以被多个用户操作。
从用户的角度来看,数据表的逻辑结构是一张二维的平面表,即表由纵向的标记列和横向的标记行两部分组 成。表通过行和列来组织数据。通常称表中的一行为一条记录,表中的一列为属性列。一条记录描述一个实体,一个属性列描述实体的一一个属性,如,雇员有雇员编号、雇员姓名、雇员岗位等属性;学生有学生编号、姓名、所在学校等属性。每个列都具有列名、列数据类型、列长度,可能还有约束条件、默认值等,这些内容在创建表时即被确定。
在Oracle中,有多种类型的表。不同类型的表各有一些特殊的属性。 适应于保存某种特殊的数据、进行某些特殊的操作,在某些方面可能比其他类型的表的性能更好,如处理速度更快、占用磁盘空间更少。表一般指的是一个关系表,也可以生成对象表及临时表。其中,对象表是通过用户定义的数据类型生成的,临时表用于存储专用于某个事务或者会话的临时数据

3-用户和表空间什么关系?
用户:创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间,创建用户后,可以在用户上,创建表、存储过程等等其他数据库对象
表空间:创建表空间会在物理磁盘上建立一个数据文件,作为数据库对象(用户、表、存储过程等等)的物理存储空间;

4-总结 表、用户、表空间、数据文件的关系…
有create table的权限就可以使用表空间,

5-写出根据A表直接创建B表的SQL…

create table students_2
as select *
from scott.students;

在这里插入图片描述

6-[创建数据表] createtable_initial 代码手敲 且增加注释 同 createtable 代码区别是什么?

 create table students_3(
  stuno number(10) not null,
 stuname varchar2(8),
 sex char(2),
 age int,
 departno varchar2(2) not null,
 classno varchar2(4) not null,
 regdate date default sysdate
 )tablespace TBS_TEST_3
storage(initial 256k);

在这里插入图片描述
7-写出根据表名查询表所属表空间的SQL…

select tablespace_name from dba_tables where table_name = 'STUDENTS';

在这里插入图片描述

8-[创建数据表] createtable_nologging 代码手敲 且增加注释

--创建表students_3
 create table students_3(
  stuno number(10) not null,
 stuname varchar2(8),
 sex char(2),
 age int,
 departno varchar2(2) not null,
 classno varchar2(4) not null,
 regdate date default sysdate
 )
 --指定表空间
 tablespace TBS_TEST_3
 --分配默认的256K空间内存
storage(initial 256k)
--存储参数:pctfree用于指定数据库必须保留的最小空间比例,当数据块达到PCTFREE参数的限制后,该数据块将被标记为不可用,默认值为10
pctfree 20
--数据块管理参数:pctfree用于指定数据库必须保留的最小空间比例,当数据块达到PCTFREE参数的限制后,该数据块将被标记为不可用,默认值为10
--pctused:用于设置数据块是否可用的界限。也就是说,为了使数据块能够被再次使用,已经占用的存储空间必须低于PCTUSED设置的比例
pctused 40
--指定在数据块头部存放10个事务条目:
initrans 10
--重做日志参数:nologging是尽量减少日志
nologging;

在这里插入图片描述
9-写出 已存在的表中 增加字段的SQL…

--增加provience字段
alter table students_3 add(provience varchar(6));

在这里插入图片描述
10-写出 已存在的表中 删除字段的SQL…

alter table students_3 drop column provience;

在这里插入图片描述
11-写出 已存在的表中 修改字段的SQL…

--alter...modify
alter table students_3 modify departno varchar2(4);

在这里插入图片描述

12-写出 已存在的表 修改表名的SQL…

--rename to
alter table students_3 rename to students_4;

在这里插入图片描述
在这里插入图片描述
13-写出 更改已存在表的表空间SQL…

alter table TBS_TEST_3.students_3 move tablespace USERS;

14-写出 已存在的表 删除表的SQL…以及注意事项是什么?
需要注意的是,一般情况下用户只能删除自己模式中的表,如果要删除其它模式中的表,则必须具有DROP ANY TABLE系统权限。

drop table students;

在这里插入图片描述
在这里插入图片描述
15-写出 已存在的表 更改其为只读状态SQL…

alter table students_4 read only;

在这里插入图片描述
16-写出 已存在的表 更改其为非只读状态SQL…

alter table students_4 read write;

在这里插入图片描述
17-写出 已存在的表 修改列为非空约束的SQL…

--已创建books_1表
alter table books_1 modify bookname not null;

在这里插入图片描述
18-行级约束和表级约束的区别是什么?
主键约束用于唯一地标识表中的每一行记录。在一个表中,最多只能有一个主键约束,主键约束既可以由一个列组成,也可以由两个或两个以上的列组成(这种称为联合主键)。对于表中的每一行数据,主键约束列都是不同的,主键约束同时也具有非空约束的特性。
如果主键约束由一列组成时,该主键约束被称为行级约束。如果主键约束由两个或两个以上的列组成时,则该主键约束被称为表级约束。

19-UNIQUE 的作用是什么?
唯一性(UNIQUE)约束强调所在的列不允许有相同的值。但是,它的定义要比主键约束弱,即它所在的列允许空值(但主键约束列是不允许为空值的)。唯一性约束的主要作用是在保证除主键列外,其它列值的唯一性。
在一个表中,根据实际情况可能有多个列的数据都不允许存在相同值。例如,各种“会员表”的QQ、Email等列的值是不允许重复的(但用户可能不提供,这样就必须允许为空值),但是由于在一个表中最多只能由一个主键约束存在,那么如何解决这种多个列都不允许重复数据存在的问题呢?这就是唯一性约束的作用。若要设置某个列为UNIQUE约束,通常使用CONSTRAINT…UNIQUE标记该列。

20-写出 删除已存在的约束SQL…

--添加约束
alter table Books add constraint Books_PK primary key(BookNo);

在这里插入图片描述

--删除约束
alter table BOOKS drop constraint Book_PK;

在这里插入图片描述

21-写出 禁用已存在的约束SQL…
定义约束时用disable可以禁用
已经存在的约束ALTER TABL…DISABLE CONSTRAINT语句禁止该约束。

--禁用已存在的约束
alter table BOOKS disable constraint Books_PK;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值