数据库

 

数据库对象



表的创建
前提条件
1. 具备创建表的权限
2. 有可用的存储空间
语法



Varchar2实际存储空间是可变的,而且不用考虑空格问题

说明
1. 追寻表必须指定表名,字段名,和每一个字段类型
2. create table 为DDL语句,一经执行不可撤消

使用子查询创建表

在创建表的同时,可以将子查询的查询的结果直接插入其中
1. 新建表的与子查询结果的字段列表必须匹配
2. 新建表的字段可以缺省
语法格式


如果有字段是用表达式时,则必须要加别名



修改表

1. 增加新的字段.
alter table table
add(
grade number(3),
phone varchar2(20) default ‘无’
)
2. 修改字段
alter table table
modify(column datatype [default ecpr][,column daatatype]….);
DEMO
alter table table
modify(
grade number(2),
phone varchar2(15) default’000-1234567’
)
说明:

修改操作会受到当前表中已有数据的影响------当已有记录的相应字段只包含空值时,类型、大小都可以修改,否则修改可能失败。
修改的缺省值设置时,只对此后新插入的记录有效
3. 删除字段
alter table table
drop (column[,column]…..);
alter table test1
drop(grade,phone);
4. 清空表中所有数据
清空表中所有数据,释放表的存储空间,为DDL语句,一经执行不可撤消
truncate table table;
truncate table test2;
5. 删除表
表中所有数据将被删除,此前末完成的事务将被提交,所有相关的索引被删除
为DDL语名,一经执行不可撤消。
drop table table;
drop table test1;
6. oracle 数据库中的表
有俩部分,一部分是用用户自己创建,一部分是数据字典
数据字典是oracle 数据库的核心,用于描述数据库及其所有对象
数据字典由一系列只读表和视图组成,这些表和视图由sys用户拥有,由Oracle server负责维护,用户可以通过select语句进行访问
主要内容有
(1).数据库的批物理和逻辑结构
(2).对象的定义和空间的分配
(3).完整性的约束
(4).用户
(5).角色
(6).权限
(7).审计记录

数据视图
dba ---所有方案包含的对象信息
all ----用户可以访问的对象信息
user---用户方案的对象信息



约束
约束(Constraint) 是在表中上强制执行的数据校验规则,用于保护数据的完整性,具体包括如下五种

Not null 非空约束
Unique key 唯一约束
Primary key 主键
Foreign key 外键
Check 检查约束

相关说明
Oracle使用SYS_Cn命名约束,也可以用户自己命名

创建表的同时创建约束

Create table [schema.]table(
Column datatype [default expr] [column_constraint],
……
)

建表以后创建约束

1. not null
确保字段不能为空,只能是字段级的约束.
create table student(
sid number(3) not null,//约束名称默认
name varchar2(20),
birth date constraint student_birth_nn not null //约束名自己命名
)
select * from user_constraints where lower(table_name) =’student’
2. 唯一性约束(unique)
特点:
(1).字段{或字段组合不出现重复}
(2).允许出现空值
(3).oracle 会自动为唯一性约束创建对应的唯一性索引
(4).唯一性约束可以在字段级定义,也可以在表级定义
create table student(
sid number(3) unique,
name varchar2(20)
)

create table student(
sid number(3) ,
name varchar2(20),
constraint student_sid_nu unique(sid)
)
create table student(
sid number(3) ,
name varchar2(20),
constraint student_sid_nu unique(sid,name)
)
3. primary key

主键用于标识表中的某一行记录,功能上相当于非空且唯一
一个表中只允许一个主键,主键可以是单个字段或多个字段的组合
oracle会动为主键字段创建对应的唯一性索引
主键约束可以在字段级定义,也可以在表级定义
create table student(
sid number(3) primary key,
name varchar2(20)
)
create table student(
sid number(3),
name varchar2(20),
constraint student_sid_pk primary key(sid)
)

联合主键
由多个字段组成,每一个字段都不可以为空,字段组合不能出现重复,只能定义为表级约束
create table student(
sid number(3),
name varchar2(20),
constraint student_sid_pk primary key(sid,name)
)


4. foreign key
特点:用于确保相关的两个字段之间的参照关系,以祥瑞参照完整性约束
外键约束通常构建于来自不同表的两个字段之间
子表外键列的值必须在主表参照列值的范围内,或者为空
外键参照的值必须是主表上的主键或唯一键
主表外键值被子表参照时,主表相应记录不允许被删除








5. 检查约束(check)
检查约束特点:

create table test1 (
name varchar2(20) check(length(name)>6),
ager number(3) check(age >=0 and age <=120)
)
create table test1 (
name varchar2(20) check(name is not null),
age number(3) check(age >=0 and age <=120)
)

6. 总结
域完整性约 check// not null
实体完整性约束 unique//primary key
参照完整性约束 foreign

7. 查看约束
查询用户字典视图user_constraints
可以得到用户的所有约束
查询用户字典视图user_cons_columns 可获知约束建立在哪些字段上//
8. 建表以后加约束



9. 删除约束


10. 删除级连约束


11. 禁用约束


12. 启用约束
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值