前言
《数据库原理I》实验指导书
实验课程性质:非独立开课 开课学期:第4学期 适用专业:计算机科学与技术、软件工程 学时数:8
第一部分 绪论 一、《数据库原理I》实验的作用与任务 通过上机实践,配合课堂教学内容加深对数据库的基本概念和基本技术的理解,掌握数据库系统设计的基本思想和基本步骤,熟悉关系数据库的标准语言SQL,并对关系数据库系统的一些典型技术有较深入的了解,使学生的动手能力有较大的提高。另外,通过上机实践善于发现数据库应用程序中的错误,并且快速排除这些错误,使其正确运行,为今后使用大型数据库进行数据库应用系统的开发积累经验。 二、《数据库原理I》实验基础知识 本课程的任务是通过各个教学环节,运用各种教学手段和方法,使学生在掌握数据模型、数据库管理系统、数据库语言及数据库设计理论等基本理论知识的基础上,逐步具有开发和设计数据库的能力,为进一步开发和设计大型信息系统打下坚实基础。 三、《数据库原理I》实验教学项目及教学要求
实验操作指导
解决方法
第1-6题: 能直接制作出来就不按要求展示SQL语句了,apply后有完整的句子有兴趣可自己学习及进行优化更改 第7题: 如果使用SQL语句实现,则 举个例子:
# 创建Student表
create table STUDENT
(Sno char(20)primary key,
Sname char(20)unique,
Ssex char(2),
Sage smallint,
Sdept char(20)
);
#单句执行 用时按Ctrl和Enter键
#创建Course表
create table COURSE
(Cno char(4)primary key,
Cname char(40)not null,
Cpno char(4),
Ccredit smallint,
foreign key(Cpno)references COURSE (Cno)
);
#创建SC表
create table SC
(Sno char(20),
Cno char(4),
Grade smallint,
primary key(Sno,Cno),
foreign key(Sno)references STUDENT(Sno),
foreign key(Cno)references COURSE(Cno)
);
插入数据
# Student插入数据时这样没什么问题。
insert into STUDENT(Sno,Sname,Ssex,Sage,Sdept) values('201215121','李勇','男',20,'CS');
insert into STUDENT(Sno,Sname,Ssex,Sage,Sdept) values('201215122','刘晨','女',19,'CS');
insert into STUDENT(Sno,Sname,Ssex,Sage,Sdept) values('201215123','王敏','女',19,'MA');
insert into STUDENT(Sno,Sname,Ssex,Sage,Sdept) values('201215125','张立','男',19,'IS');
select *from student;#显示表 当然也可以点击再次修改表的右边那个表格图标
#多执行 用时按Ctrl、Shift、Enter键
insert into COURSE(Cno,Cname)values('1','数据库');
insert into COURSE(Cno,Cname)values('2','数学');
insert into COURSE(Cno,Cname)values('3','信息系统');
insert into COURSE(Cno,Cname)values('4','操作系统');
insert into COURSE(Cno,Cname)values('5','数据结构');
insert into COURSE(Cno,Cname)values('6','数据处理');
insert into COURSE(Cno,Cname)values('7','PASCAL语言');
#这一块要先执行,再执行下面那块代码
2、再用更新语句“插入”剩余数据
update COURSE set Cpno='5',Ccredit = 4 where Cno = '1';
update COURSE set Cpno=NULL,Ccredit = 2 where Cno = '2';#注意不能将Cpno=NULL写成Cpno=''
update COURSE set Cpno='1',Ccredit = 4 where Cno = '3';
update COURSE set Cpno='6',Ccredit = 3 where Cno = '4';
update COURSE set Cpno='7',Ccredit = 4 where Cno = '5';
update COURSE set Cpno=NULL,Ccredit = 2 where Cno = '6';
update COURSE set Cpno='6',Ccredit = 4 where Cno = '7';
SC表数据插入
#虽然SC表也使用了外键,但在Course插入数据之后可以按常规方法插入
#先把Course数据插入之后再对SC表进行插入数据
insert into SC(Sno,Cno,Grade) values('201215121','1',92);
insert into SC(Sno,Cno,Grade) values('201215121','2',85);
insert into SC(Sno,Cno,Grade) values('201215121','3',88);
insert into SC(Sno,Cno,Grade) values('201215122','2',90);
insert into SC(Sno,Cno,Grade) values('201215122','3',80);
select *from SC;
第8题: a: 非空:alter table student modify sno char(8) not null; 唯一:alter table student add unique(sno); b: 增加一个字段SBIRTH, Alter table student add sbirth text; 增加STUDENT表中ADDRESS字段; Alter table student add column address; c: 删除则将add改为drop d: 将a中student改为course
第9题: 创建表DD : create table dd(dd text); 删除表DD : drop table dd;
第10题: 用SQL语言CREATE INDEX语句定义表STUDENT的SNAME字段的降序索引; Create unique index stusname on student(sname desc);
第11题: 用SQL语言CREATE INDEX语句定义表SC的GRADE字段的升序索引; Create unique index scgrade on sc(grade);
第12题: 用SQL语言DROP语句删除索引; drop index stusname on student; Drop index scgrade on sc;
第13-14题: 直接修改和保存
实验目的
1.了解MySQL程序构成、安装、管理方法。 2.了解MySQL数据库及表结构。 3.熟练掌握SQL语言进行基本表结构的创建。 4.熟练应用SQL语言进行表结构的修改。 5.掌握SQL语言进行基本表的删除。 6.掌握SQL语言进行索引的建立和删除。
实验内容及操作步骤
第1~14题
实验遇到的问题及体会
1.安装好MySQL与mysql workbench之间连接问题,经常的再计算机管理里重启mysql 2.对PK/NN/UQ/B/UN/ZF/AI/G不理解 3.sql语句再mysql workbench中经常报错
|