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);

oracle创建用户、表、添加外键插入数据-上流阁

*文章为作者独立观点,不代表上流阁立场
本文由 江风成 授权 上流阁 发表,并经上流阁编辑。转载此文章须经作者同意,并请附上出处(上流阁)及本页链接。原文链接https://www.o6c.com/java/2016/11/01/541.html
发表评论

坐等沙发
相关文章
mysql 优化方案整理
mysql 优化方案整理
Mysql中json的字段用法
Mysql中json的字段用法
JDBC原生链接Mysql数据根据表映射生成bean实体类
JDBC原生链接Mysql数据根据表映射生成be…
Mysql索引的最左前缀原则
Mysql索引的最左前缀原则
MySQL数据库sql中字符串函数的字符串截取
MySQL数据库sql中字符串函数的字符串截取
Java技术Jdbc连接数据库方法及使用方法
Java技术Jdbc连接数据库方法及使用方法
javaweb开发程序员php开发,微信开发。接受定制开发

最新评论