数据库建立表


一、定义数据表
1、建立一个 “学生” 表 stu­dent。

create table student
(Sno char(9) primary key,/*主键(主码),列级完整性约束条件*/
Sname char(20) unique,/*Sname 取唯一值*/
Ssex char(2),
Sage smallint,
Sdep char(20)
);
2、建立一个 “课程” 表 course。

create table course
(Cno char(4) primary key,/*Cno主键*/
Cname char(40) not null,/*Cname不能取空值*/
Cpno char(4),/*先修课*/
Ccredit smallint,
foreign key(Cpno) references course(Cno)/*Cpno是外键,对应course的Cno*/
);
3、建立学生课程表 sc。

create table sc
(Sno char(9),
Cno char(4),
Grade smallint,
primary key(Sno,Cno),/*主码由两个属性构成*/
foreign key(Sno) references student(Sno),
foreign key(Cno) references course(Cno)
);
二、数据类型
数据类型 含义
char(n),character(n) 长度为n的定长字符串
varchar(n),charactervarying(n) 最大长度为n的变长字符串
clob 字符串大对象
blob 二进制大对象
int,integer 长整数(4字节)
smallint 短整数(2字节)
bigint 大整数(8字节)
numeric(p,d) 定点数,有p位数字组成,小数点后面有d位数字
decimal 同numeric
boolean 布尔值
date 日期,包含年月日,格式为YYYY-MM-DD
time 时间,包含一日的时分秒,格式为HH:MM:SS
timestamp 时间戳类型
interval 时间间隔类型
三、模式与表
方法:在表明中明显的给出模式名。

create table "S-T".student(···);
create table "S-T".course(···);
create table "S-T".sc(···);
四、修改基本表
【例】向 stu­dent 表增加 “入学时间” 列,其数据类型为日期型

alter table student add S_entrance date;
【例】修改 stu­dent 表的 Sage 字段默认值为 20

alter table student alter column Sage set default 20; /*修改student表的Sage字段的默认值为20*/
【例】将 stu­dent 表的 Sage 由字符型改为整型。

alter table student modify column Sage int;
【例】增加课程名必须取唯一的约束条件。

alter table course add unique(Cname);
五、删除基本表
若选择 re­strict , 则该表的删除是有限制的,欲删除的基本表不能被删除。

若选择 cas­cade,则删除没有限制,在删除表的同时,相关依赖对象,例如视图,都将被一起删除。

drop table student restrict|cascade;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM