---数据类型
/*
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,身份证必须唯一,性别必须是男女默认男,商品数量必须是1到30之间
*/
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 每张表插入3到5条数据
--2 有主键或外键
--3 所有姓名不能为空
--4性别只能是1或0
--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);