Oracle数据库建表
---数据类型
/*
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);