1.8 Oracle数据库学习教程-创建和管理表

Oracle数据库学习教程

创建和管理表

数据库的对象:表、视图、索引、序列、同义词、存储过程、存储函数、触发器、包、包体、数据库链路(datalink)、快照。(12个)

  • 表:基本的数据存储集合,由行和列组成。
  • 视图:从表中抽出的逻辑上相关的数据集合。
  • 序列:提供有规律的数值。
  • 索引:提高查询的效率
  • 同义词:给对象起别名

表的基本操作

基本的数据存储集合,由行和列组成。表名和列名遵循如下命名规则:

  • 必须以字母开头
  • 必须在 1–30 个字符之间
  • 必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
  • 必须不能和用户定义的其他对象重名
  • 必须不能是Oracle 的保留字
  • Oracle默认存储是都存为大写
  • 数据库名只能是1~8位,datalink可以是128位,和其他一些特殊字符

1. 创建表create table

  • 必须拥有create table的权限,还有存储空间

20211007155628
rowid:行地址 ——伪列:创建索引用

create table test1 (tid number, tname varchar2(20), hiredate date default sysdate)
default的作用是,当向表中插入数据的时候,没有指定时间的时候,使用默认值sysdate。

create table emp20 as select * from emp where deptno=20
这样emp20在创建之初就有数据.where条件为假时,只拷贝表结构.

创建视图和创建表基本一样.只是把table换成view.

2.修改表alter table

alter table test1 add image blob;
追加一列blob类型的image列

alter table test1 modify tname varchar2(40)
改tname列varchar类型大小

alter table test1 drop column image;
删除image列

alter table test1 rename column tname to username;
将列tname改名为username.

删除列drop table

不能回滚,但支持闪回

drop table emp10;
可以去回收站找回.
drop table test1 purge;
彻底删除.

Oracle回收站:show recyclebin;,不是emp10,要使用复杂长的名字

清空回收站:purge recyclebin;

20211007163026
20211007163043

重命名表

rename emp10 to emp9;

约束

数据库约束有五种:

  • 主键约束(PRIMARY KEY)
  • 唯一性约束(UNIQUE)
  • 非空约束(NOT NULL)
  • 外键约束(FOREIGN KEY)
  • 检查约束(CHECK)
  1. 主键约束:唯一且非空
    1. 内联约束:create table demo(id NUMBER primary key,name varchar(20))
    2. 外约束:create table demo(id NUMBER,name varchar(20),constraint pk_demo primary key(id));
      1. pk_demo是约束名,任取,删除主键约束:alter table demo drop constraint pk_demo
      2. 可以多个列项一起组成复合主键
      3. 如果需要将大量数据插入表中,可以暂时禁用约束,alter table demo disable constraint pk_demo,启用时用enable
  2. 唯一性约束
    1. 内联约束:create table demo(id NUMBER unique,name varchar(20))
    2. 使用方法类同主键约束
  3. 非空约束
    1. create table demo (id number,name varchar(20) not null);
    2. alter table demo modify(name not null);
    3. 删除:alter table demo modify(name null);
  4. 外键约束:表与表的关系(子表某列的值只能在父表某列中取)
    1. create table child(... constraint fk_name foreign key(列1..) references parent(列a..) on delete [cascade/set null]);
      1. cascade:如果父项的一行被删,子表对应的都删除
      2. set null:如果父项一行被删,子表对应的都设null
    2. 删除,禁用,启用同上
  5. 检查约束:
    1. 添加检查约束后,插入数据时,只有符合条件才能正常插入.
    2. create table demo ( name varcher(20) check(条件),...);
    3. constraint check_name check (条件);
    4. 例子:create table parts(...,price NUMBER(price > 100))
    5. 检查约束可添加到表上,ALTER TABLE table_name ADD CONSTRAINT check_constraint_name CHECK(expression);

这部分没有深入学习.有需要得再进行学习.

本文来自博客园,作者:Ovins,转载请注明原文链接:https://www.cnblogs.com/ovins/p/15412944.html

喜欢请点关注❤️ ❤️ ❤️
原文地址:https://www.cnblogs.com/ovins/p/15412944.html