数据库上机实验报告.docx
《数据库上机实验报告.docx》由会员分享,可在线阅读,更多相关《数据库上机实验报告.docx(8页珍藏版)》请在冰豆网上搜索。
![数据库上机实验报告.docx](https://file1.bdocx.com/fileroot1/2022-11/28/8d92959a-9c43-4482-93c8-18c908f5f328/8d92959a-9c43-4482-93c8-18c908f5f3281.gif)
数据库上机实验报告
数据库上机实验报告
数据库上机实验报告
试验内容
1、数据表的建立
基本表带有主键
带有外码约束的(外码来自其他表或者本表)
2、数据表的修改
添加删除列
修改列属性类型
添加删除约束(约束名)
元组的添加,修改,删除
删除数据表
试验过程
1、createtablestudent
(
snochar(9)primarykey,/*sno是主码列级完整性约束条件*/
snamechar(20)unique,/*sname取唯一值*/
ssexchar
(2),
sagesmallint,/*类型为smallint*/
sdeptchar(20)/*所在系*/
);
createtablecourse
(
cnochar(4)primarykey,/*列级完整性约束条件,cno是主码*/
cnamechar(40),
cpnochar(4),/*cpno的含义是先行课*/
ccreditsmallint,
foreignkey(cpno)referencescourse(cno)
/*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/
);
createtablesc
(
snochar(9),
cnochar(4),
gradesmallint,
primarykey(sno,cno),
/*主码有两个属性构成,必须作为表级完整性进行定义*/
foreignkey(sno)referencesstudent(sno),
/*表级完整性约束条件,sno是外码,被参照表是student*/
foreignkey(cno)referencescourse(cno),
/*表级完整性约束条件,cno是外码,被参照表示course*/
);
例1、createtables
(
cnovarchar(3),/*变长的字符串,输入2个字符就是两个字符不会补空格*/
snamevarchar(20),
statusint,
cityvarchar(20),
constraintpk_snoprimarykey(sno),/*约束条件的名字为pk_sno*/
);
createtablep
(
pnovarchar(3),
pnamevarchar(20),
colorvarchar(3),
weightint,
constraintpk_pnoprimarykey(pno),/*约束条件的名字是pk_pno*/
);
createtablej
(
jnovarchar(3),
jnamevarchar(20),
cityvarchar(20),
constraintpk_jnoprimarykey(jno)/*约束条件的名字为pk_jno*/
);
例2、createtablespj
(
snovarchar(3),/*第一个表中的主码*/
pnovarchar(3),
jnovarchar(3),
qtyint,/*数量*/
constraintpk_spjprimarykey(sno,pno,jno),/*主码由3个属性组成*/
foreignkey(sno)referencess(sno),
/*表级完整性约束条件,sno是外码,被参照表是s*/
foreignkey(pno)referencesp(pno),
/*表级完整性约束条件,pno是外码,被参照表是p*/
foreignkey(jno)referencesj(jno),
/*表级完整性约束条件,jno是外码,被参照表是j*/
);
2、数据表的更改
在s表中添加一个concat列
altertablesaddconcatvarchar(20)
在s表中删除concat列
altertablesdropcolumnconcat
更改s表concat列的属性把长度由20改为30
altertablesaltercolumnconcatvarchar(30)
联系方式名字为concat修改属性为唯一的属性名为con_concat
altertablesaddconstraintcon_concatunique(concat)
删除约束关系con_concat
altertablesdropconstraintcon_concat
/*插入一个元组*/
insertintosvalus(‘s1’,’精益’,20,’天津’)/*20不能写成’20’*/
试验中的问题的排除与总结:
1、在创建spj时
有三个实体所以从3个实体中取主码,还有一个数量属性也要写上
主码由那3个主码确定
2、更改一个数据库中数据表时一定要先使该数据库处于正在使用状态
3、constraint
是可选关键字,表示primarykey、notnull、unique、foreignkey或check约束定义的开始。
约束是特殊属性,用于强制数据完整性并可以为表及其列创建索引。
4、--go可以不加但是要注意顺序注:
go--注释提示错误
5、注意添加一个空元素用null
附sql备份
--创建一个数据库student
createdatabasestudent
go
--在数据库student中创建表studentcoursesc注意顺序
usestudent
----------------------------------------------------------------
createtablestudent
(
snochar(9)primarykey,/*sno是主码列级完整性约束条件*/
snamechar(10)unique,/*sname取唯一值*/
ssexchar
(2),
sagesmallint,/*类型为smallint*/
sdeptchar(20)/*所在系*/
);/*;要加*/
-----------