Oracle数据库建表

时间:2022-09-20 08:21:19

---数据类型   

/*

1  数字 number [小数,整数]

number(5,3)表示总共5个数字,小数点后3,最大值99.999

number(5) 表示整数  最大值99999

 

2  字符  char 定长字符  

   char(10)   如果没有达到10字符就用空格补充,他所占的大小总是10字符空间

   varchar2  变长字符和varchar类似  

   varchar2(10) 如果没有达到10个字符长度不用空格补充

   clob   大文本类型  

   文字很多,小说,简介,新闻内容

   blob  存入大数据文件  

   图片,压缩文件..

   

3 时间  date       年月日 时分秒

        timestamp  年月日 时分秒  秒可以带小数点

         

*/

    

/*

约束

1 主键  primary key

2 外键  foreign key,

3 唯一  unique,

4 检测  check

5 非空  not null

*/

-- 商品表   客户表   购物车表

/*

商品表 goods  编号gid , 名称 , 价格 ,厂商

客户表 customer 编号cid  ,姓名,性别,出生日期,身份证

购物车表 purchase  商品编号,客户编号,商品数量

请建立表,要求 必须有主外键,所有的名称不能为空,价格必须大于0,身份证必须唯一,性别必须是男女默认男,商品数量必须是130之间

*/

create table goods(

gid
number(8) primary key,

gname
varchar2(50) not null,

price
number(15,2) check(price >0),

firm
varchar2(100)

);
create table customer(

cid
number(8) primary key,

cname
varchar2(30) not null,

sex
char(2) default '' check (sex in ('','' )),

birth date,

idcard
char(18) unique

);
create table purchase (

gid
number(8) references goods(gid),

cid
number(8) references customer(cid),

goodsnum
number(8) check( goodsnum between 1 and 30 )

);

 

/*

--创建表  

--系别[编号,名称,地址,主任编号]

--班级[编号,名称,系别,班主任编号]

--学生[学号,姓名,性别,出生年月,年龄,班级号]

--分数[学号,课程号,分数,]

--课程表[编号,名称,任课老师编号]

--老师表[编号,姓名,年龄,性别]

--6张表的要求

--1 每张表插入35条数据

--2 有主键或外键

--3 所有姓名不能为空

--4性别只能是10

--5学生年龄在16-30之间

--将学号为3的学生的姓名修改为李强,性别修改为1,年龄修改为20

update student set sname='李强',ssex='1',sage=20 where stid=3003;

--在创建的学生表上增加一个栏目 address

alter table student add saddress varchar2(30);

--address的长度修改为100

alter table student modify saddress varchar2(100);

--将老师表增加一个栏目email

alter table teacher add temail varchar2(30);

--显示2班所有人的姓名

select sname from student where gid=2002;

 

*/

 

系别表

create table department(

did
number(8) primary key,

dname
varchar2(30) not null,

address
varchar2(50),

directorid
number(8)

);

insert into department values(1001,'电子信息工程','xxxx学院',1101);

insert into department values(1002,'外语外贸学院','xxxx学院',1102);

insert into department values(1003,'抱石艺术学院','xxxx学院',1103);

insert into department values(1004,'文理学院','xxxx学院',1104);

 

 

班级表

create table grade(

gid
number(8) primary key,

gname
varchar2(30) not null,

did
number(8) references department(did),

classteacherid
number(8)

);

insert into grade values(2001,'应电2班',1001,2201);

insert into grade values(2002,'商务英语1班',1002,2202);

insert into grade values(2003,'室内设计3班',1003,2203);

insert into grade values(2004,'数学8班',1004,2204);

 

 

学生表

create table student(

stid
number(8) primary key,

sname
varchar2(30) not null,

ssex
varchar(2) default '1' check (ssex in ('1','0')),

birth date,

sage
number(8),

gid
number(8) references grade(gid)

);

insert into student values(3001,'张三',1,to_date('2016-2-23','yyyy-MM-dd'),21,2001);

insert into student values(3002,'李丽',0,to_date('2012-6-13','yyyy-MM-dd'),21,2002);

insert into student values(3003,'赵立',1,to_date('2014-3-19','yyyy-MM-dd'),21,2003);

insert into student values(3004,'王生',1,to_date('2015-7-30','yyyy-MM-dd'),21,2004);

 

 

老师表

create table teacher(

tid
number(8) primary key,

tname
varchar2(30) not null,

tage
number(8),

tsex
varchar(2) default '1' check (tsex in ('1','0'))

);

insert into teacher values(4001,'讲英语',21,1);

insert into teacher values(4002,'朗诵',21,0);

insert into teacher values(4003,'长风',21,0);

insert into teacher values(4004,'来的是',21,0);

 

 

课程表

create table course(

cid
number(8) primary key,

cname
varchar2(30) not null,

tid
number(8) references teacher(tid)

);

insert into course values(5001,'电工',4002);

insert into course values(5002,'英语',4004);

insert into course values(5003,'室内设计',4003);

insert into course values(5004,'数学',4001);

 

 

分数表

create table scoretable(

stid
number(8) references student(stid),

cid
number(8) references course(cid),

score
number(8)

);

insert into scoretable values(3002,5003,98);

insert into scoretable values(3003,5004,120);

insert into scoretable values(3004,5001,89);

insert into scoretable values(3001,5002,102);