实验一 基本表的定义

合集下载

实验1数据库定义实验 一 实验内容 1、数据库的创建、修改和删除 2、基本表的定义

实验1数据库定义实验 一 实验内容 1、数据库的创建、修改和删除 2、基本表的定义

实验1数据库定义实验一实验内容1、数据库的创建、修改
和删除2、基本表的定义
一、实验内容
1. 数据库的创建、修改和删除
- 创建名为`TestDB` 的数据库
```sql
CREATE DATABASE TestDB;
```
- 修改数据库的属性,例如增加日志文件大小
```sql
ALTER DATABASE TestDB
MODIFY FILE (NAME = TestDB_Log, SIZE = 50MB);
```
- 删除数据库
```sql
DROP DATABASE TestDB;
```
2. 基本表的定义
- 创建名为`Employees` 的表,包含员工编号(`ID`)、姓
名(`Name`)和工资(`Salary`)列
```sql
CREATE TABLE Employees (
ID INT PRIMARY KEY,
Name VARCHAR(50),
Salary DECIMAL(10, 2)
);
```
- 修改表结构,添加部门(`Department`)列
```sql
ALTER TABLE Employees
ADD Department VARCHAR(50);
```
- 删除表
```sql
DROP TABLE Employees;
```
二、总结
通过这个实验,你应该学会了如何使用SQL 语句创建、修改和删除数据库,以及定义基本表的结构。

数据库课程实验报告_实验一_SQL Sever 2000 了解系统和创建数据库

数据库课程实验报告_实验一_SQL Sever 2000 了解系统和创建数据库

实验一SQL Sever 2000 了解系统和创建数据库一实验目的要求1.初步了解SQL Sever 2000, 学习使用SQL Sever的常用工具。

2.练习Enterprise Manager 和Query Analyzer 的使用。

3.重点练习创建数据库和表,定义表的主键和外键。

4.学会数据库的备分和恢复。

二实验内容1.观察Microsoft SQL Sever 主要成分(1)找到系统目录,了解其中各子目录的作用;(2)找到系统自带的两个样本数据库和四个系统数据库;(3)了解系统提供的各种服务;(4)了解系统提供的各种管理工具;(5)练习使用help功能和Books Online.2.用Services Manger 启动,关闭服务器(1)启动服务器;(2)设置/取消自动启动;(3)关闭服3.初步使用Enterprise Manager(1) 进入Enterprise Manager窗口;(2) 注册服务器;(3) 登陆服务器;(4) 修改口令;(5) 设置服务器属性;(6) 添加新用户数据库操作;(7) 删除已注册的服务器;4.初步使用Qyert Analyzer(1)进入Qyert Analyzer 窗口;(2)在工具条上的Database 框中选中数据库;(3)查看pubs 数据库中表的数据;5定义数据(1)创建和撤消数据库数据库名为”student”,它的数据文件名为”student .MDF“,初始容量为10MB,需要是每次增长20%。

①用Enterprise Manager 创建,再删除这个数据库。

②用SQL语句创建,再删除这个数据库。

③用创建数据向导创建这个数据库。

6.基本表定义:学生表:S(SNO,SNAME,AGE,SEX,SDEPT)课程表:C(CNO,CNAME,CDEPT,TNAME)学习情况表:SC(SNO,CNO,GRADE)(2) 用SQL语句创建SC表并定义主键和外键,定义用户规定的完整性(成绩在0-100之间)7.利用INSTER语句,向S,C和SC表输入数据。

2016《数据库原理》实验指导书SQL-Server2012

2016《数据库原理》实验指导书SQL-Server2012

网络数据库技术实验指导书南京工业大学经济与管理学院2017年9月目录实验目的 (2)实验要求 (2)实验环境 (2)实验一、常用数据库管理系统介绍 (3)实验二、SQL Sever 数据库管理系统的基本操作 (10)实验三、基本表的定义 (26)实验四、基本表与删除索引的修改与删除 (30)实验五、条件及统计汇总查询 (35)实验六、数据表连接查询与数据更新操作 (39)实验七、视图的定义、查询与维护 (42)实验八、数据库的完整性实验 (43)实验九、触发器实验 (46)实验十、数据的导出与导入实验 (55)实验十一数据库备份与数据库还原技术 (72)实验十二、数据库用户管理技术 (77)实验十三、数据库综合设计与实现 (77)实验目的数据库原理是一门理论和实践很强的课程。

学生学习这门课程要求掌握两方面内容:数据库设计和上机实践。

因此数据库的实验要围绕这两方面进行。

通过对 Access、SQL Server 数据库管理系统的学习帮助学生巩固和加深理解所学过的理论知识,树立工程的观点和严谨的科学作风,使学生熟练掌握基本的 SQL 语句,熟悉 SQL Server 数据库管理系统的功能、数据管理、应用和开发技术。

熟练使用 SQL 语句创建数据库、表、索引、修改表结构,以及进行数据的查询、更新、定义视图等操作。

掌握 SQL Server 中触发器的创建方法,学会数据的导入和导出操作。

通过实验,培养学生的动手能力以及在实践中发现问题并能及时解决问题的能力,锻炼学生的逻辑思维能力,提高数据库应用开发能力。

为学生毕业后从事计算机应用职业做好必要的准备。

实验要求给出一个现实世界的应用问题要求学生在正确分析问题的基础上,完成以下任务:1、熟悉概念数据库的概念;2、熟悉运用 SQL操纵数据库;3、熟悉 SQL Server数据库管理系统环境,学会用该数据库管理系统创建数据库;4、理解范式的意义,能判断其能达到第几范式。

数据库SQL语句实验报告

数据库SQL语句实验报告

《数据库原理及应用》实验报告SQL语句部分总成绩:实验一熟悉SQL SERVER,数据定义实验实验一成绩:一、实验目的1、利用查询分析器创建数据库2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作二、实验步骤及内容在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。

1.创建学生课程数据库3.创建课程关系表C :4.创建课程关系表SC :5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。

6、在表S上增加“出生日期”属性列。

7、删除表S的“年龄”属性列。

8、删除S姓名列的唯一值约束。

9、修改SC表成绩属性列为精确数字型。

10、在表S上,按“Sno”属性列的唯一值方式建立索引。

11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。

12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。

三、实验结果:1.创建学生课程数据库create database Studend;create table S(Sno CHAR(9)PRIMARY KEY, Sname CHAR(20)UNIQUE, Ssex CHAR(2),Sage smallint,Sdept char(20),);3.创建课程关系表C :create table C(Cno char(4)primary key, Cname CHAR(40),Cpno char(4),Ccredit SMALLINT,);4.创建课程关系表SC :create table SC(Sno char(9),Cno char(4),Grade smallint,);5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。

6、在表S上增加“出生日期”属性列。

alter table S add Sbirthday datetime;7、删除表S的“年龄”属性列。

实验一顺序表的基本操作实验报告

实验一顺序表的基本操作实验报告

元素之后的所有数据都前移一个位置,最将线性表长减1。

3.顺序表查找操作的基本步骤:要在顺序表中查找一个给定值的数据元素则可以采用顺序查找的方法,从表中第 1 个数据元素开始依次将值与给定值进行比较,若相等则返回该数据元素在顺序表中的位置,否则返回0 值。

线性表的动态分配顺序存储结构—C语言实现#define MaxSize 50//存储空间的分配量Typedef char ElemType;Typedef struct{ElemType data[MaxSize];int length; //表长度(表中有多少个元素)}SqList;动态创建一个空顺序表的算法:void InitList(SqList *&L) //初始化线性表{L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表的空间L->length=0; //置空线性表长度为0}线性表的插入:status Sqlist_insert(Sqlist &L,int i,Elemtype x)/*在顺序表L中第i个元素前插入新元素x*/{ if (i<1||i>L.length+1) return ERROR; /*插入位置不正确则出错*/if (L.length>=MAXLEN)return OVERFLOW;/*顺序表L中已放满元素,再做插入操作则溢出*/for(j=L.length-1;j>=i-1;j--)L.elem[j+1]=L.elem[j]; /*将第i个元素及后续元素位置向后移一位*/L.elem[i-1]=x; /*在第i个元素位置处插入新元素x*/L.length++; /*顺序表L的长度加1*/return OK;}线性表的删除:status Sqlist_delete(Sqlist &L,int i,Elemtype &e)/*在顺序表L中删除第i个元素*{ if (i<1||i>L.length) return ERROR; /*删除位置不正确则出错*/for(j=i;j<=L.length-1;j++)L.elem[j-1]=L.elem[j]; /*将第i+1个元素及后继元素位置向前移一位*/L.length--;/*顺序表L的长度减1*/return OK;}线性表元素的查找:int LocateElem(SqList *L, ElemType e) //按元素值查找{int i=0;while (i<L->length && L->data[i]!=e)i++; //查找元素eif (i>=L->length) //未找到时返回0return 0;elsereturn i+1; //找到后返回其逻辑序号}输出线性表:void DispList(SqList *L) //输出线性表{int i;if (ListEmpty(L)) return;for (i=0;i<L->length;i++)printf("%c ",L->data[i]);printf("\n");}输出线性表第i个元素的值:bool GetElem(SqList *L,int i,ElemType &e)//求线性表中某个数据元素值{if (i<1 || i>L->length)return false; //参数错误时返回falsee=L->data[i-1]; //取元素值return true; //成功找到元素时返回true}代码:#include <stdio.h>#include <malloc.h>#define MaxSize 50typedef char ElemType;typedef struct{ElemType data[MaxSize];int length;} SqList;void InitList(SqList *&L);void DestroyList(SqList *L);bool ListEmpty(SqList *L);int ListLength(SqList *L);void DispList(SqList *L);bool GetElem(SqList *L,int i,ElemType &e);int LocateElem(SqList *L, ElemType e);bool ListInsert(SqList *&L,int i,ElemType e);bool ListDelete(SqList *&L,int i,ElemType &e);void InitList(SqList *&L)//初始化线性表{L=(SqList *)malloc(sizeof(SqList));//分配存放线性表的空间L->length=0;//置空线性表长度为0 }void DestroyList(SqList *L)//销毁线性表{free(L);}bool ListEmpty(SqList *L)//判线性表是否为空表{return(L->length==0);}int ListLength(SqList *L)//求线性表的长度{return(L->length);}void DispList(SqList *L)//输出线性表{int i;if (ListEmpty(L)) return;for (i=0;i<L->length;i++)printf("%c ",L->data[i]);printf("\n");}bool GetElem(SqList *L,int i,ElemType &e)//求线性表中某个数据元素值{if (i<1 || i>L->length)return false;//参数错误时返回falsee=L->data[i-1];//取元素值return true;//成功找到元素时返回true}int LocateElem(SqList *L, ElemType e)//按元素值查找{int i=0;while (i<L->length && L->data[i]!=e)i++;//查找元素eif (i>=L->length)//未找到时返回0return 0;elsereturn i+1;//找到后返回其逻辑序号}bool ListInsert(SqList *&L,int i,ElemType e)//插入数据元素{int j;if (i<1 || i>L->length+1)return false;//参数错误时返回falsei--;//将顺序表逻辑序号转化为物理序号for (j=L->length;j>i;j--)//将data[i]及后面元素后移一个位置L->data[j]=L->data[j-1];L->data[i]=e;//插入元素eL->length++;//顺序表长度增1return true;//成功插入返回true}bool ListDelete(SqList *&L,int i,ElemType &e)//删除数据元素{int j;if (i<1 || i>L->length)//参数错误时返回falsereturn false;i--;//将顺序表逻辑序号转化为物理序号e=L->data[i];for (j=i;j<L->length-1;j++)//将data[i]之后的元素前移一个位置L->data[j]=L->data[j+1];L->length--;//顺序表长度减1return true;//成功删除返回true}void main(){SqList *L;ElemType e;printf("顺序表的基本运算如下:\n");printf(" (1)初始化顺序表L\n");InitList(L);printf(" (2)依次采用尾插法插入a,b,c,d,e元素\n");ListInsert(L,1,'a');ListInsert(L,2,'b');ListInsert(L,3,'c');ListInsert(L,4,'d');ListInsert(L,5,'e');printf(" (3)输出顺序表L:");DispList(L);printf(" (4)顺序表L长度=%d\n",ListLength(L));printf(" (5)顺序表L为%s\n",(ListEmpty(L)?"空":"非空"));GetElem(L,3,e);printf(" (6)顺序表L的第3个元素=%c\n",e);实验结果:心得体会:通过本次实验,实现了数据结构在程序设计上的作用,了解了数据结构语言,加深了对c语言的认识掌并掌握了线性表的顺序存储结构的表示和实现方法,掌握顺序表基本操作的算法实现,同时了解了顺序表的应用。

数据结构实验一 实验报告

数据结构实验一 实验报告

班级:姓名:学号:实验一线性表的基本操作一、实验目的1、掌握线性表的定义;2、掌握线性表的基本操作;如建立、查找、插入和删除等..二、实验内容定义一个包含学生信息学号;姓名;成绩的顺序表和链表二选一;使其具有如下功能:1 根据指定学生个数;逐个输入学生信息;2 逐个显示学生表中所有学生的相关信息;3 根据姓名进行查找;返回此学生的学号和成绩;4 根据指定的位置可返回相应的学生信息学号;姓名;成绩;5 给定一个学生信息;插入到表中指定的位置;6 删除指定位置的学生记录;7 统计表中学生个数..三、实验环境Visual C++四、程序分析与实验结果#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status; // 定义函数返回值类型typedef struct{char num10; // 学号char name20; // 姓名double grade; // 成绩}student;typedef student ElemType;typedef struct LNode{ElemType data; // 数据域struct LNode *next; //指针域}LNode;*LinkList;Status InitListLinkList &L // 构造空链表L {L=struct LNode*mallocsizeofstruct LNode; L->next=NULL;return OK;}Status GetElemLinkList L;int i;ElemType &e // 访问链表;找到i位置的数据域;返回给 e{LinkList p;p=L->next;int j=1;whilep&&j<i{p=p->next;++j;}ifp||j>i return ERROR;e=p->data;return OK;}Status SearchLNode L;char str;LinkList &p // 根据名字查找{p=L.next;whilep{ifstrcmpp->;str==0return OK;p=p->next;}return ERROR;}Status ListInsertLinkList L;int i;ElemType e // 在i个位置插入某个学生的信息{LinkList p;s;p=L;int j=0;whilep&&j<i-1{p=p->next;++j;}ifp||j>i-1 return ERROR;s=struct LNode*mallocsizeofLNode;s->data=e;s->next=p->next;p->next=s;return OK;}Status ListDeleteLinkList p;int i // 删除i位置的学生信息{int j=0;whilep->next&&j<i-1{p=p->next;++j;}ifp->next||j>i-1 return ERROR;LinkList q;q=p->next;p->next=q->next;delete q;return OK;}void InputElemType *e{printf"姓名:"; scanf"%s";e->name;printf"学号:"; scanf"%s";e->num;printf"成绩:"; scanf"%lf";&e->grade;printf"输入完成\n\n";}void OutputElemType *e{printf"姓名:%-20s\n学号:%-10s\n成绩:%-10.2lf\n\n";e->name;e->num;e->grade;}int main{LNode L;LinkList p;ElemType a;b;c;d;printf"\n********************************\n\n";puts"1. 构造链表";puts"2. 录入学生信息";puts"3. 显示学生信息";puts"4. 输入姓名;查找该学生";puts"5. 显示某位置该学生信息";puts"6. 在指定位置插入学生信息";puts"7. 在指定位置删除学生信息";puts"8. 统计学生个数";puts"0. 退出";printf"\n********************************\n\n"; int x;choose=-1;whilechoose=0{puts"请选择:";scanf"%d";&choose;switchchoose{case 1:ifInitListpprintf"成功建立链表\n\n";elseprintf"链表建立失败\n\n";break;case 2:printf"请输入要录入学生信息的人数:";scanf"%d";&x;forint i=1;i<=x;i++{printf"第%d个学生:\n";i;Input&a;ListInsert&L;i;a;}break;case 3:forint i=1;i<=x;i++{GetElem&L;i;b;Output&b;}break;case 4:char s20;printf"请输入要查找的学生姓名:";scanf"%s";s;ifSearchL;s;pOutput&p->data;elseputs"对不起;查无此人";puts"";break;case 5:printf"请输入要查询的位置:";int id1;scanf"%d";&id1;GetElem&L;id1;c;Output&c;break;case 6:printf "请输入要插入的位置:";int id2;scanf"%d";&id2;printf"请输入学生信息:\n";Input&d;ifListInsert&L;id2;d{x++;puts"插入成功";puts"";}else{puts"插入失败";puts"";}break;case 7:printf"请输入要删除的位置:";int id3;scanf"%d";&id3;ifListDelete&L;id3{x--;puts"删除成功";puts"";}else{puts"删除失败";puts"";}break;case 8:printf"已录入的学生个数为:%d\n\n";x;break;}}printf"\n\n谢谢您的使用;请按任意键退出\n\n\n"; system"pause";return 0;}用户界面:(1)根据指定学生个数;逐个输入学生信息:(2)逐个显示学生表中所有学生的相关信息:(3)根据姓名进行查找;返回此学生的学号和成绩:(4)根据指定的位置可返回相应的学生信息学号;姓名;成绩:(5)给定一个学生信息;插入到表中指定的位置:(6)删除指定位置的学生记录:(7)统计表中学生个数:五、实验总结数据结构是一门专业技术基础课..它要求学会分析研究计算机加工的数据结构的特性;以便为应用涉及的数据选择适当的逻辑结构;存储结构及相应的算法;并初步掌握算法的时间分析和空间分析技术..不仅要考虑具体实现哪些功能;同时还要考虑如何布局;这次的实验题目是根据我们的课本学习进程出的;说实话;我并没有真正的读懂书本的知识;所以刚开始的时候;感到很棘手;于是又重新细读课本;这一方面又加强了对书本的理解;在这上面花费了一些心血;觉得它并不简单;是需要花大量时间来编写的....在本次实验中;在程序构思及设计方面有了较大的锻炼;能力得到了一定的提高..。

数据库原理实验答案

数据库原理实验答案
Values(7,'PASCAL语言',6,4);
3)向SC表中插入数据
Insert Into SC(Sno,Cno, Grade) Values(200215121,1,92);
Insert Into SC(Sno,Cno, Grade) Values(200215121,2,85);
Insert Into SC(Sno,Cno, Grade) Values(200215121,3,88);
Insert Into SC(Sno,Cno, Grade) Values(200215122,2,90);
Insert Into SC(Sno,Cno, Grade) Values(200215122,3,80);
Insert Into SC(Sno,Cno, Grade) Values(200215121,4,92);
Insert Into SC(Sno,Cno, Grade) Values(200215121,5,85);
Insert Into SC(Sno,Cno, Grade) Values(200215121,6,88);
Insert Into SC(Sno,Cno, Grade) Values(200215123,2,90);
select sno,grade from sc where cno='3' order by grade desc;
8)查询各个课程号与相应的选课人数。
select cno, count(sno) from sc group by cno;
2. 连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。

数据库原理与应用 教程

数据库原理与应用 教程

《数据库原理与应用》课程学习指导书何小卫编2005年5月于浙江师范大学教学大纲 (2)第一章绪论 31. 知识点与重点 (3)2.重要问题 (6)第二章关系数据库 61.知识点与重点 (6)2.重要题型 (9)第三章SQL 91. 知识点与重点 (9)2.重要题型 (13)3.问题 (17)第四章关系系统与查询优化181.知识点与重点 (18)2.重要题型 (20)第五章关系数据理论211. 知识点与重点 (21)2.重要题型 (23)第六章数据库设计241.知识点与重点 (24)2.重要题型 (29)第七章数据库恢复301. 知识点与重点 (30)2.重要题型 (33)第八章并发控制331. 知识点与重点 (33)2.重要题型 (37)第九章数据库安全371. 知识点与重点 (37)2.重要题型 (39)第十章数据库完整性391. 知识点与重点 (39)2.重要题型 (41)实验一Sql Server 数据库、表的管理 42实验二基本表的定义、删除、修改,建立和删除索引 43 实验三查询、数据更新、视图 44实验四嵌入式SQL的使用 45实验五数据库设计 46《数据库原理与应用》教学大纲一、课程概述数据库原理与应用是一门专业技术基础课,是计算机领域中最重要的技术之一,是软件学科的一个独立分支,包括数据库系统理论与数据库设计与应用两大部分。

通过对本课程的学习,可以获得有关数据库系统的基本理论知识,提高计算机理论水平;另一方面,通过对数据库系统理论的分析以及对数据库设计理论的学习,并结合相关学科的理论与实践知识,可以培养解决信息管理与工程设计中的实际问题的能力。

二、教学目的和要求本课程是计算机专业高年级学生的一门专业课,本课程在介绍数据库的基本知识、基本理论原理、方法技术的基础上,通过实验使学生掌握数据库创建、维护、查询等操作,并能在嵌入式环境中实现对数据库的操作,并能运用数据库的基本知识和软件工程的基本思想进行数据库的设计与实现。

《数据库实验》实验报告

《数据库实验》实验报告

《数据库实验》实验报告《数据库实验》实验报告黄爱蓉编审湖北汽车⼯业学院电⼦信息科学系⼆〇〇七年⼀⽉实验⼀:建⽴数据库及基本表实验报告⼀、实验⽬的1、了解SQL Server数据库的逻辑结构和物理结构;2、了解SQL Server的基本数据类型;3、学会在企业管理器中创建数据库和表;4、使⽤SQL查询分析器⽤CREA TE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。

⼆、实验内容1、创建数据库和查看数据库属性。

2、创建表。

3、查看和修改表结构。

4、熟悉企业管理器和查询分析器⼯具的使⽤⽅法三、实验步骤1、在企业管理器中创建数据库和数据表。

(1) 使⽤企业管理器建⽴图书管理数据库,数据库名为BM,初始⼤⼩为10MB,最⼤为50MB,数据库⾃动增长,增长⽅式是按5%⽐例增长;⽇志⽂件初始为2MB,最⼤可增长到5MB,按1MB增长。

数据库的逻辑⽂件名和物理⽂件名均采⽤默认值。

详细步骤:(2) 在企业管理器中查看图书管理数据库的属性,并进⾏修改,使之符合要求。

(3) 通过企业管理器,在建好了图书管理数据库BM中建⽴图书(book)、读者(reader)和借阅(borrow)3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借阅⽇期)。

创建上述三个表的步骤:三个表各个字段的数据类型:2、在查询分析器中创建数据库和数据表(1) 创建数据库S-C 的sql语句:(2) 在数据库S-C下,创建基本表学⽣表student(sno,sname,ssex,sage,sdept)的sql语句:创建基本表课程表course(cno,cname, ccredit)的sql语句:创建基本表成绩表sc(sno,cno,grade)的sql语句:(3) 在窗⼝下分别键⼊DROP TABLE Student及DROP TABLE SC命令,运⾏后观察结果。

数据类型实验报告(3篇)

数据类型实验报告(3篇)

第1篇一、实验目的1. 理解和掌握基本数据类型的概念及特点。

2. 掌握不同数据类型的存储方式和表示方法。

3. 能够根据实际需求选择合适的数据类型。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.8.53. 开发工具:PyCharm三、实验内容1. 基本数据类型实验2. 复杂数据类型实验3. 数据类型转换实验四、实验步骤及结果1. 基本数据类型实验(1)实验目的:了解基本数据类型的概念及特点。

(2)实验步骤:① 定义变量并赋值:a = 10,b = 'hello',c = 3.14② 输出变量的类型:print(type(a)),print(type(b)),print(type(c))(3)实验结果:变量a的类型为int,变量b的类型为str,变量c的类型为float。

2. 复杂数据类型实验(1)实验目的:了解复杂数据类型的概念及特点。

(2)实验步骤:① 定义列表:list1 = [1, 2, 3, 'a', 'b', 'c']② 定义元组:tuple1 = (1, 2, 3, 'a', 'b', 'c')③ 定义字典:dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}④ 定义集合:set1 = {1, 2, 3, 'a', 'b', 'c'}(3)实验结果:列表list1的类型为list,元组tuple1的类型为tuple,字典dict1的类型为dict,集合set1的类型为set。

3. 数据类型转换实验(1)实验目的:掌握不同数据类型之间的转换方法。

(2)实验步骤:① 将字符串转换为整数:str1 = '123',int1 = int(str1)②将整数转换为浮点数:int2 = 10,float1 = float(int2)③ 将浮点数转换为字符串:float2 = 3.14,str2 = str(float2)(3)实验结果:字符串str1转换为整数int1的结果为123,整数int2转换为浮点数float1的结果为10.0,浮点数float2转换为字符串str2的结果为'3.14'。

数据库实验报告

数据库实验报告

数据库设计实验报告学院: 计算机科学与软件学院班级:姓名:学号:实验一实验1.1 数据定义一、实验目的熟悉SQL的数据定义语言,能够熟练的使用SOL语句来创建和更改基本表,创建和取消索引。

二、实验内容本实验的主要内容包括:使用CREATE语句创建基本表。

更改基本表的定义,增加列,删除列,修改列的数据类型。

创建表的升降序索引、取消表、表的索引或表的约束。

三、习题(1)AGENTS(AID,ANAME,ITY,PERCEN).数据库表PRODUCTS(PID,PNAME)。

其中,CID,AID,PID分别是各表的主键,具有唯一性约束。

创建CUSTOMERS表:CREATE TABLE CUSTOMERS(CID INT NOT NULL,CNAME CHAR(8),CITY CHAR(8),DISCNT CHAR(8),PRIMARY KEY(CID))创建AGENTS表:CREATE TABLE AGENTS(AID INT NOT NULL,ANAME CHAR(8),CITY CHAR(8),PERCEN CHAR(8),PRIMARY KEY(AID))创建PRODUCTS表:CREATE TABLE PRODUCTS(PID INT NOT NULL,ANAME CHAR(8),PRIMARY KEY(PID))(2).创建数据库表ORDERS(ORDNA,MANTH,CID,AID,PID,QTY,DOLLARS).其中,ORDNA是主键,具有唯一性约束。

CID,AID,PID分别是外键引用自表CUSTOMERS,AGENTS,PRODUCTS.CREATE TABLE ORDERS(ORDNA INT NOT NULL,MONTH INT,CID INT,AID INT,PID INT,QTY CHAR(8),DOLLARS CHAR(8),PRIMARY KEY(ORDNA),FOREIGN KEY(CID)REFERENCES CUSTOMERS,FOREIGN KEY(AID)REFERENCES AGENTS,FOREIGN KEY(PID)REFERENCES PRODUCTS)(3).增加数据库表PRODUCTS三个属性列:CITY,QUANTITY,PRICE.ALTER TABLE PRODUCTS ADD CITY CHAR(8)ALTER TABLE PRODUCTS ADD QUANTITY CHAR(8)ALTER TABLE PRODUCTS ADD PRICE CHAR(8)(4).为以上四个表建立各自的按组建增序排列的索引CREATE INDEX XCNO ON CUSTOMERS(CID)CREATE INDEX XCNO ON AGENTS(AID)CREATE INDEX XCNO ON PRODUCTS(PID)CREATE INDEX XCNO ON ORDERS(ORDNA)(5) 取消(4)建立的四个索引DROP INDEX AGENTS.XCNODROP INDEX CUSTOMERS.XCNODROP INDEX PRODUCTS.XCNODROP INDEX ORDERS.XCNO实验1.2 数据查询一、实验目的:熟悉SQL语句的数据查询语言,能够使用SQL语句对数据库进行单表查询、链接查询、嵌套查询和统计查询。

实验一数据库及基本表的建立

实验一数据库及基本表的建立

实验一数据库及基本表的建立一、实验目的1、掌握SQL SERVER的查询分析器和企业管理器的使用;2、掌握创建数据库和表的操作;二、实验内容和要求1、练习使用SQL语句、企业管理器(Enterprise Manager)创建数据库;2、练习使用SQL语句、企业管理器(Enterprise Manager)创建数据库表;三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/xp;2.数据库管理系统:SQL sever 2005;四、实验方法、步骤及结果测试题目1、创建数据库“学生情况”:SQL语句Create database 学生情况查询分析器执行情况:SQL语句及执行结果截图显示找到主数据文件和日志文件,观察大小,并给出截图。

SQL语句EXEC sp_renamedb学生情况, student查询分析器执行情况:SQL语句及执行结果截图显示题目3、创建基本表含义字段名字段类型字段说明宽度学号Sno Char 10 主键,不允许为空姓名Sname char 10 不允许为空性别Ssex char 2 取值为男或女专业Ssp char 20系别Sdept char 20出生日期Sbirth datetime地区来源Sfrom varchar 30变动情况Schg char 10政治面貌Spa char 8 默认团员民族Snation char 8 默认为汉族含义字段名字段类型字段宽度说明课程编号Cno Char 10 主键课程名称Cname Char 10 唯一约束任课教师Tname Char 8Cdept Char 20开课系别学分CCredit Real 0-20含义字段名字段类型字段宽度说明学号Sno Char 10 外键,与cno共同构成主键课程编号Cno Char 10 外键,与sno共同构成主键成绩Grade real 检查约束0-100 备注Remark varchar 50SQL语句create table S(Sno char(10)primary key,Sname char(10)not null,Ssex char(2)check(Ssex='男'or Ssex='女'),Ssp char(20),Sdept char(20),Sbirth datetime,Sfrom varchar(30),Schg char(10),Spa char(8)default'团员',Snation char(8)default'汉族');create table C(Cno char(10)primary key,Cname Char(10)unique,Tname char(8),Cdept char(20),CCredit real check(CCredit>=0 and CCredit<=20));create table Sc(Sno char(10)References C(Cno),Cno char(10)References s(sno),Grade real check(Grade>=0 and Grade<=100))忘记了一个字段,加上:alter table Sc add Remake varchar(50)查询分析器执行情况:SQL语句及执行结果截图显示题目4*、用sql语句将C表中的ccredit改为整型,同样约束为0-20之间题目5、用sql语句在S表中添加一格“备注”字段remark,变长字符型,长度30,并保存结果题目6. 用sql语句将S表中“专业”字段数据类型改为varchar,长度为30并保存结果题目7. 用sql语句删除SC表中的“备注”字段并保存结果生成数据库关系图截图显示题目9*.用sql语句在S中增加约束,要求学号要用S开头,后接4位数字组成的字符串试着插入学号为0001,姓名为张三的学生,给出提示结果的截图alter table sc drop FK__Sc__Sno;update sc set sno='s'+sno;update s set sno='s'+sno;alter table s add constraint ck_s_sno check(sno like's____');alter table sc add constraint fk_sc_sno foreign key(sno)references s(sno);通过sql语句Sno Sname Ssex Ssp Sdept Sbirth Sfrom Schg Spa SnationRemarkS0001 高明男计算机科学与技术CS 1994-03-14 大连团员汉S 0002 东学婷女计算机应用CS 1986-10-24 包头转系团员蒙S 0003 张五男男电子商务MA 1984-2-17 上海退学团员汉S 0004 刘% 男电子商务MA 1985-4-24 巴盟团员汉S 0005 吴惠女软件开发CS 1985-2-10 通辽团员汉S 0006 王涛男软件开发CS 1984-9-8 赤峰团员满S 0007 郭凤丽男应用电子IS 1984-3-2 广州团员蒙S 0008 贾惠男应用电子IS 1983-2-2 深圳团员汉S 0009 刘一% 男软件开发CS 1985-9-9 东莞团员满S 0010 李春刚男计算机应用CS 1985-2-10 河源团员汉李春刚insert into s(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0001','高明','计算机科学与技术','CS','1994-03-14','大连',null,default,'汉)'insert into s(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0002','东学婷','女','计算机应用','CS','1986-10-24','包头','转系',default,'蒙',null);insert into s(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0003','张五男','男’,'电子商务','MA','1984-2-17','上海','退学',default,default,null);insert into s(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark) values ('s0004','刘%','男','电子商务','MA','1985-4-24','巴盟',null,default,default,null);insert into s(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark) values ('s0005','吴惠','女','软件开发','CS','1985-2-10','通辽',null,default,default,null);insert into s(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark) values ('s0006','王涛','男','软件开发','CS','1984-9-8','赤峰',null,default,'满',null);insert into s(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark) values ('s0007','郭凤丽','男','应用电子','IS','1984-3-2','广州',null,default,'蒙',null);insert into s(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark) values ('s0008','贾惠','男','应用电子','IS','1983-2-2','深圳',null,default,default,null);insert into s(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark) values ('s0009','刘一%','软件开发','CS','1985-9-9','东莞',null,default,'满',null);insert into s(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark) values ('s0010','李春刚','男','计算机应用','CS','1985-2-10','河源',null,default,default,'李春刚'');.通过sql语句向C表中添加数据,并保存结果Cno Cname Tname Cdept Ccredit01 计算机应用王晓梅IS 402 高等数学李一MA 603 网页制作张铁柱CS 604 软件工程付大鹏CS 405 数据库白一格CS 6INSERT INTO C(Cno,Cname,Tname,Cdept,CCredit)VALUES('01','计算机应用','王晓梅','IS',4) INSERT INTO C(Cno,Cname,Tname,Cdept,CCredit)VALUES('02','高等数学','李一','MA',6)INSERT INTO C(Cno,Cname,Tname,Cdept,CCredit)VALUES('03','网页制作','张铁柱','CS',6) INSERT INTO C(Cno,Cname,Tname,Cdept,CCredit)VALUES('04','软件工程','付大鹏','CS',4) INSERT INTO C(Cno,Cname,Tname,Cdept,CCredit)VALUES('05','数据库','白一格','CS',6)截图:Sno Cno Grade 0001 02 85 000103 75 000104 90 0002 05 50 0003 01 85 0003 02 75 0004 03 60 0004 02 92 0005 01 85 0005 04 46 0006 05 95 0006 03 52 0007 04 96 0007 05 85 0008 04 76 0008 05 68INSERT INTO Sc(Sno,Cno,Grade)V ALUES('001','02',85) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('001','03',75) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('001','04',90) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('002','05',50) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('003','01',85) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('003','02',75) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('004','03',60) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('004','02',92) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('005','01',85) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('005','04',46) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('006','05',95) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('006','03',52) INSERT INTO Sc(Sno,Cno,Grade)V ALUES('007','04',96)五、实验中出现的问题及解决方案1.创建数据库时常出错,可不删除原数据库,再修改字段,然后再重新定义数据库2.要去除强制外键约束,才能在中间插入值六、思考题1、说明数据库中的表和数据文件的关系。

实验报告——精选推荐

实验报告——精选推荐

实验报告实验⼀:数据定义及更新语句练习⼀、实验⽬的熟练掌握⽤SQL语句实现数据库和基本表的创建以及数据的更新。

⼆、实验内容(1)⽤SQL语句建⽴如下以⾃⼰名字为名的数据库,包括S,P,J,和SPJ四个基本表(教材第⼆章习题5中的四个表),要求实现关系的三类完整性。

S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY);(2)分别使⽤插⼊、删除、修改的⽅式更新基本表中的数据。

a.利⽤Insert 语句将习题中给出的⽰例记录插⼊各表。

b.利⽤Update更新表中的记录:①将p表中的所有红⾊零件的重量增加5。

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

⽤⼦查询。

c.利⽤Delete语句删除p表中的所有红⾊零件的记录。

三、完成情况1.创建四个基本表:CREATE TABLE S(SNO CHAR(20)PRIMARY KEY,SNAME CHAR(20),STATUS INT,CITY CHAR(20));CREATE TABLE P(PNO CHAR(20)PRIMARY KEY,PNAME CHAR(20),COLOR CHAR(10),WEIGHT INT);CREATE TABLE J(JNO CHAR(20)PRIMARY KEY,JNAME CHAR(20),CITY CHAR(20));CREATE TABLE SPJ(SNO CHAR(20),PNO CHAR(20),JNO CHAR(20),QTY INT,PRIMARY KEY(SNO,PNO,JNO),FOREIGN KEY(SNO)REFERENCES S(SNO),FOREIGN KEY(PNO)REFERENCES P(PNO),FOREIGN KEY(JNO)REFERENCES J(JNO));2.利⽤INSERT语句为四个基本表插⼊数据(每个表的插⼊操作均只以两个数据插⼊为例,其余省略):INSERTINTO SVALUES('S1','精益','20','天津');INSERTINTO SVALUES('S2','盛锡','10','北京');INSERTINTO PVALUES('P1','螺母','红','12');INSERTINTO PVALUES('P2','螺栓','绿','17');INSERTINTO JVALUES('J1','三建','北京');INSERTINTO JVALUES('J2','⼀汽','长春');INSERTINTO SPJVALUES('S1','P1','J1','200');INSERTINTO SPJVALUES('S1','P1','J3','100');3.利⽤UPDATE语句更新表中的记录:UPDATE PSET WEIGHT=WEIGHT+5WHERE COLOR='红';UPDATE SPJSET QTY=QTY-10WHERE SNO IN(SELECT SNOFROM SWHERE CITY='天津');4.利⽤Delete语句删除p表中的所有红⾊零件的记录DELETEFROM SPJWHERE PNO IN(SELECT PNOFROM PWHERE COLOR='红');DELETEFROM PWHERE COLOR ='红';四、实验结果1.利⽤INSERT 语句为四个基本表插⼊数据:2.利⽤UPDATE 语句更新表中的记录:3.利⽤Delete 语句删除p 表中的所有红⾊零件的记录五、问题与解决1.如何保存数据库?原以为需要⽤⼀次输⼊⼀次,后来通过⽼师讲解知道可以分离数据库(只保留.mdf⽂件就⾏了,到⽤时在附加数据库),还可以备份数据库。

基本表定义的实验原理

基本表定义的实验原理

基本表定义的实验原理
嘿,朋友们!今天咱来聊聊这个基本表定义的实验原理呀。

你看哈,这实验原理就像是我们做菜的菜谱。

咱得知道要用啥材料,啥步骤,才能做出一道美味的菜肴,对吧?这基本表定义的实验原理也是同样的道理呀。

它就像是一个指引我们在实验这个奇妙世界里闯荡的地图。

没有它,咱不就像没头苍蝇一样乱撞啦?比如说,咱要研究一个化学反应,要是不知道原理,那可就瞎搞啦,说不定还会弄出什么乱子来呢!
就好像你要去一个陌生的地方,没有地图你能找得到路吗?那肯定得迷路呀!这实验原理就是我们的“实验地图”,让我们清楚知道该往哪儿走,怎么做。

它还像是一把钥匙,能打开实验成功的大门。

要是钥匙不对,你再怎么使劲也打不开那扇门呀。

只有拿着正确的钥匙,也就是搞清楚了基本表定义的实验原理,我们才能顺利地进入实验的宝库。

想想看,要是没有这关键的原理,我们的实验不就像一艘没有方向的船在大海上漂荡吗?那多可怕呀!我们得靠着这原理,让船沿着正确的航线前进,最终到达成功的彼岸。

你说,这实验原理重要不重要?那简直太重要啦!它能让我们少走弯路,少犯错误,更快地得到我们想要的结果。

所以呀,朋友们,一定要好好理解和掌握这基本表定义的实验原理哦!别小瞧它,它可是我们实验成功的秘密武器呢!可别不当回事儿呀,不然到时候在实验里摸不着头脑,那可就傻眼咯!咱得重视起来,把它当作宝贝一样对待,让它为我们的实验之旅保驾护航!。

《数据库系统原理》课程实验

《数据库系统原理》课程实验

《数据库系统原理》课程实验姓名:班级:学号:佛山科学技术学院计算机系2012年12月目录一、实验所需表格 (3)二、实验内容 (3)2.1实验一SQL数据定义 (3)2.2实验二SQL数据查询 (7)2.3实验三连接、嵌套和集合查询 (14)2.4实验四SQL的数据更新 (21)2.5实验五视图的建立和维护 (24)2.6实验六触发器和存储过程 (330)三、实验感想 (37)参考资料1.王珊萨师煊.《数据库系统概论》(第四版).高等教育出版社,20062.李存斌.数据库应用技术---SQL Server2000简明教程.中国水利水电出版社,2001一、实验所需表格学生-课程数据库xskc中用到的三个表文件如下:学生表:StudentSno(学号)Sname(姓名)Ssex(性别)Sage(年龄)Sdept(所在系)200215121李勇男20CS(计算机科学系)200215122刘晨女19CS(计算机科学系)200215123欧阳原野女18MA(数学系)200215125刘阳光男19IS(信息系)课程表:CourseCno(课程号)Cname(课程名)Cpno(先修课)Ccredit(学分)1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL64学生选课表:SCSno(学号)Cno(课程号)Grade(成绩)200215121192200215121285200215121388200215122290200215122380二、实验内容2.1实验一SQL数据定义一、实验目的和要求1.掌握利用SQL查询分析器和企业管理器进行数据库及基本表的定义、删除与修改;2.掌握索引的建立与删除的方法。

二、实验内容及结果(一)建立数据库通过查询分析器或企业管理器建立学生-课程数据库xskc。

create database xskcon(name=xskc_data,filename='e:\sjksy\xskc_data.mdf')log on(name=xskc_log,filename='e:\sjksy\xskc_log.ldf')注:先在E:盘上建立一个文件夹(例如:E:\sjksy),数据库文件保存到自建的文件夹中。

实验一 知识表示方法

实验一 知识表示方法

实验一:知识表示方法一、实验目的状态空间表示法是人工智能领域最基本的知识表示方法之一,也是进一步学习状态空间搜索策略的基础,本实验通过牧师与野人渡河的问题,强化学生对知识表示的了解和应用,为人工智能后续环节的课程奠定基础。

二、问题描述有n个牧师和n个野人准备渡河,但只有一条能容纳c个人的小船,为了防止野人侵犯牧师,要求无论在何处,牧师的人数不得少于野人的人数(除非牧师人数为0),且假定野人与牧师都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出小船来回次数最少的最佳方案。

三、基本要求输入:牧师人数(即野人人数):n;小船一次最多载人量:c。

输出:若问题无解,则显示Failed,否则,显示Successed输出一组最佳方案。

用三元组(X1, X2, X3)表示渡河过程中的状态。

并用箭头连接相邻状态以表示迁移过程:初始状态->中间状态->目标状态。

例:当输入n=2,c=2时,输出:221->110->211->010->021->000其中:X1表示起始岸上的牧师人数;X2表示起始岸上的野人人数;X3表示小船现在位置(1表示起始岸,0表示目的岸)。

要求:写出算法的设计思想和源程序,并以图形用户界面实现人机交互,进行输入和输出结果,如:Please input n: 2 Please input c: 2Successed or Failed?: SuccessedOptimal Procedure: 221->110->211->010->021->000四、实验组织运行要求本实验采用集中授课形式,每个同学独立完成上述实验要求。

五、实验条件每人一台计算机独立完成实验。

#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct{int xds; //xiudaoshiint yr; //yerenint cw; //chuanwei}DataType;DataType fa[50000];typedef struct node{DataType data;struct node *son;struct node *bro;struct node *par;struct node *next;}Ltable;void Ltableinit(Ltable **head) //初始化邻接表的操作{*head=(Ltable *)malloc(sizeof (Ltable)); //动态分配空间(*head)->son=NULL;(*head)->bro=NULL;(*head)->par=NULL;(*head)->next=NULL;}void insertson(Ltable *head, DataType x) //在邻接表中插入儿子结点的操作{Ltable *q,*s;q=(Ltable *)malloc(sizeof (Ltable));q->data=x;head->son=q;s=head;while (s->next!=NULL)s=s->next;q->par=head;q->son=NULL;q->bro=NULL;s->next=q;q->next=NULL;}void insertbro(Ltable *head,DataType x) //在邻接表中插入兄弟结点的操作,所有的兄弟结点都指向他们右边的结点;{Ltable *q,*s;q=(Ltable *)malloc(sizeof (Ltable));s=head->son;q->data=x;while (s->bro!=NULL)s=s->bro;s->bro=q;s->next=q;q->next=NULL;q->bro=NULL;q->par=head;q->son=NULL;}int findfa(DataType x,int n) //生成在船上修道士仍安全的几种情况;{int i=0,a,b,t=0; if(x.cw){a=0;b=n-a; while (a+b>=1) {t++;while (b>=0) {fa[i].xds=a;fa[i].yr=b;i++;a++;b--;}a=0;b=n-a-t;}}else{a=1;b=0;t=0; while (a+b<=n) {t++;while (a>=0) {fa[i].xds=a*(-1); fa[i].yr=b*(-1);i++;a--;b++;}a=fa[0].xds*(-1)+t;b=0;}}return i;}int jiancha(DataType x,int n) //安全性检测,检查当前情况下,修道士是否安全{if ((x.xds>=x.yr||x.xds==0)&&((n-x.xds)>=(n-x.yr)||x.xds==n)&&x.xds>=0&&x.xds<=n& &x.yr>=0&&x.yr<=n)return 1;elsereturn 0;}void print(Ltable *q,Ltable *p) //打印安全渡河的过程{DataType a[100];int i=1;a[0].cw=0;a[0].xds=0;a[0].yr=0;while (q!=p){a[i++]=q->data;q=q->par;}while ((--i)>-1){printf("( %d %d %d )",a[i].xds,a[i].yr,a[i].cw);if (!(a[i].xds==0&&a[i].yr==0&&a[i].cw==0)){if (a[i].cw==1)printf(" --> ( %d %d ) --> ( %d %d 0 )\n",a[i].xds-a[i-1].xds,a[i].yr-a[i-1].yr,a[i-1].xds,a[i-1].yr);else printf(" <-- ( %d %d ) <-- ( %d %d 1 )\n",(a[i].xds-a[i-1].xds)*(-1),(-1)*(a[i].yr-a[i-1].yr),a[i-1].xds,a[i-1].yr);}else printf("\n");}printf("渡河成功!\n");}void work(Ltable *p,int n,int c){Ltable *q,*t;DataType tem;int i,flag,flag1,g=0,j,count=0;q=p->son;while (q!=NULL){flag=0;j=findfa(q->data,c);for (i=0;i<j;i++){tem.xds=q->data.xds-fa[i].xds;tem.yr=q->data.yr-fa[i].yr;tem.cw=1-q->data.cw;t=q;if (jiancha (tem,n)){flag1=1;while (t!=p){if(tem.xds==t->data.xds&&tem.yr==t->data.yr&&tem.cw==t->data.cw) {flag1=0;break;}t=t->par;}if(flag1==1){if (flag==0){insertson(q, tem);flag=1;}elseinsertbro(q,tem);if (tem.xds==0&&tem.yr==0&&tem.cw==0){print(q,p);count++;}}}}q=q->next;}if (count==0)printf("无法成功渡河,修道士好郁闷!\n");elseprintf("有%d种渡河方式。

数据库实验 建立基本表

数据库实验 建立基本表

课程名称:数据库系统概论实验项目:建立基本表计算机科学与技术学院实验教学中心2017 年10 月25 日实验项目名称:建立基本表一、实验目的熟练掌握数据库基本表的建立。

二、实验内容1、综合运用相关知识,熟悉数据库管理系统2、掌握基本表的建立方法,建立学生选课数据库。

三、实验步骤1、建立选课数据库打开SQL server的查询分析器,新建查询,输入如下sql语句create database scuse sc选课数据库包括学生表,课程表和学生选课表三个基本表:(1)学生表:Student(Sno,Sname,Ssex,Sage,Sdept)Sno-学号 Sname- 学生姓名 Ssex-性别 Sdept-所在系其中Sno为关系的主码(2)课程表:Course(Cno,Cname,Cpno,Ccredit)Cno-课程号 Cname-课程名 Cpno-先修课 Ccredit-学分其中Cno为关系的主码Cpno为外码,参照此表中的Cno(3)学生选课表:SC(Sno,Cno,Grade)Sno-学号 Cno-课程号 Grade-成绩其中Sno,Cno共同做关系的主码Sno为外码,参照学生表的SnoCno为外码,参照课程表的Cno2、建立基本表SQL语言使用create table语句定义基本表,其基本格式如下:Create table<表名>(<列名><数据类型>[列级完整性约束条件],<列名><数据类型>[列级完整性约束条件],...[表级完整性约束条件]);建表的同时通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中的数据时有数据库管理系统自动检查该操作是否违背这些完整性约束条件。

如果完整性约束条件涉及表的多个列,则必须定义在表级上,否则既可以定义在表级,也可以定义在列级。

常用数据类型(1)建立学生(1)创建表StudentSql语句如下create table Student(Sno char(10) primary key,Sname char(20) unique, //Sname取唯一值Ssex char(2),Sage int,Sdept char(20));(2)创建表Coursecreate table Course(Cno char(4) primary key,Cname char(20) not null, //Cname不能取空Cpno char(4),Ccreait int,foreign key(Cpno)references Course(Cno)/*表级完整性约束,Cpno是外码,被参照表是Course,被参照列是Cno*/);参照表和被参照表可以是同一个表。

实验一基本表的定义

实验一基本表的定义

实验一基本表的定义实验一基本表的定义、删除与修改一、实验目的: 熟练掌握基本表的定义、删除与修改,为后继学习作准备。

二、实验属性(验证性)(1)了解并掌握SQL查询分析器及企业管理器的使用;(2)掌握基本表的定义、删除与修改。

三、实验仪器设备及器材1. 安装有windows 操作系统计算机。

2. 安装有Oracle11g 和SQL Server 的计算机。

3. 安装有Visual Studio .net 和Java 编译器(eclipse 、Netbean 等) 的编译器。

4. 计算机具备网络环境。

四、实验要求( 预习、实验前、实验中、实验后等要求)1. 预习教材第三章,熟悉SQL语句。

2. 熟悉.net 、Java 或PowerBuilder 、Delphi 开发环境。

3. 能够熟练掌握.net 、Java 或PowerBuilder 、Delphi 环境下的数据库的编程。

实验原五、理SQL 语言应用。

六、实验步骤:(1) 启动Oracle 的SQL Developer 或者SQL Plus ,或者SQL Server 查询分析器;(2) 对于Oracle11g 的SQL Plus 需要进行登录,对于Oracle11g 的SQL Developer 需要进行建立连接。

如果选择SQL SERVE查询分析器,需要选择数据库;(3) 验证如下例子;1 熟悉SQL Server 数据库服务器1.1 熟悉SQL Server 数据库服务器环境,熟练掌握数据字典1.2 从网上下载数据库文件(.MDL、.LDF) ,进行数据库附加操作。

并在操作系统下将数据库数据文件(.MDL、.LDF)拷贝到U盘上。

1.3 从网上下载数据库数据(.XLS 格式),将数据导入到数据库。

并进行导出(导出格式大于三种) 。

3.4 建立数据库登录用户。

2 、熟悉Oracle 数据库服务器2.1 熟悉Oracle 数据库服务器环境,熟练掌握数据字典。

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

实 验 一 基本表的定义、删除与修改
一、 实验目的:
熟练掌握基本表的定义、删除与修改,为后继学习作准备。

二、 实验属性(验证性)
1.了解Microsoft SQL Server 2005并掌握SQL 查询分析器的使用;
2.掌握基本表的定义、删除与修改。

三、 实验仪器设备及器材
1.电脑。

2.Microsoft SQL Server 2005。

四、 实验要求(预习、实验前、实验中、实验后等要求)
1.预习教材第三章,熟悉SQL 语句。

2.熟悉Microsoft SQL Server 2005 开发环境。

3.能够熟练掌握Microsoft SQL Server 2005环境下的数据库的编程。

五、 实验原理
SQL 语言应用。

六、 实验步骤:
1.启动SQL SERVER 2005
2.打开查询分析器(点击工具栏上的新建)
3.建立数据库cjgl
4.建立如下数据表
1 定义基本表
例1.1 建立表3.3所示的学生表Students ,每个属性名的意义为Sno-学号、Sname-姓名、Ssex-性别、Sage-年龄、Sdept-所在系。

这里要求Sno 和Sname 不能为空值,且取值唯一。

Sno 为主码。

CREA TE TABLE Students
(Sno CHAR(5) NOT NULL UNIQUE /*列级完整性约束条件*/
Sname CHAR(20) NOT NULL, NOT NULL UNIQUE /*Sname 不能为空值*/ Ssex CHAR(2), Sage INT,
Sno
Cno Grade S01 S01 S02 S02 S02 S03 S03 S04
C01 C03 C01 C02 C03 C01 C02 C03
92 84 90 94 82 72 90 75
Sno Sname Ssex Sage Sdept S01 S02 S03 S04 S05 S06 王建平 刘华 范林军 李伟 黄河 长江
男 女 女 男 男 男 21 19 18 19 18 20
自动化 自动化 计算机 数学 数学 数学 表3.5 关系Reports 表3.4 关系Courses Cno Cname Pre_Cno Credits C01 C02 C03 C04 C05 C06 C07
英语 数据结构 数据库 DB_设计 C++ 网络原理 操作系统
C05 C02 C03 C07 C05
4 2 2 3 3 3 3
表3.3 关系Students
Sdept CHAR(15), PRIMARY KEY (Sno),
CONSTRAINT un_Sname UNIQUE(Sname)); /* Sname 取值唯一的约束*/ 说明说明::在Microsoft SQL Server 2000的查询分析器(Query Analyzer)中使用单条SQL 语句,其末尾不需要分号“;”作为命令结尾标记。

通常,SQL Server 2000对大多数末尾带有分号的SQL 命令都能顺利执行,但对少数的SQL 命令,末尾若带分号,则SQL Server 2000会给出错误信息提示。

比如,出现“Incorrect syntax near ';'”的提示,虽然SQL Server 2000实际上已经执行了该命令。

例1.1-1 建立表3.4所示的课程表Courses ,其属性名意义分别为Cno-课程号, Cname-课程名, Pre_Cno-先修课程号, Credits-学分。

Cno 为主码。

CREA TE TABLE Courses (Cno CHAR(5)
Cname CHAR(20) NOT NULL, /*Cname 不能为空值*/ Pre_Cno CHAR(5), Credits INT,
PRIMARY KEY(Cno));
例1.1-2 建立表3.5所示的成绩表Reports 。

其中的属性名意义分别为Sno-学号,Cno-课程号和Grade-考试成绩。

Sno 和Cno 为主码。

CREATE TABLE Reports ( Sno CHAR(5) Cno CHAR(5) Grade INT,
PRIMARY KEY (Sno ,Cno )
FOREIGN KEY (Sno ) REFERENCE Students(Sno),
FOREIGN KEY (Cno ) REFERENCE Students(Courses)); 2 修改基本表
例1.2 向基本表Students 中增加“入学时间”属性列,其属性名为RegisterDate ,数据类型为DATETIME 型。

ALTER TABLE Students ADD RegisterDate DA TETIME;
例1.3 将Sage(年龄)的数据类型改为SMALLINT 型。

ALTER TABLE Students ALTER COLUMN Sage SMALLINT; 例1.4 删除Sname(姓名)必须取唯一值的约束。

ALTER TABLE Students DROP CONSTRAINT un_Sname;
注意注意::SQL Server 2000 增加了删除属性的命令。

比如,删除属性列RegisterDate 的命令为:
ALTER TABLE Students DROP COLUMN RegisterDate; 说明说明::为了保证后面例子能够顺利运行,请大家一定将属性列RegisterDate 从Students 表中删除。

3 删除基本表
例3.5 删除Students 表。

DROP TABLE Students;
说明说明::此表删除后,请立即用例3.1将其建立起来,以便后面的例子使用。

4 向表中向表中添加元组添加元组
例3.6 将一个学生元组(S01,王建平,男,21,计算机)添加到基本表Students 中。

INSERT
INTO Students
V ALUES ('S01','王建平','男',21,'自动化'); 说明说明::⑴ 请读者用这个命令将其余5个学生的元组也添加到基本表Students 中。

⑵ 向Courses 表插入元组(‘C01’,’英语’,’’,4)的命令为:
INSERT
INTO Courses V ALUES ('C01','英语','',4);
将其余6门课程的信息插入Courses 表中。

例3.7 将学习成绩的元组(‘S01’, ’C01’)添加到基本表Reports 中。

INSERT
INTO Reports(Sno, Cno) V ALUES (‘S01’,’C01’);
说明说明::用这个命令将其余7个选课元组也添加到基本表Reports 中.。

相关文档
最新文档