数据库(学习整理)----3--Oracle创建表和设置约束

  1. BBS论坛表设计
  2. 包含的表:BBSusers(用户表),BBSsection(版块表),BBStopic(主贴表),BBSreply(跟帖表)
  3. 表结构

    1)BBSusers


字段名


字段说明


数据类型


字段约束


备注


U_ID


用户ID


number


主键,非空


非空


UName


用户名


Varchar2(32)


非空


UPassword


密码


Varchar2(16)


默认6个8


UEmail


email


Varchar2(32)


默认[email protected],必须有“@”和“.”,“@”必须在“.”前面


UBirthday


生日


Date


非空


USex


性别


Char(2)


默认’男’


非空


UClass


用户等级


Number


值只能是1,2,3中任意一个,默认1


UStatement


备注


Varchar2(255)


URegDate


注册时间


Date


非空


UState


用户状态


Number


值只能是1,2,3,4中任意一个


非空


UPoint


积分


Number


不能为负。默认20

    2)BBSsection


字段名


字段说明


数据类型


字段约束


备注


S_ID


版块ID


Number


主键,非空


非空


SName


版块名称


Varchar2(32)


非空


SMasterID


用户ID


Number


外键,关联用户表主键


非空


SStatement


备注


Varchar2(255)


SClickCount


点击次数


Number


不能为负


非空


STopicCount


主贴数目


Number


不能为负。默认为0

    3)BBStopic


字段名


字段说明


数据类型


字段约束


备注


TID


主贴ID


Number


主键,非空


非空


TNumber


主贴标号


Varchar2(32)


必须以”t”开头的8个字符


非空


TSID


版块ID


Number


外键,关联版块ID


非空


TUID


用户ID


Number


外键,关联用户ID


非空


TTopic


主贴标题


Varchar2(255)


非空


TContents


主贴正文


Varchar2(2000)


非空


TTime


发帖时间


Date


非空


TClickCount


点击数量


Number


不能为负,默认0


TFlag


主贴状态


Number


只能为1,2,3


非空


TLastCLickT


最后点击时间


Date


非空

    4)BBSreply


字段名


字段说明


数据类型


字段约束


备注


RID


跟帖表主键


Number


主键,非空


非空


RNumber


跟贴标号


Varchar2(32)


必须以”r”开头的8个字符


非空


RTID


主贴ID


Number


外键,关联主贴ID


非空


RSID


版块ID


Number


外键,关联版块ID


非空


RUID


用户ID


Number


外键,关联用户ID


非空


RTopic


跟帖标题


Varchar2(255)


非空


RContents


跟帖正文


Varchar2(2000)


非空


RTime


发帖时间


Date


非空


RClickCount


点击数量


Number


不能为负,默认0

2、Oracle建表和设置约束:

-----------------------------【1】----------------------------------------------
------创建:用户表
create table BBSusers
(
       U_ID number,           -----用户ID
       UName Varchar2(32),    -----用户名
       UPassword Varchar2(16),-----密码
       UEmail Varchar2(32),   -----email
       UBirthday Date,        -----生日
       USex Char(2),          -----性别
       UClass Number,         -----用户等级
       UStatement Varchar2(255),---备注
       URegDate Date,         -----注册时间
       UState Number,         -----用户状态
       UPoint Number         -----积分
);
------创建:表约束
----(1)主键,非空
       alter table BBSusers
             add constraint PK_BBSusers_uid primary key(U_ID);
       alter table BBSusers
             modify(U_ID number not null);   

---用户名 :非空
       alter table BBSusers
             modify(UName number not null);   

---密码:默认6个8
       alter table BBSusers
            modify(UPassword  Varchar2(16) default ‘888888‘);        

---email:默认[email protected],必须有“@”和“.”,“@”必须在“.”前面
       alter table BBSusers
             add constraint CK_BBSusers_UEmail check(UEmail like ‘%@%.%‘);
       alter table BBSusers
            modify(UEmail  Varchar2(32) default ‘[email protected]‘);    

---生日:非空
       alter table BBSusers
             modify(UBirthday number not null); 

---性别:默认’男’  非空
       alter table BBSusers
             modify(USex Char(2) default ‘男‘ not null);                   

---用户等级:值只能是1,2,3中任意一个,默认1
       alter table BBSusers
             modify(UClass number default 1 check(UClass in(1,2,3)));
---注册时间:非空
       alter table BBSusers
             modify(URegDate Date  not null);
---用户状态:值只能是1,2,3,4中任意一个   非空
       alter table BBSusers
             modify(UState number check(UState in(1,2,3,4)) not null);
---积分:不能为负。默认20
       alter table BBSusers
             modify(UPoint number default 20 check(UPoint>0));

---------------------------------------------------------------------------
-----------------------------【2】----------------------------------------------
-----创建:版块表
create table BBSsection
(
       S_ID number,           -----版块ID(主键)
       SName Varchar2(32),    -----版块名称
       SMasterID Number,      -----用户ID(外键)
       SStatement Varchar2(255),-----备注
       SClickCount Number,     -----点击次数
       STopicCount Number    -----主贴数目
);

-----设置:约束

-----(1):版块ID      主键,非空
       alter table BBSsection
             add constraint PK_BBSsection_sid primary key(S_ID);
       alter table BBSsection
             modify(S_ID number not null);       

-----版块名称:非空
       alter table BBSsection
              modify(SName number not null);    

-----用户ID:外键,关联用户表主键       非空
       alter table BBSsection
             add constraint FK_BBSsection_SMasterID foreign key(SMasterID) references BBSusers(U_ID);
       alter table BBSsection
             modify(SMasterID number not null);      

-----点击次数:不能为负              非空
       alter table BBSsection
              modify(SClickCount check(SClickCount>0) not null);

----主贴数目:不能为负。默认为0
       alter table BBSsection
              modify(STopicCount default 0 check(STopicCount>0));
---------------------------------------------------------------------------
-----------------------------【3】----------------------------------------------
-----创建:主贴表
create table BBStopic
(
       TID number,           -----主贴ID(主键)
       TNumber Varchar2(32), -----主贴标号
       TSID Number,          -----版块ID(外键)
       TUID Number,          -----用户ID(外键)
       TTopic Varchar2(255), -----主贴标题
       TContents Varchar2(2000),-----主贴正文
       TTime Date,           -----发帖时间
       TClickCount Number,   -----点击数量
       TFlag Number,         -----主贴状态
       TLastCLickT Date      -----最后点击时间
);

------设置:约束
-----(1)主贴ID:主键,非空
       alter table BBStopic
             add constraint PK_BBStopic_sid primary key(TID);
       alter table BBStopic
             modify(TID number not null); 

-----主贴标号:必须以”t”开头的8个字符 非空
       alter table BBStopic
             add constraint CK_BBStopic_TNumber check(TNumber like ‘t%‘ and length(TNumber)=8);
       alter table BBStopic
             modify(TNumber  not null);
-----版块ID:外键,关联版块ID      非空
      alter table BBStopic
             add constraint FK_BBStopic_TSID foreign key(TSID) references BBSsection(S_ID);
      alter table BBStopic
             modify(TSID number not null); 

-----用户ID:外键,关联用户ID      非空
      alter table BBStopic
             add constraint FK_BBStopic_TUID foreign key(TUID) references BBSusers(U_ID);
      alter table BBStopic
             modify(TUID number not null);
-----主贴标题:非空
      alter table BBStopic
             modify(TTopic Varchar2(255) not null);
-----主贴正文:非空
      alter table BBStopic
             modify(TContents Varchar2(2000) not null);
-----发帖时间:非空
      alter table BBStopic
             modify(TTime Date not null);

-----点击数量:不能为负,默认0
      alter table BBStopic
             modify(TClickCount number default 0 check(TClickCount>0) );       

------主贴状态:只能为1,2,3 非空
      alter table BBStopic
             modify(TFlag number  check(TFlag in(1,2,3)) not null );       

-----最后点击时间:非空
      alter table BBStopic
             modify(TLastCLickT Date not null);      

---------------------------------------------------------------------------
-----------------------------【4】----------------------------------------------
-----创建:跟帖表
create table BBSreply
(
       RID number,           -----跟帖表主键(主键)
       RNumber Varchar2(32), -----跟贴标号
       RTID Number,          -----主贴ID(外键)
       RSID Number,          -----版块ID(外键)
       RUID Number,          -----用户ID(外键)
       RTopic Varchar2(255), -----跟帖标题
       RContents Varchar2(2000),-----跟帖正文
       RTime Date,           -----发帖时间
       RClickCount Number    -----点击数量
);

------设置:约束
-----(1)跟帖表主键:跟帖表主键
       alter table BBSreply
             add constraint PK_BBSreply_RID primary key(RID);
       alter table BBSreply
             modify(RID number not null); 

-----跟贴标号:必须以”r”开头的8个字符 非空
       alter table BBSreply
             add constraint CK_BBSreply_RNumber check(RNumber like ‘r%‘ and length(RNumber)=8);
       alter table BBSreply
             modify(RNumber  not null); 

-----主贴ID:外键,关联主贴ID          非空
      alter table BBSreply
             add constraint FK_BBSreply_RTID foreign key(RTID) references BBStopic(TID);
      alter table BBSreply
             modify(RTID number not null); 

-----版块ID:外键,关联版块ID          非空
      alter table BBSreply
             add constraint FK_BBSreply_RSID foreign key(RSID) references BBSsection(S_ID);
      alter table BBSreply
             modify(RSID number not null);
-----用户ID:外键,关联用户ID         非空
      alter table BBSreply
             add constraint FK_BBSreply_RUID foreign key(RUID) references BBSusers(U_ID);
      alter table BBSreply
             modify(RUID number not null);

-----跟帖标题:非空
      alter table BBSreply
             modify(RTopic number not null);
-----跟帖正文:非空
      alter table BBSreply
             modify(RContents number not null);
-----发帖时间:非空
      alter table BBSreply
             modify(RTime number not null);
-----点击数量:不能为负,默认0
      alter table BBSreply
             modify(RClickCount number default 0 check(RClickCount>0) );
时间: 2024-10-26 17:40:12

数据库(学习整理)----3--Oracle创建表和设置约束的相关文章

Oracle 创建表并设置主键自增

创建数据库 CREATE TABLE STUDENT(ID NUMBER PRIMARY KEY, NAME VARCHAR(200) NOT NULL, SEX VARCHAR(200), CREATE_DATE DATE); 指定表名注释 COMMENT ON TABLE STUDENT IS '学生表'; 指定列注释 COMMENT ON COLUMN STUDENT.ID IS '学生ID'; COMMENT ON COLUMN STUDENT.NAME IS '学生姓名'; COMME

oracle 创建表 外键约束

create table usertable( id int primary key, username varchar(32) not null, birthday date, sex char(1), address varchar(256) ); create table orders( id int primary key, user_id int not null, numberid varchar(32) not null, createtime date, note varchar

Oracle学习笔记_05_ 一个创建表空间、创建用户、授权的完整过程

一.完整命令 su - oracle sqlplus /nolog conn /as sysdba create tablespace scaninvoice logging datafile '/u01/app/oracle/oradata/mas/scaninvoice.dbf' size 200M autoextend on next 100m extent management local; create temporary tablespace scaninvoice_tmp temp

Oracle 创建表空间,用户,赋值(简装)

一, 1.Oracle 创建表空间,用户,赋值(简装) C:\Documents and Settings\Administrator>sqlplus /nologSQL> conn /as sysdba 2.删除用户drop user username cascade; 3.创建自增表表空间SQL> create tablespace 表空间 datafile 'E:\oracle\product\10.2.0\oradata\表空间.dbf' size 50m autoextend

Oracle创建表语句(Create table)语法详解及示例

Oracle创建表语句(Create table)语法详解及示例   创建表(Create table)语法详解1. ORACLE常用的字段类型ORACLE常用的字段类型有VARCHAR2 (size) 可变长度的字符串, 必须规定长度CHAR(size) 固定长度的字符串, 不规定长度默认值为1NUMBER(p,s) 数字型p是位数总长度, s是小数的长度, 可存负数最长38位. 不够位时会四舍五入.DATE 日期和时间类型LOB 超长字符, 最大可达4GCLOB 超长文本字符串BLOB 超长

Oracle创建表空间和表

创建表空间和表ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE构成的oracle中的表就是一张存储数据的表.表空间是逻辑上的划分.方便管理的.数据表空间 (Tablespace)         存放数据总是需要空间, Oracle把一个数据库按功能划分若干空间来保存数据.当然数据存放在磁盘最终是以文件形式,所以一盘一个数据表空间包含一个以上的物理文件数据表         在仓库,我们可能有多间房子,每个房子又有多个货架,每架又有多层. 我们在数据库中存放数据,最

oracle创建表之前判断表是否存在,如果存在则删除已有表

Mysql 创建表之前判断表是否存在,如果存在则删除已有表 DROP TABLE IF EXISTS sys_area; CREATE TABLE sys_area ( id varchar(64) NOT NULL COMMENT '编号', parent_id varchar(64) NOT NULL COMMENT '父级编号', parent_ids varchar(2000) NOT NULL COMMENT '所有父级编号', name varchar(100) NOT NULL C

ORACLE 创建表空间、用户、授权

1.创建表空间 create tablespace TEST logging datafile 'e:\app\administrator\oradata\orcl\TEST.dbf' size 100M autoextend on next 100M maxsize 4096M extent management local; 2.创建用户并指定表空间 create use testuser identified by password default tablespace TEST temp

Oracle创建表、索引、主键、字段描述

-- 创建表 create table SX04_LBALANCE ( YEAR VARCHAR2(10) not null, PROGRAMNO VARCHAR2(40) not null, FDATE VARCHAR2(10) not null, FACCTCODE VARCHAR2(50) not null, FCURCODE VARCHAR2(3) not null, FAACCCREDIT NUMBER(19,4) default 0 not null, FAENDBAL NUMBER