oracle创建用户、表、添加外键插入数据

–创建一个名为DAVID的用户,口令为davidpass

create user DAVID identified by davidpass;

–授予其连接数据库和创建表对象的权限

grant connect to DAVID;
grant create table to DAVID;

–授予其访问另一用户MARTIN的表TEST的权限.

我没有martin用户,先创建

create user MARTIN identified by martinpsw;
grant connect to MARTIN;
grant resource to MARTIN;

create table TEXT(
id number ,
name varchar2(20)
)
select * from TEXT;

–授予权限

grant select on MARTIN.TEXT to DAVID;

三、创建数据表

create table bbsUsers(
BUID number(4) primary key ,–版块编号
Uname varchar2(32) not null,–用户姓名
Usex number(1) default 1,–性别
Upassword varchar2(12) default ‘888888’ ,–用户名密码
Ustate number(4) default 0,–用户状态
Uemail varchar2(20) not null check(Uemail like ‘%@%’),–用户邮箱
Uregdate date default sysdate,–注册日期
Ulevel number(4) default 1,–用户级别
Upoint number(4) default 20–用户积分
)

–注意:有default 可以不写 not null ,但是如果都写的话,not null 放在default的后边
select * from bbsUsers
表 名 bbsSection (版块表) 主 键 SID
列 名 数据类型 长度 是否允许为空 描 述
SID int 4 不允许 版块编号,自动增长
Sname varchar2 32 不允许 版块名称
SmasterID int 4 不允许 版主的用户ID,外键;引用用户表bbsUsers的bUID
Sprofile varchar2 20 允许 版面简介
SclickCount int 4 允许 点击率
StopicCount int 4 允许 发贴数

create table bbssection(
sid number(4) primary key,
sname varchar2(32) not null,
smasterid number(4) not null,
sprofile varchar2(20) ,
sclickcount number(4) ,
stopiccount number(4)

–另外一种加外键的形式

–,foreign key(smasterid) references bbsUsers(BUID)
);
alter table bbssection add constraints fk_id foreign key (smasterid) references bbsUsers(BUID);

create table bbsreply(
rid number(4) primary key,
rtid number(4) not null, –外键
rsid number(4) not null,–外键
ruid number(4) not null,–外键
rface number(4) ,
rcontents varchar2(30) not null check(length(rcontents)>6),
rtime date default sysdate,
rclickcount number(4)
);
create table bbstopic(
tid number(4) primary key ,
tsid number(4) not null,–外键
tuid number(4) not null,–外键
treplycount number(4) ,
tface number(4) ,
ttopic varchar2(20) not null,
tcontents varchar2(30) not null check(length(tcontents)>6),
ttime date default sysdate,
tclickcount number(4) default 0,
tstate number(4) default 1 not null,
tlastreply date
)
alter table bbstopic add constraints ck_time check (tlastreply>ttime);

–添加外键

alter table bbsreply add constraint bbr_pk1_r1
foreign key (rtid) references bbstopic(tid);

alter table bbsreply add constraint bbr_pk1_r2
foreign key (rsid) references bbsSection(sid);

alter table bbsreply add constraint bbr_pk1_r3
foreign key (ruid) references bbsUsers(buid);

alter table bbsTopic add constraint bbr_pk3_r1
foreign key (TsID) references bbsSection(SID);

alter table bbsTopic add constraint bbr_pk3_r2
foreign key (TuID) references bbsUsers(buid);

–插入数据 验证

–向用户表中插入数据
insert into bbsUsers values(1,’张三’,1,’zhangsan’,0,’zhangsan@qq.com’,sysdate,7,15);
insert into bbsUsers values(2,’李四’,0,’lisi’,1,’lisi@qq.com’,sysdate,2,9);
insert into bbsUsers values(3,’赵五’,1,’zhaowu’,0,’zhaowu@qq.com’,sysdate,3,10);
insert into bbsUsers values(4,’孙六’,1,’sunliu’,0,’sunliu@qq.com’,sysdate,1,5);
–查询表中的数据
select * from bbsUsers;

–向板块表中插入数据

insert into bbsSection values(1,’新闻’,1,’马来西亚问题’,90,70);
insert into bbsSection values(2,’旅游’,2,’莱芜雪野湖’,100,70);
insert into bbsSection values(3,’美食’,4,’济南美食街’,160,100);
insert into bbsSection values(4,’摄影’,3,’青岛海底世界’,40,10);
select * from bbsSection;

–向主贴表中添加数据

insert into bbsTopic values(1,1,1,10,1,’宗教问题’,’伊斯兰教不允许<偶像崇拜>. ‘,sysdate,100,1,null);
insert into bbsTopic values(2,1,1,100,2,’娱乐问题’,’伊斯兰教不关<偶像崇拜>.. ‘,sysdate,200,0,null);
insert into bbsTopic values(3,2,2,120,1,’雪野湖的鱼’,’超级超级好吃,嘿嘿. ‘,sysdate,100,1,null);
insert into bbsTopic values(4,3,4,140,2,’铁板鱿鱼’,’我的最爱,特别的爱. ‘,sysdate,100,1,null);
select * from bbsTopic;

–向回帖表中插入数据
表名 bbsReply(回贴表) 主键 RID
列名 数据类型 长度 是否允许为空 默认值 描述
RID int 4 不允许 自动编号, 贴子编号
RtID int 4 不允许 主贴ID;外键,引用bbsTopic表的主键TID
RsID int 4 不允许 版块ID;外键,引用bbsSection表的主键SID
RuID int 4 不允许 回贴人ID, 外键,引用bbsUsers表的主键bUID
Rface int 4 允许 回贴表情
Rcontents varchar2 30 不允许 正文,必须大于6个字符
Rtime date 8 允许 当天 回贴时间
RclickCount int 4 允许 点击数

insert into bbsReply values (1,1,1,1,1,’可恶可恶可恶a’,sysdate,100);
insert into bbsReply values (2,2,1,1,0,’可以理解,但是做不到’,sysdate,10);
insert into bbsReply values (3,3,2,2,1,’有空去尝尝,不错’,sysdate,300);

wkj9pvrhtaaamzihaaf0hhesne643

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部