湘潭大学数据库实验1

合集下载

数据库实验指导书1

数据库实验指导书1

数据库原理及应用实验指导书湖南工程学院计算机科学与通信学院2011年9月实验一一、实验目的:掌握建立一个数据库表结构的方法和步骤,了解数据库表的基本组成。

二、实验内容:基本表的创建和修改。

三、实验要求:(必做)硬件:Intel Pentium 120或以上级别的CPU,大于16MB的内存。

软件:Windows 95/98/2000操作系统,关系数据库管理系统SQL SERVER 2000。

学时:2学时四、实验步骤:1、用create建立教学数据库的五个基本表:(1)学生表(学号,姓名,性别,年龄),student((Sno,sname,ssex,sage) ;(2)课程表(课程号,课程名,学分),Course (Cno, Cname, credit) ;(3)选课表(学号,课程号,成绩),SC (Sno,, Cno, grade ) ;(4) 教师表(教师号,姓名,性别,出生年月,系部,职称,地址),T(Tno,Tname,ssex,birthday,dept,title,address) ;(5) 工资表(教师号,基本工资,职务工资,合计),Salary(Tno,jbgz,zwgz,hj);2、用alter修改基本表(1)在已存在的学生表student中增加一个sdept(系)的新的属性列;(2)将学生表student中sname属性列的数据类型修改为变长字符串varchar(10)。

3、建立一个临时表,然后将其删除数据库原理实验报告实验名称评分实验日期2011 年10 月9 日指导教师姓名朱旭稀专业班级计算机科学与技术0903班学号 2一、实验目的1.掌握建立一个数据库表结构的方法和步骤;2.了解数据库表的基本组成。

二、实验内容与步骤1.建立5个表create table student(Sno int not null primary key,sname varchar(20),ssex varchar(10),sage int)create table Course(Cno int not null primary key,Cname varchar(20),credit varchar(40))create table SC(Sno int not null,Cno int not null,grade float not null,primary key (Sno,Cno),foreign key (Sno) references student(Sno), foreign key (Cno) references Course(Cno),)create table T(Tno int not null primary key,Tname varchar(20),Tsex varchar(10),brithday smalldatetime,dept varchar(20),title varchar(50),adress varchar(100))create table Salay(Tno int not null primary key,jbgz float,zwgz float,hj float,foreign key (Tno) references T(Tno))2.修改基本表alter table student add dept varchar(10)alter table student alter column sname varchar(10)3.建立一个临时表,然后将其删除create table Test(id int not null primary key,name varchar(20))drop table Test三、实验结果四、程序调试及问题分析六、实验收获及体会实验二一、实验目的:了解建立索引的目的,掌握建立索引与删除索引,掌握创建、修改、删除约束。

湘潭大学数据库试卷及答案

湘潭大学数据库试卷及答案

二、设计题(共18分)1.某县要设立一个干部管理系统,请设计ER图,对此系统进行描述,要求包含乡镇和干部信息(具体为:乡镇编号,乡镇名称,人员编号,姓名,职务)。

(10分)2.按两种方式将上述概念模型转换为关系模型。

(8分)三、计算题(共20分)设有关系模式R(U,F),U=ABCDE,F=(B→C,C→D,B→D,AB→CD,A→B),求:①该关系的码是什么,并作证明.②将其分解成3NF,要求分解具有无损连接性且保持函数依赖.(20分)四、综合题(共47分)设教学数据库中有如下第三个表:S(SNO,SNAME,AGE,SEX,SDEPT),学生表(学号,姓名,年龄,性别,院系);SC(SNO,CNO,GRADE),选课号(学号,课号,成绩);C(CNO,CNAME,CDEPT,TNAME),课程表(课程号,课程名,课程所在院系,教师姓名)。

(注:中文关系或字段名称是注释)1.用关系代数式和SQL语言两种方式表示如下功能的实现:(16分)①查询教师姓名为TOM的所有课程信息;②查询学生关系中所有学生的姓名;③查询所有学生如下选课信息(姓名,课程号,成绩);④查询选修了全部课程的学生的学号;2.用SQL语言一种方式实现如下操作:(21分)①往选课表中添加如下元祖(学号20151234,课号7)(注:还没考试);②考试后修改上面添加的元组,将成绩设置为(80);③查询选修了课程号为14的课程的学生信息(学号和姓名)(要求使用IN)④删除学号为20150001学生的所有选课信息;⑤查询没有选修18号课程的学生;⑥查询其他系中比CS系所有学生年龄大的学生姓名和年龄(要求使用ANY或)⑦将上面的查询用集合函数实现;一、①查询教师姓名为TOM的所有课程信息;SELECT 课程号,课程名,院系FROM 课程表WHERE 教师姓名=”TOM”②查询学生关系中所有学生的姓名;SELECT 姓名FROM 学生WHERE EXISTS (SELECT *FROM 选课WHERE 学生.学号=学号)③查询所有学生如下选课信息(姓名,课程号,成绩);SELECT S.SNAME,CNO,GRADEFROM S,SC,CWHERE S.SNO=SC.SNO AND O=O④查询选修了全部课程的学生的学号;SELECT 学号FROM 学生WHERE NOT EXISTS (SELECT *FROM 课程WHERE NOT EXISTS(SELECT *FROM 选课WHERE 学生.学号=学号AND 课程.课程号=课程号))二、①INSERTINTO 选课号(学号,课号)VALUES(“20151234”,”7”)②UPDATE 选课号SET 成绩=80WHERE 学号=”20151234”,课号=”7”③SELECT 学号,姓名FROM 学生WHERE IN (SELECT *FROM 选课WHERE 学生.学号=学号AND 课程号=”14”)④DELETEFROM 选课WHERE 学号=”20150001”⑤SELECT 姓名FROM 学生WHERE NOT EXISTS (SELECT *FROM 选课WHERE 学生.学号=学号AND 课程号=”18”⑥SELECT 姓名,年龄FROM 学生WHERE 年龄>ANY (SELECT 年龄FROM 学生WHERE 所在系=”CS”)AND 所在系< >”CS”四、GRANT ALL PRIVILEGES ON V-MATHTO JOEWITH GRANT OPTION。

数据库实验报告(通用3篇)

数据库实验报告(通用3篇)

数据库实验报告(通用3篇)数据库试验报告篇1一、实训时间:20_年5月13日至5月24日二、实训地点:三、实训目的与意义:1,这次实习可以使我们在课本上学到的学问用于实践增加了我对电脑技巧的一些认知。

2,通过这次实习也可以让我体验到上班族的生活为我将来毕业后找工作打下了基础。

3,并且这次实习可以非常好的关心我完成将来的毕业论文。

四、实训感悟:还依旧记得来的第一天对这里很茫然,不知道实习要做些什么。

然后经过老师的急躁讲解,熟悉了自己实习要做些什么,得到了许多心理熟悉,对许多问题都有了一些更深的了解。

同时,我熟识了河北玛世电子商务有限公司,总部位于国家命名的“中国丝网之乡”、“中国丝网产业基地”、中国丝网产销基地“、”中国丝网出口基地“—河北省安平县。

使我们队公司有了更进一步的了解实习,就是在实践中学习。

经过这半个月的实习训练,我了解到自己所学的如何在实践中运用。

当然学的更多的是如何在更新网站内容和添加商品,每天不厌其烦的更新添加,观察自己的胜利更多的是兴奋。

还有发布了一些关于公司产品的博客,比如新浪,网易。

而后又尝试在百度知道上提问与回答,在回答问题的过程中,通过网站搜寻相关内容来回答各种丝网问题,通过百度知道这个平台,我对公司又了更一步的了解。

经过半个月的实训我学到了许多之前没有学过没有接触到的东西,熟悉到自己的不足,需要更加努力,才能尽快的学会在社会上生活,敢于面对社会的压力,使自己可以在社会上成长进展。

数据库试验报告篇2由于平常接触的都是一些私人项目,这些项目大都是一些类库,其他人的沟通相对可以忽视不计,因此也就不考虑规范化的文档。

实际上从学习的经受来看,我们接触的学问体系都是属于比较老或比较传统的,与现在进展快速的IT行业相比许多状况已不再适用,尤其是当开源模式渐渐走近开发者后更是如此。

虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。

数据库实验报告

数据库实验报告

实验(一): 熟练掌握SQL语言实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。

实验内容:具体包括如下三部分。

一、熟悉上机环境。

客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 2000)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。

具体包括:1.了解SQL Server 环境。

鼠标点击开始,进入“Microsoft SQL Server→企业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。

点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。

因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。

2.鼠标点击开始,进入“Microsoft SQL Server→查询分析器”,输入用户名和口令,进入SQL查询分析器。

如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。

3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。

二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。

1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模型描述的关系模式CREA TE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));CREA TE TABLE Course(Cno CHAR(4) PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno) );CREA TE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) );4在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不能建立,请分析原因,修改后建立上述约束。

数据库系统实验课实验报告

数据库系统实验课实验报告

数据库系统实验课实验报告一、实验目的数据库系统实验课是一门重要的实践课程,旨在通过实际操作和实验,深入理解数据库系统的原理和应用,提高我们的数据库设计、管理和应用开发能力。

本次实验的具体目的包括:1、熟悉数据库管理系统(DBMS)的操作环境和基本命令。

2、掌握数据库的创建、表的设计、数据的插入、查询、更新和删除等基本操作。

3、学会使用 SQL 语句进行复杂的数据查询和数据处理。

4、理解数据库的完整性约束、索引和存储过程的概念及应用。

5、培养解决实际数据库问题的能力和团队协作精神。

二、实验环境本次实验使用的数据库管理系统是 MySQL 80,实验在 Windows 10 操作系统上进行。

使用的开发工具包括 MySQL Workbench 和命令行终端。

三、实验内容1、数据库的创建使用 CREATE DATABASE 语句创建了一个名为“student_management”的数据库,用于存储学生管理相关的数据。

2、表的设计在“student_management”数据库中,设计了以下几张表:“students”表,包含学生的学号(student_id)、姓名(student_name)、性别(gender)、年龄(age)等字段。

“courses”表,包含课程的课程号(course_id)、课程名称(course_name)、学分(credit)等字段。

“enrolls”表,用于记录学生选课的信息,包含学号(student_id)、课程号(course_id)、成绩(grade)等字段。

在设计表时,为每个字段选择了合适的数据类型,并设置了主键和外键约束,以保证数据的完整性和一致性。

3、数据的插入使用 INSERT INTO 语句向“students”、“courses”和“enrolls”表中插入了一些示例数据,以便进行后续的查询和操作。

4、数据的查询使用简单的 SELECT 语句查询了“students”表中的所有学生信息。

湘潭大学数据库实验1

湘潭大学数据库实验1
《数据库原理》 实验教学指导书
实验一 数据模型设计与实现
撰写人:郭云飞
湘潭大学 信息工程学院 二○一五年三月
实验一 数据模型设计与实现
一.上机目的
1.了解并掌握数据模型的设计。 2.了解并掌握 Oracle 中的用 Create 命令定义表的方法,以及表的完整性定义。 3.了解并掌握 Oracle 中的用 Alter 命令和 Drop 命令对表的修改和删除。
其类型为 char,长度为 1。取值 0,1,2,3,默认值为 0(在校学习)。 每一个开课在选课前都有人数限制,选课后有选课人数统计。在 section 中将属性用 rs 表示。 将 takes 中 grade 由等级制改成百分制。 课程有公共基础课(1,2)与专业课,专业课有必修(3)与选修(4)。课程在第几学期开设都有规定。在
如:给 EMP1 增加一个属性 ALTER TABLE EMP1 ADD (SPOUSES_NAME CHAR(10));
MODIFY 关键字可以用来修改已存在的数据表定义。 如:把 EMP 中 ENAME 长度改为 25 个字符 ALTER TABLE EMP1 MODIFY (ENAM CHAR(25));
3. CREATE TABLE 命令 1)、CREATE TABLE table_name( column_name type(size), column_name type(size), …);
例如: CREATE TABLE student(
id VARCHAR2(10), name VARCHAR2(12), age NUMBER(2));
DROP 关键字可以用来删除已存在数据表的约束。 如:把 EMP 中主键删除 ALTER TABLE EMP1 DROP PRIMARY KEY;

湘潭大学 数据结构实验1 实验报告 源代码 线性表基本操作

湘潭大学 数据结构实验1 实验报告 源代码 线性表基本操作

“数据结构和算法II”课程实验报告实验名称:线性表的存储结构定义及基本操作班级姓名学号实验日期:实验机时:2 学时实验成绩:-------------------------------------------------------------------------------一.实验目的:1.掌握线性表的逻辑特征2.掌握线性表顺序存储结构的特点,熟练掌握顺序表的基本运算3.熟练掌握线性表的链式存储结构定义及基本操作4.理解循环链表和双链表的特点和基本运算5.加深对栈结构的理解,培养解决实际问题的编程能力。

6.加深对顺序存储数据结构的理解和链式存储数据结构的理解,逐步培养解决实际问题的编程能力二.实验内容:(1)基本实验内容:建立顺序表,完成顺序表的基本操作:初始化、插入、删除、逆转、输出、销毁, 置空表、求表长、查找元素、判线性表是否为空;建立单链表,完成链表(带表头结点)的基本操作:建立链表、插入、删除、查找、输出;其它基本操作还有销毁链表、将链表置为空表、求链表的长度、获取某位置结点的内容、搜索结点。

(2)扩展实验内容:查前驱元素、查后继元素、顺序表合并,两个有序单链表的合并操作等。

三.程序及注释:1.顺序表:#include<stdio.h>#include<stdlib.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef int status ;typedef int ElemType ;typedef struct{ElemType *elem;int length,listsize;}SqList;status InitList(SqList &L)//初始化{L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem) exit(OVERFLOW);L.listsize=LIST_INIT_SIZE;L.length=0;return OK;}status Build(SqList &L)//建立表{int i,n;printf("请输入元素个数n和n个元素\n");scanf("%d",&n);if(n>LIST_INIT_SIZE)//如果n大于当前空间{L.elem=(ElemType *)realloc(L.elem,(n+LISTINCREMENT)*sizeof(ElemType));if(!L.elem) exit(OVERFLOW);L.listsize=n+LISTINCREMENT;}for(i=0;i<n;i++)scanf("%d",L.elem+i);L.length=n;return OK;}void Print(SqList &L)//输出表中元素和长度{int i;for(i=0;i<L.length;i++)printf("%d ",*(L.elem+i));printf("\n长度为:%d\n\n",L.length);}void Tips()//提示函数{printf("请选择你的想要的操作:\n");printf("<1> 输出顺序表及顺序表的长度\n");printf("<2> 删除值为x的结点\n");printf("<3> 删除给定位置i的结点\n");printf("<4> 将顺序表逆置\n");printf("<5> 将顺序表按升序排序\n");printf("<6> 将x插入到顺序表的适当位置上\n");printf("<7> 将两个有序表合并\n");printf("<0> 退出\n\n");}status ListDelete1(SqList &L,int x)//删除值为X的元素{int i;for(i=0;i<L.length;i++)if(*(L.elem+i)==x)break;if(i==L.length)return ERROR;for(i++;i<L.length;i++)*(L.elem+i-1)=*(L.elem+i);L.length--;return OK;}status ListDelete2(SqList &L,int x)//删除第X个元素{int i;if(x<0||x>=L.length)return ERROR;for(i=x+1;i<L.length;i++)*(L.elem+i-1)=*(L.elem+i);L.length--;return OK;}void Inverse(SqList &L)//逆置函数{int i,t;for(i=0;i<L.length/2;i++){t=*(L.elem+i);*(L.elem+i)=*(L.elem+L.length-i-1);*(L.elem+L.length-i-1)=t;}}void Sort(SqList &L)//冒泡排序(升序){int i,j,t;for(i=1;i<L.length;i++)for(j=0;j<L.length-i;j++){if(*(L.elem+j)>*(L.elem+j+1)){t=*(L.elem+j);*(L.elem+j)=*(L.elem+j+1);*(L.elem+j+1)=t;}}printf("已按升序排列\n\n");}status ListInsert(SqList &L,int x)//将X插入,使仍然有序{int i,k;if(L.length>=L.listsize){L.elem=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType)); if(!L.elem) exit(OVERFLOW);L.listsize+=LISTINCREMENT;}for(i=0;i<L.length;i++)if(x<*(L.elem+i))break;k=i;for(i=L.length;i>k;i--)*(L.elem+i)=*(L.elem+i-1);*(L.elem+k)=x;L.length++;return OK;}status Merger(SqList &L,SqList &Lb)//合并两个线性表{int i,j,k;SqList Lc;InitList(Lc);if(Lc.listsize<L.length+Lb.length){Lc.elem=(ElemType *)realloc(Lc.elem,(L.length+Lb.length+LISTINCREMENT)*sizeof(ElemType)); if(!L.elem) exit(OVERFLOW);Lc.listsize=L.length+Lb.length+LISTINCREMENT;}i=j=k=0;while(i<L.length && j<Lb.length){if(*(L.elem+i) < *(Lb.elem+j)){*(Lc.elem+k)=*(L.elem+i);k++;i++;}else{*(Lc.elem+k)=*(Lb.elem+j);k++;j++;}}while(i<L.length){*(Lc.elem+k)=*(L.elem+i);k++;i++;}while(j<Lb.length){*(Lc.elem+k)=*(Lb.elem+j);k++;j++;}Lc.length=L.length+Lb.length;L=Lc;return OK;}int main(){int op,x,flag;SqList L,Lb;InitList(L);Build(L);Tips();scanf("%d",&op);while(op){switch(op){case 1:Print(L);case 2:printf("请输入要删除的数据X:\n");scanf("%d",&x);flag=ListDelete1(L,x);if(flag)printf("删除成功!!\n\n");elseprintf("元素不存在,删除失败!!\n\n");break;case 3:printf("请输入要删除的位置i:\n");scanf("%d",&x);flag=ListDelete2(L,x-1);//第i个元素对应的下标为i-1 if(flag)printf("删除成功!!\n\n");elseprintf("元素不存在,删除失败!!\n\n");break;case 4:Inverse(L);break;case 5:Sort(L);break;case 6:printf("请输入要插入的数据X:\n");scanf("%d",&x);flag=ListInsert(L,x);if(flag)printf("插入成功!!\n\n");elseprintf("插入失败!!\n\n");break;case 7:printf("请输入Lb的内容:\n");InitList(Lb);Build(Lb);flag=Merger(L,Lb);if(flag)printf("合并成功!!\n\n");break;}Tips();scanf("%d",&op);}2.单链表typedef int ElementType;#ifndef _List_H#define _List_Hstruct Node;typedef struct Node *PtrToNode;typedef PtrToNode List;typedef PtrToNode Position;List MakeEmpty( List L );int IsEmpty( List L );int IsLast( Position P, List L );Position Find( ElementType X, List L );void Delete( ElementType X, List L );Position FindPrevious( ElementType X, List L );void Insert( ElementType X, List L, Position P );void DeleteList( List L );Position Header( List L );Position First( List L );Position Advance( Position P );ElementType Retrieve( Position P );#endif#include <stdio.h>#include <stdlib.h>#define Error( Str ) FatalError( Str )#define FatalError( Str ) fprintf( stderr, "%s\n", Str ), exit( 1 ) struct Node{ElementType Element;Position Next;};List MakeEmpty( List L ) //创建空链表{if( L != NULL )DeleteList( L );L = malloc( sizeof( struct Node ) );if( L == NULL )FatalError( "Out of memory!" );L->Next = NULL;return L;}int IsEmpty( List L )//判断链表是否为空{return L->Next == NULL;}int IsLast( Position P, List L ){return P->Next == NULL;}Position Find( ElementType X, List L )//精确查找函数{Position P;P = L->Next;while( P != NULL && P->Element != X ){P = P->Next;n++;}if(P==NULL)printf("查找的成员不存在!!\n\n");elseprintf("查找的成员位于链表第%d位\n\n",n); }void Delete( ElementType X, List L )//精确删除函数{Position P, TmpCell;P = FindPrevious( X, L );if( !IsLast( P, L ) ){TmpCell=P->Next;P->Next=TmpCell->Next;free( TmpCell );}}Position FindPrevious( ElementType X, List L )//前驱查找函数{Position P;P = L;while( P->Next != NULL && P->Next->Element != X )P = P->Next;return P;}void Insert( ElementType X, List L, Position P )//元素插入函数{Position TmpCell;TmpCell = malloc( sizeof( struct Node ) );if( TmpCell == NULL )FatalError( "Out of space" );TmpCell->Element = X;TmpCell->Next = P->Next;P->Next = TmpCell;}void DeleteList( List L )//清空链表函数{Position P, Tmp;P = L->Next;L->Next = NULL;while( P != NULL ){Tmp = P->Next;free( P );P = Tmp;}if(IsEmpty(L))printf("链表清空成功!\n\n");}Position Header( List L )//表头调用函数{return L;}Position First( List L )//首元素调用函数{return L->Next;}Position Advance( Position P )//元素递进函数{return P->Next;}void show(List L)//显示链表函数{if(!IsEmpty(L)){Position p;p=First(L);printf("当前链表成员如下:\n");while(p!=NULL){printf("%d ",p->Element);if(Advance(p))p=Advance(p);else{printf("\n\n");break;}}}elseprintf("当前链表为空!!\n\n"); }void join(List L) //插入函数调用函数{int x,n,i;Position p=Header(L);printf("请输入需要插入的成员:\n");scanf("%d",&x);printf("需要将成员插入到第几位呢?\n");scanf("%d",&n);for(i=1;i<n;i++){p=p->Next;}Insert(x,L,p);show(L);}void find(List L)//查找函数调用函数{printf("请输入需要查找的成员:\n");int x;scanf("%d",&x);Find(x,L);}void count(List L)//链表长度统计函数{Position p;p=First(L);int n=0;while(p!=NULL){n++;if(Advance(p))p=Advance(p);elsebreak;}printf("当前链表长度为:%d\n\n",n);}void direction(List L)//位置访问函数{int n,i;Position p=Header(L);printf("请输入n的值:\n");scanf("%d",&n);for(i=0;i<n;i++){p=p->Next;}printf("第%d位成员为:%d\n\n",n,p->Element);}void change(List L)//修改元素函数{printf("请输入n的值:\n");int x,n,i;scanf("%d",&n);printf("请输入修改后的值:\n");scanf("%d",&x);Position p=Header(L);for(i=0;i<n;i++){p=p->Next;}p->Element=x;show(L);}void deletion(List L)//删除函数调用函数{printf("你要删除的成员是:\n");int x;scanf("%d",&x);Delete(x,L);show(L);}void main(){ List L;L=MakeEmpty(NULL);printf("请输入需要插入的成员个数:\n");int n;scanf("%d",&n);printf("请输入需要插入的成员以空格隔开:\n");int i;Position p;p=Header(L);for(i=0;i<n;i++){int x;scanf("%d",&x);Insert(x,L,p);p=Advance(p);}show(L);printf("请选择需要进行的操作:\n 1.计算链表长度\n 2.取第n个位置成员\n 3.修改第n个位置成员\n 4.在第n位插入新成员\n 5.删除成员\n 6.搜索成员\n 7.销毁链表\n 8.退出\n你输入的选项是:");scanf("%d",&n);while(n!=8){switch(n){case 1:count(L);break;case 2:direction(L);break;case 3:change(L);break;case 4:join(L);break;case 5:deletion(L);break;case 6:find(L);break;case 7:DeleteList(L);break;}printf("请选择需要进行的操作:\n 1.计算链表长度\n 2.取第n个位置成员\n 3.修改第n个位置成员\n 4.在第n位插入新成员\n 5.删除成员\n 6.搜索成员\n 7.销毁链表\n 8.退出\n你输入的选项是:");scanf("%d",&n);}}四.运行结果:1.顺序表:3.单链表:五.实验心得:通过这次写实验报告,我深切的理解了这门课的本质。

《数据库原理及应用》实验报告(1-21)

《数据库原理及应用》实验报告(1-21)

数据库原理及应用实验报告实验课程:数据库原理及应用学号:学生姓名:班级:2014年月日实验一创建和维护数据库一、实验目的(1)掌握在Windows 平台下安装与配置MySQL 5.5 的方法。

(2)掌握启动服务并登录MySQL 5.5 数据库的方法和步骤。

(3)了解手工配置MySQL 5.5 的方法。

(4)掌握MySQL 数据库的相关概念。

(5)掌握使用Navicat 工具和SQL 语句创建数据库的方法。

(6)掌握使用Navicat 工具和SQL 语句删除数据库的方法。

二、实验要求(1)学生提前准备好实验报告,预习并熟悉实验步骤;(2)遵守实验室纪律,在规定的时间内完成要求的内容;(3)1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤(1)在Windows 平台下安装与配置MySQL 5.5.36 版。

(2)在服务对话框中,手动启动或者关闭MySQL 服务。

(3)使用Net 命令启动或关闭MySQL 服务。

(4)分别用Navicat 工具和命令行方式登录MySQL。

(5)在my.ini 文件中将数据库的存储位置改为D:\MYSQL\DATA。

(6)创建数据库。

①使用Navicat 创建学生信息管理数据库gradem。

②使用SQL 语句创建数据库MyDB。

(7)查看数据库属性。

①在Navicat 中查看创建后的gradem 数据库和MyDB 数据库的状态,查看数据库所在的文件夹。

②利用SHOW DATABASES 命令显示当前的所有数据库。

(8)删除数据库。

①使用Navicat 图形工具删除gradem 数据库。

②使用SQL 语句删除MyDB 数据库。

③利用SHOW DATABASES 命令显示当前的所有数据库。

(9)使用配置向导修改当前密码,并使用新密码重新登录。

(10)配置Path 变量,确保MySQL 的相关路径包含在Path 变量中。

四、思考题My SQL的数据库文件有几种?扩展名分别是什么?五、实验总结1、收获2、存在的问题实验二管理表一、实验目的(1) 掌握表的基础知识。

数据库原理与应用(实验一)

数据库原理与应用(实验一)

《数据库原理与应用》实验报告(一)----认识Oracle及使用SQL*Plus一、实验目的1、认识Oracle数据库管理系统;2、了解并会使用SQL*Plus工具。

二、实验内容1、启动Oracle数据库【开始】->【控制面板】->【管理工具】-【服务】将服务名称以“Oracle”开头的四个服务启动:OracleDBConsoleorcl、OracleOraDb10g_home1iSQL*Plus、OracleServiceORCL、OracleOraDb10g_home1TNSListener。

启动方式:右键鼠标->【启动】。

2、启动SQL*Plus【开始】->【程序】->Oracle目录->【SQL Plus】用户名:system口令:xg1233、设置SQL*Plus环境选项4、CREATE TABLE语句创建表studentCREATE TABLE reader(cardid V ARCHAR2(10) PRIMARY KEY,name V ARCHAR2(8),sex V ARCHAR2(2) CHECK(sex IN(‘男’,’女’)),dept V ARCHAR2(20),class NUMBER(1)) ;5、在SQL*Plus中执行SQL语句(1)向表reader添加数据SQL>INSERT INTO readerV ALUES('S0002','张伟', '男','数学系',1);按照此方法依次添加5条记录。

(2)查询表reader所有记录SQL>SELECT * FROM reader;(3)查询表reader中男性读者的姓名、工作单位、读者类型。

SQL>SELECT name,dept,class FROM reader WHERE sex='男';6、常用SQL*Plus命令(DESC、LIST、RUN、EDIT、SA VE、START、@、SHOW、HELP)(1)DESC、LIST、RUN语句查询(2)SHOW语句查询(3)SHOW EEROR、HELP 、SPOOL语句查询三、三、实验总结刚接触到SQL*Plus时,因为用惯了Windows图形界面,感到很难接受,很麻烦,命令要一条条语句的输入,而且也容易出错,一不小心就会打错字母。

数据库原理实验指导书

数据库原理实验指导书

数据库原理实验指导书实验名称:试验一:SQL语言嵌套查询和数据更新操作所属课程:数据库原理实验类型:设计型实验实验类别:基础□专业基础√专业□实验学时:4学时一、实验目的1.熟悉和掌握对数据表中数据的查询操作和SQL命令的使用,学会灵活熟练的使用SQL 语句的各种形式;2.加深理解关系运算的各种操作(尤其的关系的选择,投影,连接和除运算);3.熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用;4.加深理解表的定义对数据更新的作用二、预习与参考1.熟悉SQL SERVER 工作环境;2.连接到学生-课程数据库3.复习对表中数据查询的SQL语言命令;4.复习对表中数据的插入、修改和删除的SQL语言命令。

三、实验要求(设计要求)针对教材例子,通过SQL SERVER企业管理器和查询分析器两种模式,熟悉数据嵌套查询、更新操作。

四、实验方法及步骤1.在表S、C、SC上进行简单查询;2.在表S、C、SC上进行连接查询;3.在表S、C、SC上进行嵌套查询;4.使用聚合函数的查询;5.对数据的分组查询;6.对数据的排序查询。

7.将数据插入当前数据库的表S、C、SC中;A:用SQL命令形式B:用SQL SERVER提供的企业管理器以交互方式进行8.将以上插入的数据分别以.SQL文件和.txt文件的形式保存在磁盘上;9.修改表S、C、SC中的数据;A:用SQL命令形式B:用SQL SERVER提供的企业管理器以交互方式进行10.删除表S、C、SC中的数据。

A:用SQL命令形式B:用SQL SERVER提供的企业管理器以交互方式进行五、实验内容在表S,C,SC上完成以下操作:1.查询学生的基本信息;2.查询“CS”系学生的基本信息;3.查询“CS”系学生年龄不在19到21之间的学生的学号、姓名;4.找出最大年龄;5.找出“CS”系年龄最大的学生,显示其学号、姓名;6.找出各系年龄最大的学生,显示其学号、姓名;7.统计“CS”系学生的人数;8.统计各系学生的人数,结果按升序排列;9.按系统计各系学生的平均年龄,结果按降序排列;10.查询每门课程的课程名;11.查询无先修课的课程的课程名和学时数;12.统计无先修课的课程的学时总数;13.统计每位学生选修课程的门数、学分及其平均成绩;14.统计选修每门课程的学生人数及各门课程的平均成绩;15.找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排列;16.查询选修了“1”或“2”号课程的学生学号和姓名;17.查询选修了“1”和“2”号课程的学生学号和姓名;18.查询选修了课程名为“数据库系统”且成绩在60分以下的学生的学号、姓名和成绩;19.查询每位学生选修了课程的学生信息(显示:学号,姓名,课程号,课程名,成绩);20.查询没有选修课程的学生的基本信息;21.查询选修了3门以上课程的学生学号;22.查询选修课程成绩至少有一门在80分以上的学生学号;23.查询选修课程成绩均在80分以上的学生学号;24.查询选修课程平均成绩在80分以上的学生学号;25.选做:针对SPJ数据库中的四个表S,P,J,SPJ,完成教材P74-75--习题5中的查询及教材P127--习题5中的查询。

湘潭大学j2ee实验报告(绝对完整)

湘潭大学j2ee实验报告(绝对完整)

实验一、应用服务器集成1.整合apache和tomcat 安装apache到c:\j2ee\Apache中解压tomcat到c:\j2ee\Tomcat中输入测试http://localhost/输入测试http://localhost:8080/接着关掉Apache和tomcat然后打开C:\j2ee\Apache\conf\httpd.conf去掉如下图红线框中的#符号在文件最后添加文件名为host,host里面新建一个test.jsp接着,在浏览器中输入http://localhost:8080/host/test.jsp得到如下页面在浏览器中输入http://localhost/host/test.jsp同样得到如下页面到此,Apache和tomecat整合成功!2.Tomcat+ActiveMQ实现消息服务在jsm-test项目中需要在tomcat的lib中导入一共导入6个包:commons-logging-1.1.jaractivemq-core-5.5.0.jaractivemq-web-5.11.1.jargeronimo-j2ee-management_1.1_spec-1.0.jargeronimo-jms_1.1_spec-1.1.1.jargeronimo-jta_1.0.1B_spec-1.0.1.jar修改文件:Tomcat conf下的context.xml<!-- The contents of this file will be loaded for each web application --><Context><!-- Default set of monitored resources --><WatchedResource>WEB-INF/web.xml</WatchedResource><!-- Uncomment this to disable session persistence across Tomcat restarts --> <!--<Manager pathname="" />--><!-- Uncomment this to enable Comet connection tacking (provides events on session expiration as well as webapp lifecycle) --><!--<Valve className="etConnectionManagerValve" />--><Resourcename="jms/FailoverConnectionFactory"auth="Container"type="org.apache.activemq.ActiveMQConnectionFactory"description="JMS Connection Factory"factory="org.apache.activemq.jndi.JNDIReferenceFactory"brokerURL="failover:(tcp://localhost:61616)?initialReconnectDelay=100&amp;maxReconnectAtte mpts=5"brokerName="localhost"useEmbeddedBroker="false"/><Resourcename="jms/NormalConnectionFactory"auth="Container"type="org.apache.activemq.ActiveMQConnectionFactory"description="JMS Connection Factory"factory="org.apache.activemq.jndi.JNDIReferenceFactory"brokerURL="tcp://localhost:61616"brokerName="localhost"useEmbeddedBroker="false"/><Resource name="jms/topic/MyTopic"auth="Container"type="mand.ActiveMQTopic"factory="org.apache.activemq.jndi.JNDIReferenceFactory"physicalName="MY.TEST.FOO"/><Resource name="jms/queue/MyQueue"auth="Container"type="mand.ActiveMQQueue"factory="org.apache.activemq.jndi.JNDIReferenceFactory"physicalName="MY.TEST.FOO.QUEUE"/></Context>Activemq conf下的activemq.xml文件<!--Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements. See the NOTICE file distributed withthis work for additional information regarding copyright ownership.The ASF licenses this file to You under the Apache License, Version 2.0(the "License"); you may not use this file except in compliance withthe License. You may obtain a copy of the License at/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.--><!-- START SNIPPET: example --><beansxmlns="/schema/beans"xmlns:amq="/schema/core"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.0.xsd/schema/core/schema/core/activemq-core.xsd/camel/schema/spring/camel/schema/spring/camel-spring.xsd"><!-- Allows us to use system properties as variables in this configuration file --><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/><broker xmlns="/schema/core" brokerName="localhost" persistent="true" useShutdownHook="false"><!-- Destination specific policies using destination names or wildcards --><destinationPolicy><policyMap><policyEntries><policyEntry queue=">" memoryLimit="5mb"/><policyEntry topic=">" memoryLimit="5mb"><dispatchPolicy><strictOrderDispatchPolicy/></dispatchPolicy><subscriptionRecoveryPolicy><lastImageSubscriptionRecoveryPolicy/></subscriptionRecoveryPolicy></policyEntry></policyEntries></policyMap></destinationPolicy><!-- Use the following to configure how ActiveMQ is exposed in JMX --><managementContext><managementContext createConnector="false"/></managementContext><!-- The store and forward broker networks ActiveMQ will listen to --><networkConnectors><!-- by default just auto discover the other brokers --><networkConnector name="default-nc" uri="multicast://default"/><!-- Example of a static configuration:<networkConnector name="host1 and host2" uri="static://(tcp://host1:61616,tcp://host2:61616)"/>--></networkConnectors><persistenceAdapter><amqPersistenceAdapter directory="activemq-data" maxFileLength="32mb"/></persistenceAdapter><!-- Use the following if you wish to configure the journal with JDBC --><!--<persistenceAdapter><journaledJDBC dataDirectory="${activemq.base}/data" dataSource="#postgres-ds"/></persistenceAdapter>--><!-- Or if you want to use pure JDBC without a journal --><!--<persistenceAdapter><jdbcPersistenceAdapter dataSource="#postgres-ds"/></persistenceAdapter>--><!-- The maximum about of space the broker will use before slowing down producers --><systemUsage><systemUsage><memoryUsage><memoryUsage limit="20 mb"/></memoryUsage><storeUsage><storeUsage limit="1 gb" name="foo"/></storeUsage><tempUsage><tempUsage limit="100 mb"/></tempUsage></systemUsage></systemUsage><!-- The transport connectors ActiveMQ will listen to --><transportConnectors><transportConnector name="openwire" uri="tcp://localhost:61616" discoveryUri="multicast://default"/><transportConnector name="ssl" uri="ssl://localhost:61617"/><transportConnector name="stomp" uri="stomp://localhost:61613"/><transportConnector name="xmpp" uri="xmpp://localhost:61222"/> </transportConnectors></broker><!--** Lets deploy some Enterprise Integration Patterns inside the ActiveMQ Message Broker ** For more details see**** /enterprise-integration-patterns.html--><camelContext id="camel" xmlns="/camel/schema/spring"><!-- You can use a <package> element for each root package to search for Java routes --><package>org.foo.bar</package><!-- You can use Spring XML syntax to define the routes here using the <route> element --><route><from uri="activemq:example.A"/><to uri="activemq:example.B"/></route></camelContext><!-- Uncomment to create a command agent to respond to message based admin commands on the ActiveMQ.Agent topic --><!--<commandAgent xmlns="/schema/core" brokerUrl="vm://localhost"/>--><!-- An embedded servlet engine for serving up the Admin console --><jetty xmlns="/schemas/jetty/1.0"><connectors><nioConnector port="8161"/></connectors><handlers><webAppContext contextPath="/admin" resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true"/><webAppContext contextPath="/demo" resourceBase="${activemq.base}/webapps/demo" logUrlOnStart="true"/><webAppContext contextPath="/fileserver" resourceBase="${activemq.base}/webapps/fileserver" logUrlOnStart="true"/></handlers></jetty><!-- This xbean configuration file supports all the standard spring xml configuration options --><!-- Postgres DataSource Sample Setup --><!--<bean id="postgres-ds" class="org.postgresql.ds.PGPoolingDataSource"><property name="serverName" value="localhost"/><property name="databaseName" value="activemq"/><property name="portNumber" value="0"/><property name="user" value="activemq"/><property name="password" value="activemq"/><property name="dataSourceName" value="postgres"/><property name="initialConnections" value="1"/><property name="maxConnections" value="10"/></bean>--><!-- MySql DataSource Sample Setup --><!--<bean id="mysql-ds" class="mons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/> <property name="username" value="activemq"/><property name="password" value="activemq"/><property name="maxActive" value="200"/><property name="poolPreparedStatements" value="true"/></bean>--><!-- Oracle DataSource Sample Setup --><!--<bean id="oracle-ds" class="mons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/><property name="url" value="jdbc:oracle:thin:@localhost:1521:AMQDB"/><property name="username" value="scott"/><property name="password" value="tiger"/><property name="maxActive" value="200"/><property name="poolPreparedStatements" value="true"/></bean>--><!-- Embedded Derby DataSource Sample Setup --><!--<bean id="derby-ds" class="org.apache.derby.jdbc.EmbeddedDataSource"> <property name="databaseName" value="derbydb"/><property name="createDatabase" value="create"/></bean>--></beans><!-- END SNIPPET: example -->Tomcat下webapps\aa项目的web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><servlet><servlet-name>jms-listener</servlet-name><servlet-class>com.flvcd.servlet.JMSListener</servlet-class><load-on-startup>1</load-on-startup></servlet><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>编译java命令:编译JMSListener.java至classes目录:javac-cp .;C:\j2ee\Tomcat\apache-tomcat-6.0.44\lib\servlet-api.jar;C:\j2ee\Tomcat\apache-t omcat-6.0.44\lib\geronimo-jms_1.1_spec-1.1.1.jar;C:\j2ee\Tomcat\apache-tomcat-6.0. 44\lib\activemq-core-5.5.0.jar -d . JMSListener.java运行Demo:启动ActiveMQ服务器启动Tomcat服务器:JMSListener将自动连接ActiveMQ broker,日志信息: Successfully connected to tcp://localhost:61616注意:JMSListener已经自动连接ActiveMQ broker日志信息:Successfully connected to tcp://localhost:61616访问http://localhost:8080/jms-test/publish.jsp Tomcat服务器日志将提示:接收刷新文章消息,开始刷新文章ID=2046接收刷新论坛帖子消息,开始刷新帖子ID=331访问http://localhost:8161/admin/topics.jsp查看MY.TEST.FOO的消息日志,分别发送和接收2条。

数据库实验报告

数据库实验报告

《数据库原理与技术》实验报告实验一、数据定义及更新语句练习一、实验内容建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(《数据库系统概论》第二章习题5中的四个表),要求实现关系的三类完整性。

S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY);二、完成情况附上按照实验内容编写的程序代码。

(小四号字,宋体)三、实验结果1、插入一条记录2、①将p表中的所有红色零件的重量增加5。

②将spj表中所有天津供应商的QTY属性值减少10。

用子查询。

3.利用Delete语句删除p表中的所有红色零件的记录。

附上各个步骤所用的实验用例与结果显示(小四号字,宋体)四、问题与解决(小四号字,宋体)1 .实验中遇到的问题及解决过程2 .实验中产生的错误及原因分析首先写出执行语句不成功的时候系统报告的错误信息。

然后分析错误原因,并给出解决办法。

实验二简单查询和连接查询一、实验内容(一)完成下面的简单查询:①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件。

③查询工程名称中含有“厂”字的工程明细。

(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。

②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。

③笛卡尔积:求s和p表的笛卡尔积。

④左连接:求j表和spj表的左连接。

⑤右连接:求spj表和j表的右连接。

二、完成情况(一)完成下面的简单查询:①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件。

③查询工程名称中含有“厂”字的工程明细。

(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。

②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。

oracle湘潭大学数据库数据查询实验报告

oracle湘潭大学数据库数据查询实验报告

湘潭大学实验报告课程: Oracle数据库实验题目:数据查询学院:信息工程学院专业:计算机科学与技术2班学号: 17姓名:韩林波指导教师:郭云飞完成日期:一.上机目的1. 掌握Select语句的运用,2. 掌握一些函数的应用,3. 掌握子查询的运用,4. 掌握连接和分组的应用,5. 掌握视图的创建。

二.实验内容常用oracle语句的学习,与相应视图的创建三.上机作业写出下列应用对应的SQL语句,并将查询语句定义为视图,视图名根据题号依次命名为V1、V2、…,如果一个应用要定义多个视图,则视图名根据题号依次命名为V1_1、V1_2、…。

针对基本表EMP和DEPT完成下列查询1) 检索EMP中所有的记录。

create or replace view v1 as select * from emp;2) 列出工资在1000到2000之间的所有员工的ENAME,DEPTNO,SAL。

create or replace view v2 as select ename,deptno,sal from emp where sal between 1000 and 2000;3) 显示DEPT表中的部门号和部门名称,并按部门名称排序。

create or replace view v3 as select dname,deptno from dept group by DNAME,deptno;4) 显示所有不同的工作类型。

create or replace view v4 as select distinct job from emp;5) 列出部门号在10到20之间的所有员工,并按名字的字母排序。

create or replace view v5 as select ename from emp where deptno between 10 and 20 order by ename;6) 列出部门号是20,工作是“CLERK”(办事员)的员工。

实验1 数据库创建-实验报告

实验1 数据库创建-实验报告

实验一创建数据库和表一、实验目的和要求熟悉上机环境和查询分析器界面;掌握如何启动、停止服务管理器和企业管理器的方法;掌握如何用企业管理器定义数据库、表、约束,如何向表中添加、修改、输出记录,如何查看表的内容等操作;掌握如何在查询分析器中,执行SQL语句、分析语句的执行结果;掌握如何在查询分析器中,用DDL语言定义数据库、表、约束,并用最简单的INSERT语句向表中添加记录。

二、实验内容及指导1.○1启动服务管理器○2使用企业管理器,创建StudentInfo数据库○3在该数据库里定义Students、Courses、Enrollment3个表,问题是开始的时候不清楚如何添加约束,后来知道是在默认值或绑定处添加,也可以右击列名,选择CHECK约束添加○4向3个表中添加若干记录,因为有约束存在,所以如果输入不在约束范围内就会报错。

○5查看已创建的数据库和3个表的内容2.实验2的“提高操作”,具体内容如下:表3- 1图书表结构表3- 2读者表结构表3- 3借阅表结构用SQL语句创建的数据库不知道放在了哪里,创建的3个表也不知道放在了哪里,而且那三个表建完后不在图书馆数据库里面,后来找到了图书馆数据库在安装盘D盘底下的DA TA文件中,3个表在master数据库里,于是又在每个表的前面加了一句话“USE 图书馆 GO”重新保存之后这三个表就在图书馆数据库里面了。

还有一个办法是这样建数据库,如创建一个名为scd3的数据库:create database scd3on primary(name='scd3',filename='g:\scd2\scd3.mdf')log on(name='scd3_log',filename='g:\scd2\scd3_log.ldf')这样所创建的数据库就放在了g盘底下scd2文件夹中。

USE scd3CREATE TABLE用户(ID CHAR(8)PRIMARY KEY,NAME NVARCHAR(20)NOT NULL,PWD NVARCHAR(20)NOT NULL)GO新建的用户表即在scd3数据库中。

实验一中文数据库信息检索(最终)

实验一中文数据库信息检索(最终)

文献检索实验报告(一)实验名称中文数据库信息检索实验姓名袁龙实验日期年月日学号27专业班级计算机1002 实验地点E513指导老师陈多评分一.实验目的:1.通过检索实验,使学生加深对课堂所讲检索知识和检索方法的巩固;2.了解并熟悉与专业有关的中文数据库信息检索系统的基本情况;3.了解并熟练掌握中文数据库信息检索系统的浏览器使用;4.了解并熟练掌握主要的常用中文文献检索系统的资源特色和检索方法,培养学生针对本专业课题进行检索的实际操作能力。

5.培养分析课题与正确运用逻辑组配运算符及其他检索技术构筑检索策略的能力。

二.实验要求及环境:连接到因特网的实验室局域网环境,并能通过学院图书馆入口访问以下数据库系统:1.万方数据资源系统2.维普信息资源系统3.中国知网数据库4.人大《复印报刊资料全文数据库》5.超星数字图书馆6.试用数据库7.湖南高校数字化图书馆注:检索结果页面截图下来贴在实验报告中,要求有显示检索条件窗口三.实验内容:1.在图书馆主页可以查询图书馆的馆藏信息,进入我馆OPAC查询界面后,提供的图书检索点有(7)个,分别是什么?请以著者为“郑国锠”进行检索,在典藏地为湖工中心馆能检索命中(0 )条题名。

其中牛志成著《C语言程序设计》的索书号是(TP312C/1105),分类号是(TP312C ),ISBN是(978-7-302-16562-0),由(清华大学)出版社2008年出版发行。

2.从图书馆网站CNKI(即中国期刊网)的“进入总库平台”中的“中国学术期刊网络出版总库”检索2005年出版、EI来源期限、篇名中包含“信息管理”的文献,任意下载一篇检索出的论文,分别下载CAJ格式和PDF格式,体验两种阅览器的各自功能。

3.利用湖南高校数字化图书馆入口,检索报纸全文数据库关于今年“亚太经合组织”的新闻报道,共有记录(1)条,记录时间最新一篇的新闻标题、刊登报纸、报纸日期、版号、分类号。

4.利用万方的“会议论文全文数据库”检索文献题名中包含“算法分析”的论文,国际会议,最近一个年。

数据库原理实验报告

数据库原理实验报告

计算机与信息学院数据库原理实验报告专业:计算机科学与技术班级:2012级本科班学号:*****姓名:指导教师:2014年06月18 日实验项目列表计算机与信息学院实验报告纸实验一数据库创建与管理一、实验目的与要求1、熟练掌握SSMS中界面方式创建和管理数据库。

2、熟练掌握SSMS查询编辑器T-SQL语句创建和管理数据库。

3、熟练掌握备份和还原数据库。

二、实验内容1、界面方式创建和管理数据库(1)创建数据库(2)修改数据库(3)删除数据库2、利用企业管理器备份和还原数据库(1)备份数据库(2)还原数据库3、T-SQL语句方式创建和管理数据库(1)创建SPJ数据库:在SSMS中“新建查询”,输入以下语句并运行CREATE DATABASE SPJON(NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' ,SIZE = 3,MAXSIZE = 10,FILEGROWTH = 10%)LOG ON(NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' ,SIZE = 1,FILEGROWTH = 10%)(2)修改SPJ数据库:在查询分析器中输入以下语句并运行ALTER DATABASE SPJMODIFY FILE(NAME='SPJ_Data',SIZE=4,ALTER DATABASE SPJADD FILE(NAME='SPJ_Data_2', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SPJ_Date_2.ndf',SIZE=1,MAXSIZE=10,FILEGROWTH=10%)(3)删除SPJ数据库:DROP DATABASE SPJ4、界面方式创建数据库XSBOOK,写出操作过程。

数据库实验报告(完整版)

数据库实验报告(完整版)

数据库实验报告班级:07111103学号:**********姓名:***实验一:[实验内容1 创建和修改数据库]分别使用SQL Server Management Studio和Transact-SQL语句,按下列要求创建和修改用户数据库。

1.创建一个数据库,要求如下:(1)数据库名"testDB"。

(2)数据库中包含一个数据文件,逻辑文件名为testDB_data,磁盘文件名为testDB_data.mdf,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB。

(3)事务日志文件,逻辑文件名为TestDB_log, 磁盘文件名为TestDB_log.ldf,文件初始容量为5MB, 最大容量为10MB,文件容量递增值为1MB。

2.对该数据库做如下修改:(1)添加一个数据文件,逻辑文件名为TestDB2_data,实际文件为TestDB2_data.ndf,文件初始容量为1MB,最大容量为6MB,文件容量递增值为1MB。

(2)将日志文件的最大容量增加为15MB,递增值改为2MB。

方法一:使用SQL Server Management Studio创建和修改数据库TestDB方法二:使用Transact-SQL语句创建和修改数据库TestDB方法一过于简单,暂不做讨论。

下面学习方法二。

首先,在sql sever 2008中单击新建查询。

然后键入下面的代码。

建立新的数据库。

1. 创建一个数据库,要求如下:2.对该数据库做如下修改:对刚刚的操作进行验证数据均已更新完毕。

[实验内容2 数据表的创建、修改和查询]1.熟悉有关数据表的创建和修改等工作,并了解主键、外键以及约束的创建和应用,熟练掌握使用SQL Server Management Studio和CREATE TABLE、ALTER TABLE等Transact-SQL语句对数据表的操作方法字段名数据类型字段长度注释项目编码char 10 主键名称varchar负责人编码char 10客户int开始日期datetime结束日期datetime员工数据表(Employee)字段名数据类型字段长度注释方法一:使用SQL Server Management Studio创建数据表并添加约束方法二:使用Transact-SQL语句创建数据表并添加约束2.向数据库TestDB中的两个数据表"项目数据表"和"员工数据表"中添加记录3.在查询分析器中书写Transact-SQL语句完成数据查询。

数据库原理实验报告

数据库原理实验报告

数据库原理实验报告实验⼀数据库管理系统软件的使⽤⼀、实验⽬的(1)认识⼏种常见的数据库管理系统,熟悉它们的使⽤界⾯;(2)熟练掌握建⽴数据库和表,向数据库输⼊数据、修改数据和删除数据的操作。

⼆、实验内容分别在Access 和SQL SERVER2000 中建⽴数据库并设计各表,输⼊多条实际数据,并实现数据的增、删、改操作。

三、实验步骤:分别在ACCESS数据库管理系统和SQL SERVR 2005环境下利⽤图形操作界⾯(⾮SQL语句)实现以下操作:1、创建⽤于学⽣管理数据库,数据库名为对表中的记录进⾏浏览、修改、删除操作。

本信息,课程信息和选课信息。

数据库XSGL包含下列3 个表:(l) student:学⽣基本信息。

(2)course:课程信息表。

(3)sc:学⽣选课表。

各表的结构分别如表1、表2和表3 所⽰。

表1 学⽣信息表:student表2 课程信息表:course表3 学⽣选课表:sc提⽰:在不使⽤SQL语句创建表的情况下,可通过ACCESS中的关系(菜单—⼯具—关系)和SQL SERVER 2005中的数据库关系图(数据库节点展开—数据库关系图)实现外键的创建。

外键字段和参照字段之间的数据类型以及长度要保持⼀致。

2、输⼊表中的记录分别在student表、course表和sc表中输⼊如下表中的记录:观察输⼊时有⽆提⽰错误,如果有如何修改,体会参照完整性的作⽤,弄清楚先输⼊那些表中记录,为什么?3、对表中的记录进⾏浏览、修改、删除操作。

实验⼆SQL语⾔(⼀) SQL定义语⾔⽬的:会⽤SQL语⾔进⾏基本表的结构的定义、修改、删除,会建⽴与删除索引;内容:⽤SQL语⾔进⾏基本表结构的定义、修改、删除,索引的建⽴和删除步骤:1、在SQL SERVER 2005中新建查询,建⽴到服务器的连接2、⽤SQL语⾔CREATE TABLE语句创建实验⼀中学⽣表student、课程表course 和选课表sc及其相应约束,具体约束如下:表1 学⽣信息表:student表2 课程信息表:course表3 学⽣选课表:sc3、向创建的表中输⼊数据,测试所创建的完整性约束是否起作⽤4、⽤SQL语⾔ALTER语句修改表结构;1) STUDENT表中增加⼀个字段⼊学时间scome,2)删除STUDENT表中sdept字段;3)删除创建的SC表中CNO字段和COURSE表CNO字段之间的外键约束;4)重建3)中删除的约束5、重新定义⼀个简单表,然后⽤SQL语⾔DROP语句删除该表结构;6、⽤SQL语⾔CREATE INDEX语句定义表STUDENT的SNAME字段的降序唯⼀索引;7、⽤SQL语⾔DROP语句删除索引;实验三SQL(⼆) SQL语⾔进⾏简单查询⽬的:掌握简单数据查询操作。

数据库原理实验报告实验

数据库原理实验报告实验

数据库原理实验报告实验摘要数据库作为一种重要的数据存储和管理工具,在计算机科学领域中起着至关重要的作用。

本实验旨在通过实践操作和理论知识学习,加深对数据库原理的理解与掌握。

在本实验中,我们将简要介绍实验的目的、实验环境、实验过程和实验结果,并对实验的意义进行总结。

一、实验目的1.加深对数据库管理系统的理解,熟悉数据库的基本操作和管理方法;2.学习如何进行数据库设计和规范化;3.学习使用SQL语言进行数据库查询和管理;4.掌握常用数据库操作和管理工具的使用。

二、实验环境1.硬件环境:一台配置较高的个人计算机;2.软件环境:数据库管理系统(如MySQL、Oracle等);3.实验工具:SQL语言编辑器。

三、实验过程1.数据库设计和规范化首先,我们需要根据实验需求,进行数据库的设计和规范化。

这包括确定数据库的实体、属性和关系,并建立表的结构和关系。

在设计和规范化过程中,需要考虑实体之间的关系、主键和外键的定义、规范化的程度等。

2.创建数据库和数据表根据设计好的数据库结构,我们需要创建数据库和数据表。

使用数据库管理系统提供的命令或图形界面工具,创建数据库,然后在数据库中创建对应的数据表。

在创建数据表时,需要指定每个字段的数据类型、约束和默认值等。

3.插入数据创建完数据库和数据表后,我们需要向数据表中插入数据。

可以通过手动添加数据或者导入外部数据文件的方式,将数据插入到对应的数据表中。

4.查询和管理数据使用SQL语言进行数据库的查询和管理是数据库操作的重要部分。

根据实验需求,编写相应的SQL语句,执行数据查询、删除、修改和更新等操作,对数据进行管理和操作。

可以通过SQL语言编辑器执行SQL语句,获得查询结果。

5.性能优化和数据保护为了提高数据库系统的性能和数据的安全性,我们还需要对数据库进行性能优化和数据保护。

可以通过索引、视图、事务、备份和恢复等技术手段,提高数据库的查询和操作效率,并保证数据的完整性和安全性。

湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告

湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告

计算机原理与设计实验报告实验一算术逻辑单元ALU姓名: XXX学号: 2013551728班级: 13级软件工程2班实验日期: 2014年 10 月22 日一.实验目的1.理解算术逻辑单元ALU的工作原理。

2.掌握算术逻辑单元ALU的设计方法。

3.验证32位算术逻辑单元ALU的加、减、与、移位功能。

4.按给定数据,完成几种指定的算术和逻辑运算。

二.实验内容算术逻辑单元ALU的设计如图1-1所示。

其中运算器addsub32能实现32位的加减运算。

参加运算的两个32位数据分别为A[31..0]和B[31..0],运算模式由aluc[3..0]的16种组合决定,而aluc[3..0]的值由4位2进制计数器LPM_COUNTER产生,计数时钟是Sclk(图1-1);r[31..0]为输出结果,Z为运算后的零标志位。

ALU功能如表1-1所示。

表1-1 ALU的运算功能注1、* 表示每一位都移至下一更高有效位, “+”是逻辑或,“加”是算术加三.实验步骤(1)设计ALU元件ALU元件设计代码:module alu (a,b,aluc,r,z);input [31:0] a,b;input [3:0] aluc;output [31:0] r;output z;assign r = cal(a,b,aluc);assign z = ~|r;function [31:0] cal;input [31:0] a,b;input [3:0] aluc;casex (aluc)4'bx000: cal=a+b;4'bx100: cal=a-b;4'bx001: cal=a&b;4'bx101: cal=a|b;4'bx010: cal=a^b;4'bx110: cal={b[15:0],16'h0};4'bx011: cal=b<<a[4:0];4'b0111: cal=b>>a[4:0];4'b1111: cal=$signed(b)>>>a[4:0];endcaseendfunctionendmodule(2)以原理图方式建立顶层文件工程原理图如下:(3)查看波形图波形图如下:(4)分配引脚结构图如下:引脚分配表如下:四.实验任务(1)按图1-1所示,在本验证性示例中用数据选择开关(键3控制)的高/低电平选择总线通道上的8位数据进入对应的数据锁存器lpm_latch中;即首先将键3输入高电平,用键2、键1分别向DA[7..0] 置数01010101(55H),这时在数码管4/3上显示输入的数据(55H);然后用键3输入低电平,再用键2、键1分别向DB[7..0]置数10101010(AAH),这时在数码管2/1上显示输入的数据(AAH);这时表示在图1-1中的两个锁存器中分别被锁入了加数55H和被加数AAH。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库原理》实验教学指导书实验一数据模型设计与实现撰写人:郭云飞湘潭大学信息工程学院二○一六年四月实验一数据模型设计与实现一.上机目的1.了解并掌握数据模型的设计。

2.了解并掌握Oracle中的用Create命令定义表的方法,以及表的完整性定义。

3.了解并掌握Oracle中的用Alter命令和Drop命令对表的修改和删除。

二.预备知识1.E-R图图例图例一(教材第5版)矩形,表示实体集菱形,表示联系集线段椭圆,表示属性下划线标识主键属性图例二(教材第6版)矩形,表示实体集菱形,表示联系集线段属性在实体矩形内列出下划线标识主键属性2.Oracle数据类型3.CREATE TABLE命令1)CREATE TABLE table_name( column_name type(size), column_name type(size), …);2)CREATE TABLE table_name [(column_name,…)] AS SELECT statement;新建一张表,用于保存查询结果。

4.完整性约束Oracle允许用户为表和列定义完整性约束来增强一定的规则。

可分为:表约束和属性约束1)NOT NULL约束NOT NULL约束保证属性值不能为NULL。

没有NOT NULL约束的属性,值可以为NULL。

2)UNIQUE约束指定一个属性或者属性的集合为唯一键。

在表中没有两行具有相同的值。

如果唯一键是基于单条记录的,NULL是允许的。

表约束命令格式:,[CONSTRAINT constraint_name] UNIQUE (Column, Column, …)属性约束命令格式:[CONSTRAINT constraint_name] UNIQUE3)主键约束(Primary Key Constraint)主键约束强制属性和属性集合的唯一性,并且用一个唯一索引来管理它。

每个表中只能用一个主键,这样可以通过主键来标识表中的每条记录。

NULL值不允许在主键属性出现。

表约束命令格式:,[CONSTRAINT constraint_name] PRIMARY KEY (Column, Column, …)属性约束命令格式:[CONSTRAINT constraint_name] PRIMARY KEY4)外键约束外键提供表内或表间的完整性规则。

外键必须依赖于一个primary或unique key。

表约束命令格式:,[CONSTRAINT constraint_name] FOREIGN KE Y (Column, Column, …) REFERENCE S table (column, column, …)属性约束命令格式:[CONSTRAINT constraint_name] FOREIGN KEY table (column)5)Check约束CHECK约束定义了每条记录必须满足的条件语法:[CONSTRAINT constraint_name] CHECK (condition)5.ALTER TABLE命令ALTER TABLE命令可用来修改数据表的定义。

6.DROP TABLE命令用DROP TABLE命令删除Oracle数据表的定义。

命令格式:DROP TABLE table_name [CASCADE CONSTRAINT];CASCADE CONSTRAINT选项说明了也把完整性约束一起删除。

注意:●D ROP TABLE也把数据表中的数据删除。

●数据表的VIEWS和SYNOMNYMS保留下来,但它们变成了不合法的。

●任何悬而未决的事务将被提交。

●只有数据表的生成者或DBA才有权删除它。

三.示例1.根据查询结果创建表CREATE TABLE DEPT1 ASSELECT DEPTNO,DNAME,LOC FROM DEPT WHERE 1=1;用DESCRIBE命令查看DEPT1表的结构。

输入命令:DESCRIBE DEPT1表结构显示如下:Name Null? TypeDEPTNO NOT NULL NUMBER(2)DNAME V ARCHAR2(14)LOC V ARCHAR2(13)2.创建表EMP1CREATE TABLE EMP1(EMPNO NUMBER(4) PRIMARY KEY,ENAME V ARCHAR2(10),JOB V ARCHAR2(10),MGR NUMBER(4),HIREDA TE DATE,SAL NUMBER(7,2),COMM NUMBER(7,2),DEPTNO NUMBER(2) ,CONSTRAINT fk_emp1 FOREIGN KEY (DEPTNO) REFERENCES DEPT, CONSTRAINT chk_sal CHECK( SAL > 0 ));其中fk_emp1与chk_sal是一个约束名。

用DESCRIBE命令查看EMP1表的结构。

输入命令:DESCRIBE EMP1表结构显示如下:Name Null? TypeEMPNO NOT NULL NUMBER(4)ENAME V ARCHAR2(10) JOB V ARCHAR2(10) MGR NUMBER(4)HIREDA TE DATESAL NUMBER(7,2)COMM NUMBER(7,2)DEPTNO NOT NULL NUMBER(2)3.给数据表EMP1增加一个属性ageALTER TABLE EMP1ADD (AGE NUMBER(2));输入命令:DESCRIBE EMP1表结构显示如下:Name Null? TypeEMPNO NOT NULL NUMBER(4)ENAME V ARCHAR2(10) JOB V ARCHAR2(10) MGR NUMBER(4)HIREDA TE DATESAL NUMBER(7,2)COMM NUMBER(7,2)DEPTNO NOT NULL NUMBER(2)AGE NUMBER(2)4.用ALTER的MODIFY关键字修改已存在的属性的定义如:把EMP1中ENAME长度改为12个字符ALTER TABLE EMP1MODIFY (ENAME V ARCHAR2(12));5.用ALTER的RENAME关键字对属性重命名如:把EMP1中HIREDATE重命名为gyrqALTER TABLE EMP1RENAME COLUMN HIREDA TE TO gyrq ;6.用ALTER的DROP命令删除一个属性ALTER TABLE EMP1DROP COLUMN JOB;或同时删除多个属性ALTER TABLE EMP1DROP (JOB, MGR);7.用ALTER的DROP关键字可以用来删除表的主键。

ALTER TABLE EMP1DROP PRIMARY KEY;8.用ALTER的ADD关键字给表添加主键。

ALTER TABLE DEPT1ADD PRIMARY KEY(deptno);9.用ALTER的DROP关键字删除外键约束。

ALTER TABLE EMP1DROP CONSTRAINT fk_emp1;10.用ALTER的ADD关键字给表添加外键。

ALTER TABLE EMP1ADD CONSTRAINT fk_emp2FOREIGN KEY(DEPTNO) REFERENCES DEPT1;11.用ALTER的ADD关键字给表添加检查约束条件ALTER TABLE EMP1ADD CONSTRAINT chk_age CHECK(AGE BETWEEN 18 AND 65);12.用ALTER的DROP关键字删除表检查约束条件ALTER TABLE EMP1ADD CONSTRAINT chk_sal;如果不知道约束的名字,可以执行如下命令:select table_name,constraint_name, search_condition from user_constraints;13.D ROPTABLE命令删除表DROP TABLE EMP1;四.实验内容1.创建教材中的大学数据库,E-R模型见教材。

(参考:/)2.修改大学数据库中的表∙因为教师有可能由于各种原因不再任课。

因此,在instructor中增加一个rk属性,其类型为char(1),取值1或0,分别表示任课或不任课,默认值为1。

∙在department中增加属性rs,表示该系任课教师人数。

∙学生状态,或在校学习(0),或毕业(1)、或结业(2)、或退学(3)等,在student中增加一个zt属性,其类型为char,长度为1。

取值0,1,2,3,默认值为0(在校学习)。

∙每一个开课在选课前都有人数限制,选课后有选课人数统计,在section中用属性rs表示。

∙将takes中grade由等级制改成百分制。

∙课程类型有公共基础课(1,2)与专业课,专业课有必修(3)与选修(4)。

课程在第几学期开设都有规定。

在course中增加两个属性,lx:用1、2、3、4表示课程类型;xq:用1-8与0表示学期,0表示该课程不再开设。

3.创建银行储蓄与借贷管理数据库bank。

(参考:/,教材第5版)①E-R模型先用Powerdesigner等工具画出该系统的E-R模型,如下:②关系模型根据E-R模型转换成关系数据模型(为方便,将属性名中的“-”(减号)改为下划线),如下:branch(branch_name, branch_city, assets)主关键字:branch_namecustome(customer_name, customer-street, customer_city)主关键字:customer_nameaccount(account_number, branch_name, balance)主关键字:account_number外部关键字:branch_nameloan(loan-number, branch_name, amount)主关键字:loan_number外部关键字:branch_namedepositor(customer_name, account_number)主关键字:customer_name, account_number外部关键字1:customer_name外部关键字2:account_numberborrower(customer_name, loan_number)主关键字:customer_name, loan_number外部关键字1:customer_name外部关键字2:loan_number③关系模型的说明④创建数据库用CREATE TABLE在Oracle中实现该模型。

相关文档
最新文档