加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle建表、索引、主键

发布时间:2020-12-12 14:58:24 所属栏目:百科 来源:网络整理
导读:--主键 create table emp (id number constraint id_pr primary key,name1 varchar(8)); create table emp9 (id number,name1 varchar(8),constraint aba_pr primary key(id,name1)); --外键 create table emp1(id number references emp(id),name varchar(8)
--主键
create table emp (id number constraint id_pr primary key,name1 varchar(8));
create table emp9 (id number,name1 varchar(8),constraint aba_pr primary key(id,name1));
--外键
create table emp1(id number references emp(id),name varchar(8));
--复合外键
create table emp0(id number,name varchar(8),constraint fk_nam1e foreign key(id,name) references emp9(id,name1));


--主键另外写法
create table emp2(id number,id1 number,constraint pk_id primary key(id),constraint fk_name foreign key(id1) references emp(id))
--check 约束的写法

create table emp4(id number check(id in(1,2,3)),name varchar(8));


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),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),email varchar2(25),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)
);

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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读