数据库实验报告(合工大)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计数据库、数据表并编程实现
一、实验目的
通过“数据库系统概论”书本知识学习和“数据库原理与应用”课程教学所授知识对“教学管理系统”的实验内容进行分析,通过建立数据库、数据表、数据视图以及触发器,利用SQL结构化查询语言提供的数据操纵功能,设计实现对数据的定义、修改、删除、查询、更新以及控制等操作,并按照实验指导书的各项要求完成实验内容。
二、实验内容
(1)根据实验建议所示,建立“学生管理”数据库。
(2)建立数据表的方法,建立五个相关的数据表。完成数据库的建立并定义各表的完整性约束条件。分别使用企业管理器和SQL 语言来实现。
(3)熟练掌握并应用SQL中的数据表定义、删除和修改等操作命令;
(4)熟练掌握为各表常用字段建立索引,以提高数据检索效率。
create database 学生管理;
create table student ( sno Char(9),sname Char(10) not null,
sbirthday Datetime,ssex Char(2) check(ssex in ('男','女')),sclass Char(20),
sremark Char(100),address Char(40),zipcode Char(6),phone Char(15),
email Char(40), primary key(sno) );
create table course ( cno char(6) primary key,cname char(20),cpno char(6),
ctime Numeric(2),credit Numeric(2),foreign key(cpno)references course(cno));
create table score(sno char(9), cno char(6),primary key(sno,cno),
foreign key(sno)references student(sno),foreign key(cno)references course(cno),
score Numeric(3));
create table teacher( Tno char(20) primary key,Tname char(20) ,
Tsex Char(2) check(Tsex in ('男','女')),Department char(15),
tbirthday Datetime);
create table Teaching(Tno char(20),cno char(6),tdate datetime,
classroom char(10),sclass char(20),primary key(Tno,cno),
foreign key(Tno)references teacher(Tno),foreign key(cno)references course(cno));
设计数据插入、修改、删除、查询和视图等操作并编程实现
一、实验目的
(1)熟练掌握数据更新语句,灵活地操作插入数据、修改数据和删除数据;
(2)熟练掌握关系数据库中的完整性概念的应用;
(3)掌握单表查询的基本方法;
(4)掌握多表连接查询的基本方法;
(5)熟练掌握以下练习,并进行以下各类查询:
①选择表中的若干列、查询全部列、查询经过计算的值;
②选择表中的若干元组,即消除取值重复的行与查询满足指定条件的元组(包括:比较大小、确定范围、确定集合、字符匹配、涉及空值和多种条件查询);
③对查询结果排序;
④使用集函数;
⑤对查询结果分组
(6)熟练掌握以下练习,并进行下列各类连接查询:
①等值与非等值连接查询;
②自身连接;
③外连接;
④复合条件连接;
(7)掌握嵌套查询的基本方法;
(8)掌握集合查询的基本方法;
(9)熟练掌握查询视图操作
(10)熟练掌握更新视图操作
(11)熟练关系的完整性概念,领会视图的用途
(12)练习以下各类查询:
①带有IN谓词的子查询;
②带有比较运算符的子查询;
③带有ANY或ALL谓词的子查询;
④带有EXISTS谓词的子查询;
⑤视图查询与更新操作;
二、实验内容
根据以下给定的部分数据表信息,分别对student, course, score, teacher, teching 表进行数据插入以及根据题目要求用SQL语句实现。
-- student表插入数据;
insert
into student(sno,sname,sbirthday,sclass)
values('011110101','章海潮','1982.02.07','信管系0101');
insert
into student(sno,sname,sbirthday,sclass)
values('011111204','董承悟','1982.06.06','电商系0102');
-- course表插入数据
insert
into course(cno,cname,credit,ctime)
values('C001','数据库原理','4','64');
insert
into course(cno,cname,credit,ctime)
values('C002','高等数学','4','72');
--score表插入数据
insert
into score(sno,cno,score)
values('011110101','C001','90');
insert
into score(sno,cno,score)
-- teacher表插入数据
insert
into teacher(tno,tname,tsex,department,tbirthday)
values('T001','江承基','男','信息管理系','1964.03.21');
insert
into teacher(tno,tname,tsex,department,tbirthday)
values('T002','梁其政','男','信息管理系','1973.12.12');
-- teaching表插入数据
insert
into teaching(tno,cno,tdate,classroom,sclass)
values('T001','C005','2012-01-09','西二405','信管系0101');
insert
into teaching(tno,cno,tdate,classroom,sclass)
values('T001','C002','2013-04-10','主401','会计系0102');
--(2)select * from student;
--(3)select sno,sname from student;
--(4)select sno,sname,sclass from student group by(sclass);
--(5)select sname,year(sbirthday) from student ;
--(6)select sname,year(Curdate())-year(sbirthday) as 年龄from student ;
--(7)select sname from student where sclass='信管系0101';
--(8)select sname,year(Curdate())-year(sbirthday) as 年龄from student where year(Curdate())-year(sbirthday) <27;
--(9)select sno from score where score<='60';
--(10)select student.sno,sname,o,cname from student,course,score where score=null and score.sno=student.sno and o=o;
--(11)select sname,sclass,year(Curdate())-year(sbirthday) as 年龄from student where year(Curdate())-year(sbirthday)>=15 and year(Curdate())-year(sbirthday)<=28;
--(12)select sname,sclass,year(Curdate())-year(sbirthday) as 年龄from student where year(Curdate())-year(sbirthday)<=15 and year(Curdate())-year(sbirthday)>=28;
--(13)select sname,sbirthday,sclass from student where sclass='信管系0101' or sclass='信管系0102';
--(14)select sname,sbirthday,sclass from student where sclass!='信管系0101' and sclass!='信管系0102';
--(15)select * from student where sno='011113104';