我要投稿
您当前的位置:57365.com -> 实习报告 -> 工作报告 -> 实验报告 -> 范文内容

数据库上机实验报告

范文作者:佚名    范文来源:不详    范文栏目:实验报告    收藏本页
数据库上机实验报告


试验内容 

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)   /*所在系*/ 
);     /*;要加*/ 
---------------------------------------------------------------- 
create table Course 

Cno char(4) primary key, /*列级完整性约束条件,Cno是主码*/ 
Cname char(20), 
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*/ 
); 
------------------------------------------------------------------- 
go 

--创建一个数据库SPJ 习题2-5 

create database SPJ 

go 

--在数据库SPJ中创建表 S P J SPJ 

use SPJ 

go 
-------------------------------------------------------------------------- 
create table S 

Sno 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*/ 
); 
-------------------------------------------------------------------------- 
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*/ 

); 
-------------------------------------------------------------------------- 
go 

--数据表的修改 添加一个列 删除一个列 更改列的属性 建立约束 删除约束 元组的添加删除和修改 

--和还是在数据库SPJ中 不用重新use SPJ 
alter table s add concat varchar(20) /*在S表中添加一个concat 列*/ 
go   
--go可以不加但是要注意顺序 注:go --注释   提示错误 
alter table s drop column concat /*在S表中删除concat 列*/ 
go 
alter table s add concat varchar(20) /*在S表中添加一个concat 列*/ 
go 
alter table s alter column concat varchar(30) /*更改s表concat列的属性 把长度由20改为30*/ 
go 
alter table s add constraint con_concat unique(concat) /*建立一个约束关系 关系名为con_cat(删除时用到)使concat列具有唯一性*/ 
go 
alter table s drop constraint con_concat /*删除约束关系con_concat*/ 
go 

alter table s drop column concat /*在S表中删除concat 列*/ 

go  


------------------------------------------------------------------------------ 
---插入数据 
insert into s values(’s1’,’精益’,20,’天津’) /*向表s中插入一个元组*/ 

insert into s values(’s2’,’盛锡’,10,’北京’) /*向表s中插入一个元组*/ 
insert into s values(’s3’,’东方红’,30,’北京’) /*向表s中插入一个元组*/ 
insert into s values(’s4’,’丰泰盛’,20,’天津’) /*向表s中插入一个元组*/ 
insert into s values(’s5’,’为民’,30,’上海’) /*向表s中插入一个元组*/ 
--------------------- 
insert into p values(’p1’,’螺母’,’红’,12) /*向表p中插入一个元组*/ 
insert into p values(’p2’,’螺栓’,’绿’,17) /*向表p中插入一个元组*/ 
insert into p values(’p3’,’螺丝刀’,’蓝’,14) /*向表p中插入一个元组*/ 
insert into p values(’p4’,’螺丝刀’,’红’,14) /*向表p中插入一个元组*/ 
insert into p values(’p5’,’凸轮’,’蓝’,40) /*向表p中插入一个元组*/ 
insert into p values(’p6’,’齿轮’,’红’,30) /*向表p中插入一个元组*/ 
--------------------- 
insert into j values(’j1’,’三建’,’北京’) /*向表j中插入一个元组*/ 
insert into j values(’j2’,’一汽’,’长春’) /*向表j中插入一个元组*/ 
insert into j values(’j3’,’弹簧厂’,’天津’) /*向表j中插入一个元组*/ 
insert into j values(’j4’,’造船厂’,’天津’) /*向表j中插入一个元组*/ 
insert into j values(’j5’,’机车厂’,’唐山’) /*向表j中插入一个元组*/ 
insert into j values(’j6’,’无线电厂’,’常州’) /*向表j中插入一个元组*/ 
insert into j values(’j7’,’半导体厂’,’南京’) /*向表j中插入一个元组*/ 
--------------------- 
--go 

insert into spj values(’S1’,’P1’,’J1’,200) /*向表spj中插入一个元组*/ 
insert into spj values(’S1’,’P1’,’J3’,100) /*向表spj中插入一个元组*/ 
insert into spj values(’S1’,’P1’,’J4’,700) /*向表spj中插入一个元组*/ 
insert into spj values(’S1’,’P2’,’J2’,100) /*向表spj中插入一个元组*/ 
insert into spj values(’S2’,’P3’,’J1’,400) /*向表spj中插入一个元组*/ 
insert into spj values(’S2’,’P3’,’J2’,200) /*向表spj中插入一个元组*/ 
insert into spj values(’S2’,’P3’,’J4’,500) /*向表spj中插入一个元组*/ 
insert into spj values(’S2’,’P3’,’J5’,400) /*向表spj中插入一个元组*/ 
insert into spj values(’S2’,’P5’,’J1’,400) /*向表spj中插入一个元组*/ 
insert into spj values(’S2’,’P5’,’J2’,100) /*向表spj中插入一个元组*/ 
insert into spj values(’S3’,’P1’,’J1’,200) /*向表spj中插入一个元组*/ 
insert into spj values(’S3’,’P3’,’J1’,200) /*向表spj中插入一个元组*/ 
insert into spj values(’S4’,’P5’,’J1’,100) /*向表spj中插入一个元组*/ 
insert into spj values(’S4’,’P6’,’J3’,300) /*向表spj中插入一个元组*/ 
insert into spj values(’S4’,’P6’,’J4’,200) /*向表spj中插入一个元组*/ 
insert into spj values(’S5’,’P2’,’J4’,100) /*向表spj中插入一个元组*/ 
insert into spj values(’S5’,’P3’,’J1’,200) /*向表spj中插入一个元组*/ 
insert into spj values(’S5’,’P6’,’J2’,200) /*向表spj中插入一个元组*/ 
insert into spj values(’S5’,’P6’,’J4’,500) /*向表spj中插入一个元组*/ 
---插入数据 
----------------------------------------------------------------------------- 
use Student  
go 
--go 不加出现错误 
----------------------------------------------------------------------------- 
---插入数据 注意顺序 Student Course SC 
-------------------------------------- 
insert into Student values(’95001’,’李勇’,’男’,20,’CS’) /*向表Student中插入一个元组*/ 
insert into Student values(’95002’,’刘晨’,’女’,19,’IS’) /*向表Student中插入一个元组*/ 
insert into Student values(’95003’,’王敏’,’女’,18,’MA’) /*向表Student中插入一个元组*/ 
insert into Student values(’95004’,’张立’,’男’,19,’IS’) /*向表Student中插入一个元组*/ 
-------------------------------------- 
-----注意顺序(先行课问题) 注意添加一个空元素用 null 
insert into Course values(’2’,’数学’,null,2)/*向表Course中插入一个元组*/ 
insert into Course values(’6’,’数据处理’,null,2)/*向表Course中插入一个元组*/ 
insert into Course values(’4’,’操作系统’,’6’,3)/*向表Course中插入一个元组*/ 
insert into Course values(’7’,’PASCAL语言’,’6’,4)/*向表Course中插入一个元组*/ 
insert into Course values(’5’,’数据结构’,’7’,4)/*向表Course中插入一个元组*/ 
insert into Course values(’1’,’数据库’,’5’,4)/*向表Course中插入一个元组*/ 
insert into Course values(’3’,’信息系统’,’1’,4)/*向表Course中插入一个元组*/ 
-------------------------------------- 
insert into SC values(’95001’,’1’,92)/*向表SC中插入一个元组*/ 
insert into SC values(’95001’,’2’,85)/*向表SC中插入一个元组*/ 
insert into SC values(’95001’,’3’,88)/*向表SC中插入一个元组*/ 
insert into SC values(’95002’,’2’,90)/*向表SC中插入一个元组*/ 
insert into SC values(’95002’,’3’,80)/*向表SC中插入一个元组*/ 
---插入数据 
我要投稿   -   广告合作   -   关于本站   -   友情连接   -   网站地图   -   联系我们   -   版权声明   -   设为首页   -   加入收藏   -   网站留言
Copyright © 2009 - 20012 www.www.hxswjs.com All Rights Reserved.57365.com 版权所有