涉及oracle数据库的大部分基础知识,提供给你们参考。
1、创建表flight对应的sql语句如下,设置其主键为Fid;设置CabQuantity约束为CabQuantity >0
(你可以在sqlplus里写,建议从cmd下打开sqlplus这样建表语句可以直接复制到sqlplus里去,如果你是直接点击oracle文件夹里的sqlplus程序的话,建表语句需要你一句句的敲。还有oracle里这里建表字母大小写随意,建议统一)
create table Flight(
Fid VARCHAR2(10) PRIMARY KEY,
Fname VARCHAR2(20) NOT NULL,
CabLevel VARCHAR2(10) NOT NULL,
CabQuantity NUMBER(4) NUll CHECK(CabQuantity >0)
);
下图是在sql developer里以flight用户登录查看的截图(当然你也可以在sqlplus里查看,可以用desc 表名 来查看表的字段信息)
2、
创建表Ticket对应的sql语句如下,设置其主键为Tid;设置Tprice约束为Tprice >0, Discount约束为Discount >=0;设置TFid外码引用Flight表中的Fid;设置TCerNumber外码引用Client表中的CerNumber;
create table Ticket(
Tid VARCHAR2(10)PRIMARY KEY,
TFid VARCHAR2(10) NOT NULL,
TCerNumber VARCHAR2(10) NOT NULL,
Tprice NUMBER(5,2) NOT NULL CHECK(Tprice >0),
Discount NUMBER(3,2) NOT NULL CHECK(Discount >=0),
Presell VARCHAR2(20) NOT NULL,
Salesman VARCHAR2(20) NULL,
FOREIGN KEY (TFid ) REFERENCES Flight(Fid),
FOREIGN KEY (TCerNumber ) REFERENCES Client(CerNumber )
3、创建表Client对应的sql语句如下,设置其主键为CerNumber ;设置Csex 约束为Csex='男’or Csex=‘女’;
create table Client(
CerNumber VARCHAR2(10)PRIMARY KEY,
Cname VARCHAR2(10) NOT NULL,
Csex VARCHAR2(2) NOT NULL CHECK(Csex='男'or Csex='女'),
Phone NUMBER(20) NOT NULL,
CerType VARCHAR2(40) NOT NULL,
PayMethod VARCHAR2(20) NULL
);
创建Flight表的主键序列
create sequence Flight_Fid_Seq
increment by 1
start with 1001
minvalue 1001
maxvalue 1999
NOCYCLE
NOCACHE;
序列初始值为1001,增量为1,序列最小值为1001,序列最大值为1999
创建Ticket表的主键序列
create sequence Ticket_Tid_Seq
increment by 1
start with 2001
minvalue 2001
maxvalue 2999
NOCYCLE
NOCACHE;
序列初始值为2001,增量为1,序列最小值为2001,序列最大值为2999
创建Client表的主键序列
create sequence Client_CerNumber_Seq
increment by 1
start with 3001
minvalue 3001
maxvalue 3999
NOCYCLE
NOCACHE;
序列初始值为3001,增量为1,序列最小值为3001,序列最大值为3999