Oracle建表、索引、主键

来源:互联网 发布:linux系统编辑文件 编辑:程序博客网 时间:2024/06/05 07:30
--主键
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,name varchar(8),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),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));

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 seqtabstart with 2 –从2开始increment by 3—每次加3nomaxvalue—没有最大值minvalue 1—最小值1nocycle—不循环nocache;--不缓存--修改序列 ,不能修改起始值alter sequence seqtabmaxvalue 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 HooMSdatafile 'E:\HooMS.dbf'size 5Mautoextend on next 2M maxsize 10M;--创建用户、分配可以操作表空间create user hooidentified by hoodefault tablespace HooMStemporary tablespace temp;--创建表空间create tablespace myMSdatafile 'c:\myMS.dbf'size 1Mautoextend on;--扩展表空间--修改表空间大小alter databasedatafile 'c:\myMS.dbf'resize 2M;--扩展表空间--添加数据文件alter tablespace myMSadd datafile 'c:\myMS_2.dbf'size 1M;--设置dbf文件自动增长alter databasedatafile 'c:\myMS_2.dbf'autoextend on next 2M maxsize 4M;--表空间重命名alter tablespace myMSrename to hooMS;--分离表空间(脱机)alter tablespace hooMSoffline temporary;--归档模式下脱机alter tablespace hooMSoffline immediate;--使表空间联机alter tablespace hooMS online;--删除无数据的表空间drop tablespace hooMS;--删除带数据的表空间drop tablespace hooMSincluding contents;


1 0