5.oracle建表的时候同时创建主键,外键,注释,约束,索引

时间:2021-04-16 14:54:11
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;