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