数据库上机实验报告
试验内容
1、
数据表的建立
基本表《简单的》带有主键
带有外码约束的(外码来自其他表或者本表)
2、
数据表的修改
添加删除列
修改列属性类型
添加删除约束(约束名)
元组的添加,修改,删除
删除数据表
试验过程
1、create
table
student
(
sno
char(9)
primary
key
,
/*sno是主码
列级完整性约束条件*/
sname
char(20)
unique,
/*sname取唯一值*/
ssex
char(2),
sage
smallint,
/*类型为smallint*/
sdept
char(20)
/*所在系*/
);
create
table
course
(
cno
char(4)
primary
key,
/*列级完整性约束条件,cno是主码*/
cname
char(40),
cpno
char(4),
/*cpno的含义是先行课*/
ccredit
smallint,
foreign
key
(cpno)
references
course(cno)
/*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/
);
create
table
sc
(
sno
char(9),
cno
char(4),
grade
smallint,
primary
key
(sno,cno),
/*主码有两个属性构成,必须作为表级完整性进行定义*/
foreign
key
(sno)
references
student(sno),
/*表级完整性约束条件,sno是外码,被参照表是student*/
foreign
key
(cno)
references
course(cno),
/*表级完整性约束条件,cno是外码,被参照表示course*/
);
例1、create
table
s
(
cno
varchar(3),
/*变长的字符串,输入2个字符就是两个字符不会补空格*/
sname
varchar(20),
status
int,
city
varchar(20),
constraint
pk_sno
primary
key(sno),
/*约束条件的名字为pk_sno*/
);
create
table
p
(
pno
varchar(3),
pname
varchar(20),
color
varchar(3),
weight
int,
constraint
pk_pno
primary
key
(pno),
/*约束条件的名字是pk_pno*/
);
create
table
j
(
jno
varchar(3),
jname
varchar(20),
city
varchar(20),
constraint
pk_jno
primary
key(jno)
/*约束条件的名字为pk_jno*/
);
例2、create
table
spj
(
sno
varchar(3),
/*第一个表中的主码*/
pno
varchar(3),
jno
varchar(3),
qty
int,
/*数量*/
constraint
pk_spj
primary
key(sno,pno,jno),
/*主码由3个属性组成*/
foreign
key(sno)
references
s(sno),
/*表级完整性约束条件,sno是外码,被参照表是s*/
foreign
key(pno)
references
p(pno),
/*表级完整性约束条件,pno是外码,被参照表是p*/
foreign
key(jno)
references
j(jno),
/*表级完整性约束条件,jno是外码,被参照表是j*/
);
2、数据表的更改
在s表中添加一个concat
列
alter
table
s
add
concat
varchar(20)
在s表中删除concat
列
alter
table
s
drop
column
concat
更改s表
concat列的属性
把长度由20改为30
alter
table
s
alter
column
concat
varchar(30)
联系方式
名字为concat
修改属性为唯一的
属性名为con_concat
alter
table
s
add
constraint
con_concat
unique(concat)
删除约束关系con_concat
alter
table
s
drop
constraint
con_concat
/*插入一个元组*/
insert
into
s
valus(‘s1’,’精益’,20,’天津’)
/*20不能写成’20’*/
试验中的问题的排除与总结:
1、在创建spj时
有三个实体所以从3个实体中取主码,还有一个数量属性也要写上
主码由那3个主码确定
2、更改一个数据库中数据表时一定要先使该数据库处于正在使用状态
3、constraint
是可选关键字,表示
primary
key、not
null、unique、foreign
key
或
check
约束定义的开始。约束是特殊属性,用于强制数据完整性并可以为表及其列创建索引。
4、--go可以不加但是要注意顺序
注:go
--注释
提示错误
5、注意添加一个空元素用
null
附
sql备份
--创建一个数据库
student
create
database
student
go
--在数据库student中创建表student
course
sc
注意顺序
use
student
----------------------------------------------------------------
create
table
student
(
sno
char(9)
primary
key,
/*sno是主码
列级完整性约束条件*/
sname
char(10)
unique,
/*sname取唯一值*/
ssex
char(2),
sage
smallint,
/*类型为smallint*/
sdept
char(20)
/*所在系*/
);
/*;要加*/
-----------
2222