Oracle数据库学习教程
创建和管理表
数据库的对象:表、视图、索引、序列、同义词、存储过程、存储函数、触发器、包、包体、数据库链路(datalink)、快照。(12个)
- 表:基本的数据存储集合,由行和列组成。
- 视图:从表中抽出的逻辑上相关的数据集合。
- 序列:提供有规律的数值。
- 索引:提高查询的效率
- 同义词:给对象起别名
表的基本操作
基本的数据存储集合,由行和列组成。表名和列名遵循如下命名规则:
- 必须以字母开头
- 必须在 1–30 个字符之间
- 必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
- 必须不能和用户定义的其他对象重名
- 必须不能是Oracle 的保留字
- Oracle默认存储是都存为大写
- 数据库名只能是1~8位,datalink可以是128位,和其他一些特殊字符
1. 创建表create table
- 必须拥有create table的权限,还有存储空间
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;
重命名表
rename emp10 to emp9;
约束
数据库约束有五种:
- 主键约束(PRIMARY KEY)
- 唯一性约束(UNIQUE)
- 非空约束(NOT NULL)
- 外键约束(FOREIGN KEY)
- 检查约束(CHECK)
- 主键约束:唯一且非空
- 内联约束:
create table demo(id NUMBER primary key,name varchar(20))
- 外约束:
create table demo(id NUMBER,name varchar(20),constraint pk_demo primary key(id));
- pk_demo是约束名,任取,删除主键约束:
alter table demo drop constraint pk_demo
- 可以多个列项一起组成复合主键
- 如果需要将大量数据插入表中,可以暂时禁用约束,
alter table demo disable constraint pk_demo
,启用时用enable
- pk_demo是约束名,任取,删除主键约束:
- 内联约束:
- 唯一性约束
- 内联约束:
create table demo(id NUMBER unique,name varchar(20))
- 使用方法类同主键约束
- 内联约束:
- 非空约束
create table demo (id number,name varchar(20) not null);
alter table demo modify(name not null);
- 删除:
alter table demo modify(name null);
- 外键约束:表与表的关系(子表某列的值只能在父表某列中取)
create table child(... constraint fk_name foreign key(列1..) references parent(列a..) on delete [cascade/set null])
;- cascade:如果父项的一行被删,子表对应的都删除
- set null:如果父项一行被删,子表对应的都设null
- 删除,禁用,启用同上
- 检查约束:
- 添加检查约束后,插入数据时,只有符合条件才能正常插入.
create table demo ( name varcher(20) check(条件),...);
constraint check_name check (条件);
- 例子:
create table parts(...,price NUMBER(price > 100))
- 检查约束可添加到表上,
ALTER TABLE table_name ADD CONSTRAINT check_constraint_name CHECK(expression);
这部分没有深入学习.有需要得再进行学习.