欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle建库流程例子

程序员文章站 2024-02-04 12:13:46
...

sqlplus system/system@orcl --连接SQLgt;ed a --创建sql文本SQLgt;get a --把a.sql载入缓存SQLgt;/create temporary tabl

sqlplus system/system@orcl --连接

SQL>ed a --创建sql文本
SQL>get a --把a.sql载入缓存
SQL>/

create temporary tablespace sa_temp --临时表空间
tempfile 'E:\dbf\sa_temp.dbf'
size 10m
autoextend on;

create tablespace sa_space --表空间
logging
datafile 'E:\dbf\sa_space.dbf'
size 20m --20M
autoextend on; --自动增长


create user sa identified by sa --创建用户 使用对应的表空间
default tablespace sa_space
temporary tablespace sa_temp;


grant connect,resource,dba to sa; --授予连接 、dba权限给用户


conn sa/sa --角色sa


--创建学员信息表
create table studentInfo(
stuId number primary key not null,
tel nvarchar2(15),
sex char(2) not null,
schoolTime date not null,
email nvarchar2(50) not null,
remark nvarchar2(500) not null
);


--创建课程表
create table Course(
courseId number primary key not null,
courseCode nvarchar2(15), --课程代码
courseName nvarchar2(50)
);


--创建学员与课程关系表(多对多)
create table stdent_course(
courseId number not null,
stuId number not null
);


--创建序列
create sequence seq_studentInfo_stuId --学员序列
increment by 1 -- 每次加1
start with 1 -- 从1开始计数
nomaxvalue -- 不设置最大值
nocycle -- 一直累加,,不循环
nocache -- 不建缓冲区


create sequence seq_course_courseId --课程序列
increment by 1 -- 每次加1
start with 1 -- 从1开始计数
nomaxvalue -- 不设置最大值
nocycle -- 一直累加,不循环
nocache -- 不建缓冲区

--创建触发器
create or replace trigger tri_studentInfo_stuId --学员主键自增
before
insert on studentInfo for each row
begin
select seq_studentInfo_stuId.nextval into :New.stuId from dual;
end;


create or replace trigger tri_course_courseId --课程主键自增
before
insert on course for each row
begin
select seq_course_courseId.nextval into :New.courseId from dual;
end;

--建立课程表主外建关系
alter table stdent_course add constraint fk_stdentcourse_courseId
foreign key(courseId) references course(courseId);

--建立学员主外建关系
alter table stdent_course add constraint fk_stdentcourse_courseId
foreign key(stuId) references studentId(stuId);


--sql测试
insert into studentinfo(tel,sex,schooltime,email,remark)
values('123456','男',to_date('2011-01-12','yyyy-MM-dd'),'ss@ww.com','爱是刚');
insert into studentinfo(tel,sex,schooltime,email,remark)
values('111111','男',to_date('2011-02-12','yyyy-MM-dd'),'ss1@ww.com','爱是刚111');

insert into course(coursecode,coursename)values('001','语文');
insert into course(coursecode,coursename)values('002','数学');

insert into stdent_course (stuid,courseid)values(1,1);
insert into stdent_course (stuid,courseid)values(1,2);
insert into stdent_course (stuid,courseid)values(2,1);

select * from studentinfo;
select * from course;
select * from stdent_course;

Oracle建库流程例子