5.oracle建表的时候同时创建主键,外键,注释,约束,索引
5、oracle建表的时候同时创建主键,外键,注释,约束,索引
1 --主键 2 create table emp (id number constraint id_pr primary key ,name1 varchar(8)); 3 create table emp9 (id number ,name1 varchar(8) ,constraint aba_pr primary key(id,name1)); 4 --外键 5 create table emp1(id number references emp(id),name varchar(8)); 6 --复合外键 7 create table emp0(id number ,name varchar(8) ,constraint fk_nam1e foreign key(id,name) references emp9(id,name1)); 8 9 --主键另外写法 10 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)) 11 --check 约束的写法 12 create table emp4(id number check(id in(1,2 ,3)),name varchar(8)); 13 不带约束名称的: 14 create table userInfo ( 15 id number(6) primary key,--主键 16 name varchar2(20) not null,--非空 17 sex number(1), 18 age number(3) default 18, 19 birthday date, 20 address varchar2(50), 21 email varchar2(25) unique,--唯一 22 tel number(11), 23 deptno number(2) references dept(deptno)—外键 24 ); 25 带约束名称: 26 create table userInfo ( 27 id number(6) constraint id_pk primary key, 28 name varchar2(20) constraint name_nn not null, 29 sex number(1), 30 age number(3) default 18, 31 birthday date, 32 address varchar2(50), 33 email varchar2(25) constraint email_uqe unique, 34 tel number(11), 35 deptno number(2) constraint dept_deptno_ref references dept(deptno) 36 ); 37 38 列模式: 39 create table userInfo ( 40 id number(6), 41 name varchar2(20), 42 sex number(1), 43 age number(3) default 18, 44 birthday date, 45 address varchar2(50), 46 email varchar2(25), 47 tel number(11), 48 deptno number(2), 49 constraint id_pk primary key (id),--也可以两个以上,联合主键 50 constraint dept_deptno_ref foreign key (deptno) references dept(deptno), 51 constraint emial_name_uqe unique (email, name) 52 ); 53 Alter模式: 54 alter table userInfo add(msn varchar2(20)); 55 alter table userInfo modify(msn varchar2(25)); 56 alter table userInfo drop(msn); 57 alter table userInfo drop constraint id_pk; 58 alter table userInfo add constraint id_pk primary key (id); 59 3、创建视图 60 create table v$_dept_view 61 as 62 select deptno, dname from dept; 63 --重新编译视图 64 alter view v$_dept_view compile; 65 提示:视图一般是一个表或多个表的查询或子查询,这样可以减少代码量,但同时增加了对数据库视图的维护程度,如:某个表字段被删除或是修改,视图也要重新创建或修改,同时占用了数据库的一部分空间;视图就是一个虚拟的表格; 66 4、创建索引 67 普通索引:create index idx_dpt_dname on dept(dname); 68 联合索引:create index idx_dept_dname_deptno on dept(dname, deptno); 69 --唯一索引 70 create unique index idx_emp_ename on scott.emp(ename); 71 --反向键索引 72 create index idx_emp_rev_no on scott.emp(empno) reverse; 73 --位图索引 74 create bitmap index idx_emp_name on scott.emp(dname); 75 --索引组织表,一定要有主键 76 create table tab ( 77 id int primary key, 78 name varchar2(20) 79 ) organization index; 80 --索引组织表的insert效率非常低 81 --分区表索引 82 create index idx_name on table(col) local/global; 83 --索引分区 84 提示:当给表创建主键或唯一键约束时,系统也会创建一个约束给该字段;同样创建索引也会占用数据库空间;索引在访问、查询的时候效率有提高,但是在修改表的时候效率就会降低; 85 5、创建序列 86 create sequence seq; 87 select seq.nextval from dual; 88 insert into tab values(sql.nextval, ‘music’); 89 create sequence seqtab 90 start with 2 –从2开始 91 increment by 3—每次加3 92 nomaxvalue—没有最大值 93 minvalue 1—最小值1 94 nocycle—不循环 95 nocache;--不缓存 96 --修改序列 ,不能修改起始值 97 alter sequence seqtab 98 maxvalue 1000; 99 6、创建同义词 100 同义词,顾名思义就是说别名、或是另一个名字。 101 create synonym scott_emp for scott.emp; 102 create public synonym scott_dept for scott.dept; 103 select * from scott_emp; 104 select * from scott_dept; 105 7、创建表空间 106 create tablespace HooMS 107 datafile 'E:\HooMS.dbf' 108 size 5M 109 autoextend on next 2M maxsize 10M; 110 --创建用户、分配可以操作表空间 111 create user hoo 112 identified by hoo 113 default tablespace HooMS 114 temporary tablespace temp; 115 --创建表空间 116 create tablespace myMS 117 datafile 'c:\myMS.dbf' 118 size 1M 119 autoextend on; 120 --扩展表空间--修改表空间大小 121 alter database 122 datafile 'c:\myMS.dbf' 123 resize 2M; 124 --扩展表空间--添加数据文件 125 alter tablespace myMS 126 add datafile 'c:\myMS_2.dbf' 127 size 1M; 128 --设置dbf文件自动增长 129 alter database 130 datafile 'c:\myMS_2.dbf' 131 autoextend on next 2M maxsize 4M; 132 --表空间重命名 133 alter tablespace myMS 134 rename to hooMS; 135 --分离表空间(脱机) 136 alter tablespace hooMS 137 offline temporary; 138 --归档模式下脱机 139 alter tablespace hooMS 140 offline immediate; 141 --使表空间联机 142 alter tablespace hooMS online; 143 --删除无数据的表空间 144 drop tablespace hooMS; 145 --删除带数据的表空间 146 drop tablespace hooMS 147 including contents;