Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间

简介:
alter table userInfo add(msn varchar2(20));
 
1、建表
    create table userInfo (
       id number(6),
       name varchar2(20),
       sex number(1),
       age number(3),
       birthday date,
       address varchar2(50),
       email varchar2(25),
       tel number(11)
    );
 
2、创建约束
    不带约束名称的:
    create table userInfo (
       id number(6) primary key,--主键
       name varchar2(20) not null,--非空
       sex number(1),
       age number(3) default 18,
       birthday date,
       address varchar2(50),
       email varchar2(25) unique,--唯一
       tel number(11),
       deptno number(2) references dept(deptno)—外键
    ); 
   
    带约束名称:
    create table userInfo (
           id number(6) constraint id_pk primary key,
           name varchar2(20) constraint name_nn not null,
           sex number(1),
           age number(3) default 18,
           birthday date,
           address varchar2(50),
           email varchar2(25) constraint email_uqe unique,
           tel number(11),
           deptno number(2) constraint dept_deptno_ref references dept(deptno)
    );
 
    列模式:
    create table userInfo (
           id number(6),
           name varchar2(20),
           sex number(1),
           age number(3) default 18,
           birthday date,
           address varchar2(50),
           email varchar2(25),
           tel number(11),
           deptno number(2),
           constraint id_pk primary key (id),--也可以两个以上,联合主键
           constraint dept_deptno_ref foreign key (deptno) references dept(deptno),
           constraint emial_name_uqe unique (email, name)
    );
    Alter模式:
        alter table userInfo add(msn varchar2(20));
        alter table userInfo modify(msn varchar2(25));
        alter table userInfo drop(msn);
        
        alter table userInfo drop constraint id_pk;
        alter table userInfo add constraint id_pk primary key (id);
 
3、创建视图
    create table v$_dept_view
    as
    select deptno, dname from dept;
    
    --重新编译视图
    alter view v$_dept_view compile;
    提示:视图一般是一个表或多个表的查询或子查询,这样可以减少代码量,但同时增加了对数据库视图的维护程度,如:某个表字段被删除或是修改,视图也要重新创建或修改,同时占用了数据库的一部分空间;视图就是一个虚拟的表格;
 
4、创建索引
    普通索引:create index idx_dpt_dname on dept(dname);
    联合索引:create index idx_dept_dname_deptno on dept(dname, deptno);
    --唯一索引
    create unique index idx_emp_ename on scott.emp(ename);
    --反向键索引
    create index idx_emp_rev_no on scott.emp(empno) reverse;
    --位图索引
    create bitmap index idx_emp_name on scott.emp(dname);
    --索引组织表,一定要有主键
    create table tab (
        id int primary key,
        name varchar2(20)
    )    organization index;
    --索引组织表的insert效率非常低
    
    --分区表索引
    create index idx_name on table(col) local/global;
    --索引分区
    提示:当给表创建主键或唯一键约束时,系统也会创建一个约束给该字段;同样创建索引也会占用数据库空间;索引在访问、查询的时候效率有提高,但是在修改表的时候效率就会降低;
 
5、创建序列
    create sequence seq;
    select seq.nextval from dual;
    insert into tab values(sql.nextval, ‘music’);
 
    create sequence seqtab
    start with 2 –从2开始
    increment by 3—每次加3
    nomaxvalue—没有最大值
    minvalue 1—最小值1
    nocycle—不循环
    nocache;--不缓存
    
    --修改序列 ,不能修改起始值
    alter sequence seqtab
    maxvalue 1000;
 
6、创建同义词
    同义词,顾名思义就是说别名、或是另一个名字。
    create synonym scott_emp for scott.emp;
    create public synonym scott_dept for scott.dept;
    
    select * from scott_emp;
    select * from scott_dept;
 
7、创建表空间
    create tablespace HooMS
    datafile 'E:\HooMS.dbf'
    size 5M
    autoextend on next 2M maxsize 10M;
    
    --创建用户、分配可以操作表空间
    create user hoo
    identified by hoo
    default tablespace  HooMS
    temporary tablespace temp;
    
    --创建表空间
    create tablespace myMS
    datafile 'c:\myMS.dbf'
    size 1M
    autoextend on;
    
    --扩展表空间--修改表空间大小
    alter database
    datafile 'c:\myMS.dbf'
    resize 2M;
    
    --扩展表空间--添加数据文件
    alter tablespace myMS
    add datafile 'c:\myMS_2.dbf'
    size 1M;
    
    --设置dbf文件自动增长
    alter database 
    datafile 'c:\myMS_2.dbf'
    autoextend on next 2M maxsize 4M;
    
    --表空间重命名
    alter tablespace myMS
    rename to hooMS;
    
    --分离表空间(脱机)
    alter tablespace hooMS
    offline temporary;
    
    --归档模式下脱机
    alter tablespace hooMS
    offline immediate;
    
    --使表空间联机
    alter tablespace hooMS online;
    
    --删除无数据的表空间
    drop tablespace hooMS;
    
    --删除带数据的表空间
    drop tablespace hooMS
    including contents;
    





本文转自hoojo博客园博客,原文链接:http://www.cnblogs.com/hoojo/archive/2011/05/03/2035328.html,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
36 2
|
3月前
|
SQL Oracle 关系型数据库
Oracle-index索引解读
Oracle-index索引解读
74 0
|
4天前
|
存储 Oracle 关系型数据库
Oracle 12c的多重索引:数据的“多维导航仪”
【4月更文挑战第19天】Oracle 12c的多重索引提升数据查询效率,如同多维导航仪。在同一表上创建针对不同列的多个索引,加速检索过程。虽然过多索引会增加存储和维护成本,但合理选择和使用索引策略,结合位图、函数索引等高级特性,能优化查询,应对复杂场景。数据管理员应善用这些工具,根据需求进行索引管理,支持企业数据分析。
|
4天前
|
缓存 Oracle 关系型数据库
Oracle中的触发器与序列:自增列的魔法组合
【4月更文挑战第19天】Oracle数据库中,通过触发器和序列的组合可实现自增列功能。序列充当自动计数器,提供递增数值,而触发器则在插入新记录时自动分配序列值。创建序列如`CREATE SEQUENCE emp_seq START WITH 1 INCREMENT BY 1 NOCACHE`,然后创建触发器`TRIGGER trg_employees_before_insert`在`BEFORE INSERT`时将序列的下一个值赋予`employee_id`。这种方式使得在插入记录时无需手动设置ID,提高了效率。但使用时需注意序列状态、并发性和性能优化。
|
29天前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析2
oracle基本笔记整理及案例分析2
12 0
|
29天前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析1
oracle基本笔记整理及案例分析1
17 0
|
29天前
|
SQL Oracle 关系型数据库
oracle笔记整理2
oracle笔记整理2
11 0
|
29天前
|
SQL Oracle 关系型数据库
oracle基本笔记整理
oracle基本笔记整理
12 0
|
1月前
|
存储 SQL Oracle
Oracle系列十二:视图、记录、同义词、序列
Oracle系列十二:视图、记录、同义词、序列
|
1月前
|
Oracle 关系型数据库 数据库
Oracle系列之五:Oracle表空间
Oracle系列之五:Oracle表空间

推荐镜像

更多