数据库实验报告(合工大)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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';

相关文档
最新文档