---數據類型
/*
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);